- 字典
- 字典的特点与创建
- 字典的键只能是浮点数,整数,字符串,元组
- 字典的创建
- 字典元素的访问
- 字典元素的添加
- 序列解包(方便地对多个变量赋值)
- 字典复杂列表
- 集合
- 集合的基本运算
- 选择结构
- 单分支选择结构
- 双分支结构
- 多分支结构
- 测试选择结构的嵌套
- 循环结构
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)



