持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第5天,点击查看活动详情
大家好,我是木大木大,因为疫情和环境原因啊,在家开始了自学python的路子,从此深坑加一人。后面我会每天持续更新一些学习python的过程,当然一开始就是一些基础啦,希望大家多多支持,莫嫌弃啦~
1.1 序列类型
序列
一块可以存放多个值的连续空间
索引
序列类型就是可以存储多个数据的一种数据类型
str 字符串
s = "稀土掘金"
print(s[0],"==",s[-4])
print(s[3],"==",s[-1])
稀 == 稀
金 == 金
1.2 可变类型与不可变类型
可变类型:列表、字典、集合
不可变类型:数字、字符串、元组
概念:
可变类型:值在发生改变时,内存地址不变,即id不变,证明在改变原值
不可变类型:值在发生改变时,内存地址也发生改变,即id也变,证明是没有在改变原值,而是产生了新的值
s = 'hello'
print(s)
s[0] = "a"
print(s)# 会报错 因为字符串不可变
1.3 字符串
1.3.1 内置功能
字符串名.方法名()
1.3.1.1 find()
范围性查找子串,返回索引值,没有则返回-1
字符串名.find(s,beg=0,end=len(string))
s——》指定检索的字符串
beg——》开始索引,默认为0
end——》结束索引,默认为字符串的长度
常用于检测字符串中是否包含子字符串s
s = "hello,world"
print(s.find("h")) # 0
print(s.find("world")) # 找到了world 并且返回首个字符的索引 6
print(s.find("worldd")) # -1
s = "python,helloworld,java,php"
print(s.find("h")) # 返回的是首个h的下标 3
print(s.find("h",4)) # 从下标为4的开始往后面找 7
print(s.rfind("h")) # 从后往前找 24
1.3.1.2 index()
检测字符串中是否包含子字符串s,如果执行开始和结束的范围,则检查是否包含在指定范围内,方法与find()一样,只不过如果s不在字符串中会报错
s = "python,helloworld,java,php"
print(s.index("world")) # 12
print(s.index("worldd")) # 找不到子串就会报错
1.3.1.3 count()
返回找到的子串个数,没有就返回0
s = "python,helloworld,java,php"
print(s.count("h")) # 3
1.3.1.4 strip()
去除字符串两边的空格、换行符、制表符,得到一个新的字符串
code = input("请输入4位验证码:")
data = code.strip()
if data=="ABCD":
print("验证码正确")
else:
print("验证码错误")
1.3.1.5 startwith()、endswith()
startwith()判断字符串是否以xx开头,得到一个布尔值
add = input("请输入住址:")
if add.startswith("北京市"):
print("北京人口")
else:
print("非北京人口")
endswith()判断字符串是否以xx结尾,得到一个布尔值
add = input("请输入住址:")
if add.endswith("村"):
print("农业户口")
else:
print("非农业户口")
1.3.1.6 isdigit
判断是否是数字组成
v1 = input("请输入值:")
v2 = input("请输入值:")
if v1.isdigit() and v2.isdigit():
data = int(v1)+int(v2)
print(data)
else:
print("请正确输入数字")
1.3.1.7 lower()、upper()
字母变大写/小写 得到一个新字符串
lower()——》转小写
upper()——》转大写
s = "A"
s1 = s.lower()
print(s1) # a
s2 = s1.upper()
print(s2) # A
1.3.1.8 split()
切分字符串,将字符串类型转列表
s = "my name is xiaochuan"
print(s.split())
s1 = "python,helloworld,java,php"
print(s1.split(","))
['my', 'name', 'is', 'xiaochuan']
['python', 'helloworld', 'java', 'php']
1.3.1.9 replace()
字符串内容替换,得到一个新的字符串
content = input("请输入评论信息:")
content1 = content.replace("草","*") # 第一个参数是要替换的字符,第二个参数是替换成什么字符
print(content1)
#请输入评论信息:草,你个草
#*,你个*
1.3.1.10 join()
用于将序列中的元素以指定字符串链接生成一个新的字符串
常用于将列表类型转为字符串
arr = ["小川","和","乃荣","是","好朋友"]
print("".join(arr))
print("-".join(arr))
小川和乃荣是好朋友
小川-和-乃荣-是-好朋友
1.3.2 公共功能
1.3.2.1 正向取(从左往右)、反向取(从右往左,负号)
s = "hello python"
# 正向取值
print(s[0]) # h
print(s[5]) # 空格 在字符串中空格也属于一个字符
# 反向取值
print(s[-4]) # t
len()得到长度
s = "hello python"
print(len(s)) # 12
s = "hello python"
print(s[len(s)-1]) # 长度减1就是最后一个 n
print(s[-len(s)]) # 负号在这个字符串的长度前面就是第一个 h
1.3.2.2 切片(包头不包尾,步长)
s = "hello python"
print(s[0:9]) # hello pyt
print(s[:9]) # hello pyt
print(s[:]) # 从头到尾 hello python
步长:0:9:2 第三个参数2代表步长,会从0开始,每次累加一个2取值,所以会取出索引0、2、4、6、8的字符
s = "hello python"
print(s[0:9:2]) # hlopt
print(s[::-1]) # 从右往左依次取值,反向取值,步长为负数就是从右往左,首尾不给值就是所有的
注意:下标是序列类型的基本操作,也就是说序列类型都可以进行下标操作