python入门5
for循环和数据类型内置方法
for循环
for循环能够实现的事情while循环都可以实现,
但是for循环在循环取值的时候语法更加简单快捷。
# while循环 count = 0 while count < 4: print('>>>:',name_list[count]) count += 1
# for循环
for name in name_list:
print('>>>:', name)
# for循环不需要添加结束条件,会随着取值的完毕自动结束
上面的代码值是有明确类型的,如果当值没有明确的类别时,变量名可以取i、j、k、item等。
for循环字符串会将字符串里面单个单个字符依次赋值给变量名i。
除了列表之外,for循环还可以从字典中获取值,但是for循环从字典取值字会取出字典的变量名,变量值是无法直接获取的。
容器类型
内部能够存档多个元素的数据类型都可以称之为容器类型,例如:列表、字典、元组、集合(不常用)。
除了容器类型,for循环还可以对字符串循环取值,获得字母与空格。
range用法
for i in range(0, 101): # 本质是一个迭代器(忽略),可以简单的看成是一个列表 print(i) for i in range(5): print(i) # 一个参数,默认从0开始(顾头不顾尾) for i in range(5,10): print(i) # 两个参数,第一个是起始位包含在内,第二个是终止位不包含(顾头不顾尾) for i in range(0,250,25): print(i) # 三个参数,最后一个是数字间隔,类似于产生等差序列
数据类型内置方法
查看数据类型拥有的方法,使用.即可
int
可以用作数据类型的转换,但是既不能把float转成int,也不能把数字之外的文本转成int。
也可以用作进制转换,把其他进制转成十进制。
以后如果看到数字前面,ob开头则是二进制数,0o开头则是八进制数,0x开头则是十六进制数。
print(bin(100)) # 0b1100100 # 将十进制转换成八进制 print(oct(100)) # 0o144 # 将十进制转换成十六进制 print(hex(100)) # 0x64 print(int('0b1100100', 2)) print(int('0o144', 8)) print(int('0x64', 16)) # 上面三个输出结果都是100
float
不能转换数字之外的文本。
n1 = '11' print(float(n1)) # 11.0 n2 = '11.11' print(float(n2)) # 11.11 n3 = 'jyb' print(float(n3)) # 报错
str
可以把任意类型的数据转成字符串。
1.统计字符个数
res = 'hello world' # 空格也算 print(len(res)) # 11
2.索引取值
res = 'hello world' print(res[0]) # h
3.切片取值
res = 'hello world' # 顾头不顾尾,第六位是不取的 print(res[1:5]) # ello
4.步长(间隔)
res = 'hello world' # 2表示间隔一个取一个,不写默认没有间隔 print(res[1:8:2]) # el o
# 取得的是e、l、空格、e
5.移除首尾指定的字符
6.按照指定的字符切割数据
data = 'jyb|18|worker|read'
# 以|为标识隔开
print(data.split('|')) # ['jyb', '18', 'worker', 'read']
# 正常顺序:从左往右
# maxsplit:切割几次
print(data.split('|', maxsplit=1)) # ['jyb', '18|worker|read'] # 从右往左
print(data.rsplit('|', maxsplit=1)) # ['jyb|18|worker', 'read']
7.大小写转换
res = 'Yu0My' print(res.upper()) # 转大写 YU0MY print(res.lower()) # 转小写 yu0my print(res.isupper()) # 字符串是否是纯大写 print(res.islower()) # 字符串是否是纯小写
8.判断是否是纯数字
print('123'.isdigit()) # True print('jyb123'.isdigit()) # False
9.统计字符出现的次数
res = 'my name is jyb jyb jyb jyb jyb' print(res.count('jyb')) # 5
10.替换指定字符
11.按照指定字符拼接字符串
列表
只能支持for循环数据类型
1.统计长度
l1 = [11, 22, 33, 44, 55, 66] print(len(l1)) # 6
2.索引取值
l1 = [11, 22, 33, 44, 55, 66] print(l1[0]) # 11
3.切片操作
l1 = [11, 22, 33, 44, 55, 66] # 顾头不顾尾 print(l1[0:4]) # [11, 22, 33, 44]
4.步长
l1 = [11, 22, 33, 44, 55, 66] # 顾头不顾尾 print(l1[0:4:2]) # [11, 33]
5.添加元素
6.删除元素
7.统计元素出现的次数
l2 = [11, 222, 33, 22, 33, 11, 11, 11, 22, 22, 33, 44, 44] print(l2.count(11)) # 4
8.排序
l3 = [55, 44, 22, 33, 11, 99, 77, 88]
print(l3) # [11, 22, 33, 44, 55, 77, 88, 99] # 默认是升序 l3.sort() print(l3) # [11, 22, 33, 44, 55, 77, 88, 99] # 倒序 l3.sort(reverse=True) print(l3) # [99, 88, 77, 55, 44, 33, 22, 11]
字典
字典内元素是无序的
1.统计长度,实际上是统计键值对的个数
user_dict = {'username': 'jyb', 'pwd': 123, 'hobby': 'read'} print(len(user_dict)) # 3
2.按键取值
user_dict = {'username': 'jyb', 'pwd': 123, 'hobby': 'read'}
print(user_dict['username']) # jyb
print(user_dict['xxx']) # 键不存在会直接报错
print(user_dict.get('username')) # jyb
print(user_dict.get('xxx')) # None 键不存在不会报错返回None
3.设置值
4.删除值
user_dict = {'username': 'jyb', 'pwd': 123, 'hobby': 'read'} res = user_dict.pop('username') print(user_dict, res) # {'pwd': 123, 'hobby': 'read'} jyb
5.小技巧
user_dict = {'username': 'jyb', 'pwd': 123, 'hobby': 'read'}
# 获得k键 print(user_dict.keys()) # ['username', 'pwd', 'hobby']
# 获得v值
print(user_dict.values()) # ['jyb', 123, 'read'] # 获得键值对
print(user_dict.items()) # [('username', 'jyb'), ('pwd', 123), ('hobby', 'read')]
集合
集合内元素是无序的。
功能:1.去重,2:关系运算
f1 = {'jyb', 'tony', 'kevin', 'jack'} f2 = {'jyb', 'tom', 'jerry', 'tony'} # 1.求两个人共同好友 print(f1 & f2) # {'tony', 'jyb'} # 2.求f1独有的好友 print(f1 - f2) # {'jack', 'kevin'} # 3.求f2独有的好友 print(f2 - f1) # {'tom', 'jerry'} # 4.求两个人所有的好友 print(f1 | f2) # {'jyb', 'jerry', 'tony', 'jack', 'tom', 'kevin'} # 5.求两个人各自的好友 print(f1 ^ f2) # {'kevin', 'jack', 'tom', 'jerry'} # 6.父集 子集 print(f1 > f2) print(f1 < f2)