Yunyuzuiluo

Python 百战 入门 5 控制语句

控制语句和逻辑思维,分为三类:顺序、选择和循环

选择结构(条件判断结构)

score = int(input("请输入分数"))
grade = ''
if score<60 :
grade = "不及格"
elif score<80 :
grade = "及格"
elif score<90 :
grade = "良好"
elif score<=100:
grade = "优秀"
print("分数是{0},等级是{1}".format(score,grade))

选择嵌套

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))

循环结构

while

num = 0
while num<=10:
print(num)
num += 1

for

for 变量 in 可迭代对象:
循环体语句

d = {'name':'gaoqi','age':18,'address':'西三旗001号楼'}
for x in d: #遍历字典所有的key
print(x)
for x in d.keys():#遍历字典所有的key
print(x)
for x in d.values():#遍历字典所有的value
print(x)
for x in d.items():#遍历字典所有的"键值对"
print(x)

range

range(start, end [,step])

sum_all = 0 #1-100所有数的累加和
sum_even = 0 #1-100偶数的累加和
sum_odd = 0 #1-100奇数的累加和
for num in range(101):
sum_all += num
if num%2==0:sum_even += num
else:sum_odd += num
print("1-100累加总和{0},奇数和{1},偶数和{2}".format(sum_all,sum_odd,sum_even))

break,continue语句

while True:
a = input("请输入一个字符(输入Q或q结束)")
if a.upper()=='Q':
print("循环结束,退出")
break #直接结束循环,continue是结束本次循环
else:
print(a)

循环结构中,else的作用是如果for、while语句没有被break语句结束,则会执行else子句,否则不执行

使用zip()并行迭代多个序列

names = ("高淇","高老二","高老三","高老四")
ages = (18,16,20,25)
jobs = ("老师","程序员","公务员")

for name,age,job in zip(names,ages,jobs):
print("{0}--{1}--{2}".format(name,age,job))

不适用zip,也可以并行迭代多个序列

for i in range(min(len(names),len(ages),len(jobs))):
print("{0}--{1}--{2}".format(names[i],ages[i],jobs[i]))
执行结果:
高淇--18--老师
高老二--16--程序员
高老三--20--公务员
高淇--18--老师
高老二--16--程序员
高老三--20--公务员

列表推导式

[表达式 for item in 可迭代对象 ]
或者:{表达式 for item in 可迭代对象 if 条件判断}
[x for x in range(1,5)] #[1, 2, 3, 4]
[x2 for x in range(1,5)] #[2, 4, 6, 8]
[x
2 for x in range(1,20) if x%5==0 ] #[10,20, 30]
[a for a in "abcdefg"] #['a', 'b', 'c','d', 'e', 'f', 'g']
打包zip
cells = [(a,b) for a,b in zip(range(1,10), range(10,20))]
for cell in cells:
print(cell)

字典推导式

{key_expression: value_expression for 表达式 in 可迭代对象}
values = ["北京","上海","深圳","广州"]
cities = {id*100:city for id,city in zip(range(1,5),values)}
print(cities)

集合推导式

{表达式 for item in 可迭代对象 }
或者:{表达式 for item in 可迭代对象 if 条件判断}

生成器推导式(不直接生成元组)

(x for x in range(1,100) if x%9==0)
<generator object at0x0000000002BD3048>

posted on 2025-04-15 21:31  刘晋宇  阅读(27)  评论(0)    收藏  举报

导航