字典
字典创建
a={'name':'gaoqi','age':18,'job':'programmer'}
b=dict(name='gaoqi',age=18,job='programmer')
c=dict([('name','gaoqi'),('age',18)])
d={}#空列表
k=['name','age','job']
v=['gaoqi','18','programmer']
w=dict(zip(k,v))
a=dict.fromkeys['name','age','job']#创建空字典
字典实例
r1={'name':'高小一','age':18,'salary':30000,'city':'北京'}
r2={'name':'高小二','age':18,'salary':30000,'city':'上海'}
r3={'name':'高小五','age':18,'salary':30000,'city':'北京'}
tb=[r1,r2,r3]
print(tb[1].get('salary'))
#从中取出薪水信息
for i in range(len(tb)):
print(tb[i].get('salary'))
#取出所有信息
for i in range(len(tb)):
print(tb[i].get('salary'),tb[i].get('name'))
字典底层原理
一.存储
取键的散列值,例如哈希值,以八位列表存储举例,键的哈希值最后三位对应列表,若为空存储,若不为空,继续向左寻找三位哈希值,直到对应列表为空,否则扩容操作。
二.取值
取键的散列值,例如哈希值,以八位列表存储举例,键的哈希值最后三位对应列表取键值对值,计算键的哈希值如果对应则取值成功。不对应继续搜索。
集合
无序可变,不能重复
a={3,5,7}
a.add(9)
#set函数用法
a=['a','b']
b=set(a)
a.remove(7)
a.clear()
相关操作
a|b a.union(b)#并集
a&b a.intersction(b)#交集
a-b a.difference(b) #差集
条件表达式
b=[]
if not b:
print('空的列表是false')
注意:条件表达式不能有赋值操作
双分支结构
s = input('请输入一个数字:')
# 三元条件运算符
print("s是小于10的数字" if int(s) < 10 else "s是大于或等于10的数字")
多分支选择结构
# 多分支结构小练习
score= int(input("请输入分数:"))
grade=""
if score<60:
grade='不及格'
elif score<80:
grade='及格'
elif score<90:
grade='良好'
else:
grade='优秀'
print("分数是{0},等级是{1}".format(score,grade))
选择结构嵌套
# 选择结构嵌套
score = int(input("请输入分数:"))
grade = ""
if score > 100 or score < 0:
score = int(print('请重新输入:'))
else:
if score < 60:
grade = '不及格'
elif score < 80:
grade = '及格'
elif score < 90:
grade = '良好'
else:
grade = '优秀'
print("分数是{0},等级是{1}".format(score, grade))
# 另一种写法
score=int(input('请输入您的分数:'))
grade='ABCDE'
if score > 100 or score < 0:
score = int(print('请重新输入:'))
else:
num=score//10
if num<6:
num=5
print("分数是{0},等级是{1}".format(score, grade[9-num]))
while循环
# 测试while循环
# 计算1-100数字累加和
num = 0
sum = 0
while num <= 100:
sum = sum + num
num += 1
print('1-100累计和为:', sum)