- 字典
- 字典的特点与创建
- 字典的键只能是浮点数,整数,字符串,元组
- 字典的创建
- 字典元素的访问
- 字典元素的添加
- 序列解包(方便地对多个变量赋值)
- 字典复杂列表
- 集合
- 集合的基本运算
- 选择结构
- 单分支选择结构
- 双分支结构
- 多分支结构
- 测试选择结构的嵌套
- 循环结构
1.通过{}需要一一对应,键与值,用:连接
>>> a={"name":"gaoqi","age":18,"dd":[2,3,4]} >>> >>> a {'name': 'gaoqi', 'age': 18, 'dd': [2, 3, 4]}
2.用dict() 用=连接键与值
>>> b=dict(name="gaoqi",age=18) >>> b {'name': 'gaoqi', 'age': 18}
3.用zip()创建
>> k=["a","b","c"] >>> c=[100,200,300] >>> d=dict(zip(k,c)) >>> d {'a': 100, 'b': 200, 'c': 300} >>> >``` 4.用dict.fromkeys()创建空的字典 ```python >>> a=dict.fromkeys(['name','age','job']) >>> a {'name': None, 'age': None, 'job': None} >>>字典元素的访问
1.直接访问(缺点:访问值不存在会报错)
>>> a={"name":"gaoqi","age":18,"dd":[2,3,4]} >>> a["name"] 'gaoqi'
2.通过get()访问(优点:访问值不存在不会报错,会打印空格)
>>> a={"name":"gaoqi","age":18,"dd":[2,3,4]} >>> a.get("name") 'gaoqi' >>> a.get("ddd",'不存在') '不存在'
3.元素的其他基本函数
>>> a={"name":"gaoqi","age":18,"dd":[2,3,4]} >>> a["name"] 'gaoqi' >>> a.get("name") 'gaoqi' >>> a.get("ddd",'不存在') '不存在' 1.>>> a.items() dict_items([('name', 'gaoqi'), ('age', 18), ('dd', [2, 3, 4])]) 2.>>> a.keys() dict_keys(['name', 'age', 'dd']) 3.>>> len(a) >>> 'neme' in a False字典元素的添加
1.直接添加
>>> a={"name":"gaoqi","age":18,"dd":[2,3,4]} >>> a["address"]="行,没问题" (原本字典没有的会加上去) >>> a {'name': 'gaoqi', 'age': 18, 'dd': [2, 3, 4], 'address': '行,没问题'} >>> a["name"]="gaoqi"(原本字典有的会覆盖) >>> a {'name': 'gaoqi', 'age': 18, 'dd': [2, 3, 4], 'address': '行,没问题'} >>>
2.通过update()全部替换旧字典
>>> a={"name":"gaoqi","age":18,"dd":[2,3,4]} >>> b={'name':'yu','money':10000,'sex':'男性'} >>> a.update(b) >>> a {'name': 'yu', 'age': 18, 'dd': [2, 3, 4], 'address': '行,没问题', 'money': 10000, 'sex': '男性'}
3.字典元素的删除
>>> a={"name":"gaoqi","age":18,"dd":[2,3,4]} 1.>>> del(a['name']) >>> a {'age': 18, 'dd': [2, 3, 4]} 2.>>> b=a.pop('age')#删除后可以把删除的值赋给b >>> b 18 3.>>> a.clear() >>> a {} 4.随机弹出键值对,弹出后等于删除 >>> a={"name":"gaoqi","age":18,"dd":[2,3,4]} >>> a.popitem() ('dd', [2, 3, 4]) >>>序列解包(方便地对多个变量赋值)
1.>>> x,y,z=20,30,10 >>> x 20 2.>>> x,y,z=(20,30,40) >>> z 40
2.对字典进行序列解包
默认对键的解包,如果对值解包要用item()
>>> s={'name':'gaoqi','age':18,'job':'teacher'} 1.>>> a,b,c=s(对键进行解包) >>> a 'name' 2.>>> e,d,f=s.values()(对值进行解包) >>> e 'gaoqi' >>> f 'teacher' 3.>>> h,i,j=s.items()(对键值对解包) >>> h ('name', 'gaoqi') >>>字典复杂列表
>>> rl={"name":"高一","age":18,"salary":30000,"city":"广州"}#tb[0] >>> r2={"name":"高一","age":19,"salary":20000,"city":"广州"}#tb[1] >>> r3={"name":"高二","age":20,"salary":10000,"city":"广州"} >>> tb=[rl,r2,r3] >>> print(tb[1].get("salary")) 20000 >>> for i in range(len(tb)): print(tb[i].get("salary")) 30000 20000 10000 >>> for i in range(len(tb)): print(tb[i].get("name"),tb[i].get("age"),tb[i].get("city")) 高一 18 广州 高一 19 广州 高二 20 广州集合
1.用add()添加元素到集合
2.用set()列表,元组等转换成集合
3.用remove()去除集合中的元素
4.用clear()清楚集合
>>> a={43,32,"好"} >>> b={32,"nh","少是"} >>> a|b 并集也可以用a.union(b) {32, 'nh', '好', 43, '少是'} >>> a&b交集可以用a.intersection(b) {32} 差集可以用a.diffenerce(b)选择结构 单分支选择结构
不能用if(a=true)即不可以出现赋值,可以用==
c="True" if c: print("c")双分支结构
s=input("请输入一个数字:") if int(s)<10: print("s") else: print("false")
具有同样效果的三元条件运算
a=input("请输入一个数字:") print(a if int(a)<10 else "数字太大")多分支结构
多分支结构之间要有逻辑
1.sorce=int(input("请输入分数:")) grade="" if sorce<60: grade="不及格" elif sorce<80: grade="良好" elif sorce<=100: grade="优秀" print("分数是{0},等级是{1}".format(sorce,grade)) 2.x=int(input("请输入x:")) y=int(input("请输入y:")) if (x<0 and y<0): print("第三象限") elif (x>0 and y<0): print("第四象限") elif (x<0 and y>0): print("第二象限") elif (x>0 and y>0):测试选择结构的嵌套
方法一
score=int(input"请输入一个数:") score=int(input("请输入一个在0到100的数:")) grade="" if score>100 or score<0: score=int(input(("输入错误!请重新输入一个0到100的数字"))) else: if score>90: grade="A" elif score>80: grade="B" elif score>70: grade="C" elif score>60: grade="D" else: grade="E" print("分数是{0},等级是{1}".format(score,grade))
方法二
num=int(input("请输入一个0到100的数字:")) degree="ABCDE" if num>100 or num<0: num=int(input("输入错误!请重新输入0到100的数:")) else: num=num//10 if num<6: num=5 print("分数为{0},等级为{1}".format(num,degree[9-num]))循环结构
打印0到9 num=0 while num<10: print(num,end="t") num+=1 计算1到9 data=1 sum=0 while data<10: sum=sum+data data+=1 print(sum)