昨日内容回顾
-
猜年龄游戏
完成
-
整型
# python中不同数据类型之间无法直接交互 类型转换 int() # 只有纯数字可以 进制转换 bin() # 转二进制 oct() # 转八进制 hex() # 转十六进制 int('0b11',2) # 二转十 int('0o23',8) #八转十 int('0x52',16) #十六转世
-
浮点型
float() # 在纯数字基础之上,可以再多一个小数点
-
字符串
str() # 可以转换任意类型为字符串 1.索引取值 索引从0开始,还支持负数 只能取不能改 2.切片操作 起始索引:终止索引:步长 3.移除字符串首尾指定的字符 .strip():默认首尾移除空格 lstrip(): #首 rstrip(): #尾 4.按照指定的字符串切割字符串 split() #指定的字符切割字符串,结果是一个列表 还可以控制切割的次数 rsplit() 5.统计字符串的个数: len() # 空格也算 6.格式化输出 format() {} {索引} {name} 7.大小写转换 upper() lower() isupper() islower() 8.字符串的替换 replace() # 可以设置替换的个数 9.统计字符出现的次数 count() 10.判断字符串是否是纯数字 isdigit() 11.首字母全部大写 title() :每个单词首字母大写 captalize() 12.判断是否以某个字符开头/结尾 startswith() endswith() 13. 拼接操作 join() # 一定要是字符串类型 # 和split一起记忆
-
列表
# 中括号括起来,内部可以存放多个元素,元素之间用逗号隔开 list() #能够被for循环的类型都能转换成列表,针对字典只有key被转换 1.索引取值 索引从0开始,还支持负数 只能取不能改 2.切片操作 起始索引:终止索引:步长 3.统计元素的个数: len() 4.增 尾部追加: append() #将单个元素作为列表的一个元素追加 插入 insert() # 根据索引插入元素 扩展 extend() #列表的拼接 ps:也可以用+作为扩展 5.删 通用删除关键字 del 通过索引指定 remove指名道姓的删除 remove(元素),返回None pop弹出元素 先提取元素 之后删除,返回元素 6.改: 列表[索引]='新值' 7.排序 sort():升序 reverse = True #降序 8.反转 reverse() 9.clear() #清空 10.count() #统计列表中某元素出现的次数 11.index();返回指定元素的索引值
练习
l1 = []
a = 111
for i in range(1,6):
l1.append(a*i)
print(l1)
s = len(l1)
# 先进后出 队列
for i in range(s):
print(l1.pop())
# 先进先出 堆栈
# for i in range(s):
# print(l1.pop(0))
字典的内置方法
'''
大括号括起来:内部可以存放多个元素
元素的表现形式是以k:v键值对的形式
k是不可变类型:一般都是字符串
v可以是任意类型
'''
# k是字符串
d1 = {'username':'jason',
'password':'123',
'hobby':['read','run']
}
print(d1,type(d1))
# k是整型
d2 = {
1:'jason',
2:'egon',
3:'kevin'
}
print(d2,type(d2))
# k是浮点型
d3 = {
1.1:'jason',
2.1:'egon',
3.1:'kevin'
}
print(d3,type(d3))
# k是多种不可变类型
d4 = {
'1.1':'jason',
2:'egon',
3.1:'kevin'
}
print(d4,type(d4))
# 优先掌握的操作
# 1.通过key取值:可存可取
d1 = {'username':'jason',
'password':'123',
'hobby':['read','run']
}
print(d1['username'],id(d1))
d1['username'] = 'tony'
print(d1['username'],id(d1))
v的值改变,但是d1的内置地址不便,所以字典也是可变类型
print(d1['age']) # 键不存在 直接报错
# 2.不存在添加,存在则修改
d1['age'] = 18
print(d1)
# 3.len()统计字典中键值对的个数
print(len(d1))
print('jason' in d1)# 字典默认只暴露k,v不会暴露
# 4.删除
del d1['password'] # 删除整个键值对
print(d1)
'''字典不能使用索引'''
res=d1.pop('password')
print(res) # pop()返回key所对应的值
print(d1)
5.键keys(),值values(),键值对items()
keys(),value()的结果可以直接看成一个列表
res = d1.keys()
print(res,type(res))
for k in d1.keys():
print(d1.keys(),k)
'''
python2与python3对比:
python3
keys() dict_keys(['username', 'password', 'hobby'])
python2
keys() ['username', 'password', 'hobby']
'''
# 将items()的结果可以直接看成列表和嵌套元组
print(d1.items())
dic1 = {}
for k,v in d1.items():
dic1[k] = v
print(k,v)
print(dic1)
'''
python3
dict_items([('username', 'jason'), ('password', '123'), ('hobby', ['read', 'run'])])
python2
[('username', 'jason'), ('password', '123'), ('hobby', ['read', 'run'])]
'''
dict.get() # 通过字典的key键获取对应的值
d1.get('username')
d1['age'] # key不存在则报错
d1.get('age') # key不存在不会报错,返回None
# 如果键存在,则不使用,键不存在则返回第二个参数,不写默认返回None
print(d1.get('username','hahaha'))
# 创建字典的方式
# 方法1.
d2 = {'name':'egon','age':18,'hobbies':'play'}
# 方法2.
res = dict(name='jason',pwd='123',age=18)
print(res)
# 方法3.
l =[
['username','jason'],
['password',123],
['hobby',['read','run']]
]
d = {}
for i in l:
d[i[0]] = i[1]
print(d)
for k,v in l:
d[k] = v
print(d,v)
print(d)
res = dict(l)
print(res)
dict.clear() #清空字典
dict.fromkeys() 快速通过列表创建一个字典,列表的值作为字典的键,字典的值相同
l = ['username','pwd','hobby']
res = dict.fromkeys(l,None)
# # 弹出一组键值对
dict.popitem()
d1.popitem()
print(d1) #返回元组
dict.setdefault()
dd = {'name': 'jason', 'pwd': 123}
dd.setdefault('age',18)
# 如果键存在,返回键对应的值,键不存在则返回第二个参数,不写默认返回None
res = dd.setdefault('age','egon2222')
print(res)
dict.update()
# 如果键存在则修改
dd.update({'name': 'egon'})
print(dd)
dd.update({'age':18}) # 键不存在 则新建
dd.update({'name':'EGONDSB'}) # 键存在则修改
print(dd)
# # 还不如使用下列方式
dd['age'] = 18
dd['name'] = 'jason'
元组
'''
小括号括起来 括号内可以存放多个元素,元素之间用逗号隔开
元素也可以简单的理解为列表
元组是不可变类型
'''
t1 = (1,2,3,4,5,6)
print(type(t1))
t1 = (1)
t2 = ('a')
print(type(t1))
print(type(t2))
'''
元组当内部只有一个元素的时候,逗号不能省略
以后只要是容器类型 无论内部有几个元素,都必须要加逗号
[1,]
{'username':'jason',}
(1,)
'''
# 1.按索引取值(正向取+反向取):只能取
t1 = (11,22,33)
t1[0] = 666 # 不能改值
'''
t2 = (11,22,[11,22])
t2[2].append(33)
'''
# 2.切片
# 和字符串,列表一致
# 3.len()长度
# 4. 成员运算in和not in
t1 = (1,2,3,[1,2,3])
print(1 in t1)
# 和列表一样
# 5.循环
for i in (11,22,33):
print(i)
集合
'''
大括号括起来,内部可以存放多个元素,元素和元素
之间逗号隔开(不是k,v键值对)。元素只能是不可变类型。
集合内部的元素不可以相同
s = {1, 2, 3}
只有两种情况才会考虑使用集合
1.关系运算
两个群体之间判断 交叉并集
共同好友 共同关注 共同点赞
2.去重操作
去除重复的元素
'''
se = {1,2,3,4,5}
print(type(se)) # set集合
d1 = {}
s1 = {}
print(type(d1),type(s1))
# # 定义空集合使用set()
ss = set()
print(ss,type(ss))
s = {11,2.1,'hello',(1,2,3,)}
# 列表去重
new_l = []
l = [11,22,33,44,33,22,11,44,33,22]
for i in l:
if i not in new_l:
new_l.append(i)
print(new_l)
# 将列表转换成列表
sb = set(l)
print(sb)
'''
集合内默认不能出现重复的元素,如果出现了会自动去重
'''
# 关系运算
f1 = ['jason', 'egon', 'tony']
f2 = ['jason', 'rose', 'oscar', 'kecin']
f1 = set(f1)
f2 = set(f2)
print(f1 & f2) # &:交集
print(f1 - f2) # 显示f1独有的好友
print(f2 - f1) # 显示f2独有的好友
print(f1 | f2) # |:并集
print(f1 ^ f2) # ^:去除共有好友