基本数据类型
序列类型
基本数据类型可以分为三类:
- 数值类型
- 数字:int、float
- 数值:bool
- 序列类型:str
- 散列类型
在序列中,每个元素都有属于自己的编号(也就是索引,即下标)。
如果索引超出了,就会报错,索引越界。
- 下图为从左到右,索引值从0开始
- 下图为从右到左,索引值从-1开始(不管n的为几,只看索引)
a = '一二三ABC'
print(a[0], '==', a[-6])
print(a[3], '==', a[-3])
# 结果:一 == 一
# A == A
可变类型和不可变类型的分类
不可变类型:数字、字符串、元组
可变类型:列表、字典、集合
字符串及其常见内置功能
字符串介绍: link
- 语法:字符串名.方法名()
find()
范围性查找子串,返回索引值,没有则返回-1
- 语法:
- 字符串名.find(str,beg=0,end=len(string))
- str——》指定检索的字符串
- beg——》开始的索引,默认为0
- end——》结束索引,默认为字符串的长度
- 字符串名.find(str,beg=0,end=len(string))
a = 'hello world,I like python'
print(a.find('l')) # 输出所出现的第一个子串的下标,默认从0开始查询
print(a.find('l', 3)) # 找到的是第二个'l',从下标为3的字符开始查询
print(a.find('world')) # 若找到world,则返回首个字符串的下标
print(a.find('java')) # 查询不到,则返回-1
print(a.rfind('l')) # 从后往前查询
# 空格也算一个字符
# 结果:2
# 3
# 6
# -1
# 14
index()
范围性查找子串,返回索引值,没有则报错。
a = 'hello world,I like python'
print(a.index('world')) # 若找到world,则返回首个字符串的下标 # 6
print(a.index('java')) # 查询不到,则报错
count()
返回找到的字符串个数,没有则返回0。
a = 'hello world,I like python'
print(a.count('l')) # 4
print(a.count('a')) # 0
strip()
去除字符串两边的空格、换行符、制表符,获得一个新的字符串
a = " \nA1B2c3 \t"
print(a.strip())
# 结果:A1B2c3
startswith()、endswith()
startswith():判断字符串是否以…开头,返回一个布尔值。
endswith():判断字符串是否以…结尾,返回一个布尔值。
a = "你好!"
print(a.startswith("你"))
print(a.startswith("我"))
print(a.endswith("!")) # ! 分中英文
print(a.endswith("!"))
# 结果:True
# False
# True
# False
isdigit()
判断字符串是否由数字组成,返回一个布尔值。
a = "1234"
b = "ab12"
print(a.isdigit())
print(b.isdigit())
# 结果:True
# False
upper()、lower()
upper():将字符串中的小写字母转换成大写字母,得到一个新的字符串。
lower():将字符串中的大写字母转换成小写字母,得到一个新的字符串。
a = "A1b2C3"
print(a.upper())
print(a.lower())
# 结果:A1B2C3
# a1b2c3
split()
将字符串以…为标志,切分为列表。
a = "how are you"
print(a.split(" "))
a = "Python、SQL、Java"
print(a.split("、"))
# 结果:['how', 'are', 'you']
# ['Python', 'SQL', 'Java']
replace()
将字符串中指定的内容替换成给定的内容。
replace(要替换的字符,替换成的字符)
a = "hi!python"
print(a.replace("h","a"))
# 结果:ai!pytaon
join()
将序列中的元素,用给定的字符串连接起来,生成一个新字符串。
常用于序列类型转化成字符串。
a = {"Hi","!","Good","morning","."} # 字典 顺序随机
print(" ".join(a)) # 空格连接
b = ["Hi","!","Good","morning","."] # 列表
print("-".join(b))
# 结果:! . morning Good Hi
# Hi-!-Good-morning-.
公共功能
len()
查看长度,并不仅限于查看字符串的长度
s = "hello,python"
print(len(s))
print(s[len(s)-1]) # 取最后一个值
print(s[-len(s)]) # 第一个
# 结果:12
# n
# h
切片(顾头不顾尾,步长)
顾头不顾尾
切片如果超出长度,也不会出现索引越界的异常错误。
s = "hello python"
print(s[0:7]) # 取下标为0~7的值,下标为7的值不取
print(s[:]) # 取到从头到尾所有的值
print(s[:9]) # 开始默认为0,取下标为0~9的值,下标为9的值不取
# 结果:hello p
# hello python
# hello pyt
# 步长
print(s[0:7:2]) # 第三个参数2代表步长,会从0开始,每次累加一个2,所以回去出索引为0,2,4,6的字符
# 结果:hlop
# 反向切片
print(s[::-1]) #-1表示的是从右往左依次取值,反向取值,步长为负数就是从右往左,首尾不给值就是取所有
# 结果:nohtyp olleh
for遍历
# for循环后面不跟range搭配,后面跟序列类型可以遍历
# 遍历就是把序列类型里面的值一个一个拿出来
for i in "hello":
print(i)
# 结果:h
# e
# l
# l
# o