控制语句
分支结构
a = input("请输入学生成绩:")
if int(a)<60: #当条件判断为 False就继续往下判断
grade="不及格"
elif 60<=int(a)<80:
grade="及格"
elif 80<=int(a)<90:
grade="良好"
else: grade="优秀"
print("成绩是{0},等级{1}".format(a,grade))
#多分支结构需要从小到大的判断范围,父子集关系
三元条件运算符
num = input("请输入一个数字:")
print(num if int(num)<10 else "数字太大")
#True时返回 True条件 else False时返回
分支嵌套
score=int(input("请输入学生成绩:"))
if score>100 or score <0:
score = int(input("请输入一个0~100之间的数字:"))
if score>=90:
grade="优秀"
elif score>=80:
grade="良好"
elif score>=60:
grade="合格"
else: grade="不合格"
print("分数为{0},等级为{1}".format(score,grade))
#分支嵌套结构适用于有大条件限制下才能进入条件判断的结构
循环结构
while
num=0
sum_all=0
while num<=100:
sum_all+=num
num+=1
print("0~100求和等于",sum_all)
#while条件判断为True,循环执行,里面要放结束条件
break 跳出当前循环
while True:
a=input("请输入一个字符:")
if a=="q" or a=="Q":
print("循环结束")
break
else:
print(a)
#监听用,满足一定条件时才退出循环
continue 结束本次循环,返回循环开始,从下一次开始执行
#continue同样只作用于最近的一层循环,只跳过本次循环,但不跳出循环的结构
salary=[]
num=0
salary_sum=0
while True:
s=input("请输入员工的薪资(按q结束)")
if s.upper()=="Q":
print("录入完成")
break
if float(s)<0:
print("输入薪资有误,请重新输入")
continue
num+=1
salary.append(s)
salary_sum+=float(s)
print("员工数量:{0}".format(num))
print("薪资明细:",salary)
print("平均薪资:{}".format(salary_sum/num))
for循环
for i in range(1,10):
for j in range(1,i+1):
c=i*j
print("{0}*{1}={2}".format(i,j,c),end = "\t")
print()
#打印九九乘法表
r1={"name":"高小一","age":18,"salary":30000,"city":"北京"}
r2={"name":"高小二","age":19,"salary":20000,"city":"上海"}
r3={"name":"高小三","age":21,"salary":10000,"city":"深圳"}
tb=[r1,r2,r3]
for i in range(3):
s=tb[i].get("salary")
if s >=15000:
print(tb[i].get("name"),tb[i].get("age"),tb[i].get("salary"),tb[i].get("city"))
循环的else语句 可选语句
salary=[]
num=0
salary_sum=0
for i in range(4):
s=input("请输入四个员工的薪资(按q结束)")
if s.upper()=="Q":
print("录入完成")
break
if float(s)<0:
print("输入薪资有误,请重新输入")
continue
num+=1
salary.append(s)
salary_sum+=float(s)
else: print("您已经成功录入四个人的薪资")
print("员工数量:{0}".format(num))
print("薪资明细:",salary)
print("平均薪资:{}".format(salary_sum/num))
#循环的else语句是在正常完成所有循环以后才会执行的语句;被提前break不会触发else
循环遍历可迭代对象
a=(10,20,30)
for i in a:
print(i)
#元组遍历
a=[10,20,30]
for i in a:
print(i)
for i in range(len(a)):
print(a[i])
#列表的遍历二者皆可
a="abcdef"
for i in a:
print(i)
#字符串的遍历 字符串可以直接作为range,也可以将字符串转为list(),list后字符串转为列表形式['a', 'b', 'c', 'd', 'e', 'f']
a={"name":"jim","age":18,"job":"student"}
for i in a: #默认是键
print(i)
for i in a.keys():
print(i)
for i in a.values():
print(i)
for i in a.items():
print(i)
#字典的遍历可以通过命令选择keys,values,items
zip多列表遍历
names = ["jim","jack","leo"]
ages=[18,19,20]
jobs=["students","teacher","worker"]
for i in list(zip(names,ages,jobs)):
print(i)
#使用迭代器zip将元组转换成列表
for a,b,c in zip(names,ages,jobs):
print("{0} {1} {2}".format(a,b,c))
'''
jim 18 students
jack 19 teacher
leo 20 worker a,b,c同时进迭代器循环,进行遍历;事实上用for a,b,c in range(3):同样可以遍历
'''
字典易混淆的知识
1.列表存储字典
a1={}
a2={}
a3={}
tb=[a1,a2,a3]
可以方便的进行get操作,借助list的有序性,字典中存储的是每一行的数据
2.zip创建
a=() or []
b=() or []
#也可以是列表形式,但是元组的读取处理更高效
a中只存储键名,b中只存储值
list(zip(a,b)) 创建含有元组的列表
dict(zip(a,b)) 创建字典
3.多信息列表的循环遍历
信息按列储存,生成生成器,多变量遍历