python之控制语句
控制语句主要包含顺序、选择和循环三个方面,下面主要从这三方面进行介绍
1.选择结构if
- 单分支结构
if…
if True:
print('ok') #如果if后面为false(可用[],0,False来表示),则执行else或不执行
- 双分支结构
if…else…
num = 10
if num < 20:
print(num)
else:
print("数字比20大")
- 三元条件运算符
条件为真的值 if (条件表达式)else (条件为假取得值)
num = 10
print(num if num<20 else "数字比20大")
- 多分支选择结构
if…elif…elif…
num = 10
if num<5:
print("数字比5小")
elif num<10:
print("数字比10小")
elif num<20:
print("数字比20小")
- 结构嵌套
套娃
num = 11
if num<0:
print("该数字为负数")
else:
num = num%2
if num==1:
print("该数字为奇数")
2.循环结构
- while循环
while 条件表达式:循环体语句
num = 0
while num<=5:
print(num)
num +=1 #终止条件
- 遍历与可迭代对象
for循环进行遍历
for x in range(5): #in后面为可迭代对象,包括序列,迭代器对象,生成器函数,文件对象等,其中range对象就是一个迭代器对象
print(x)
- break语句
break语句用于跳出while和for循环,如果为嵌套循环,则只能跳出最近一层循环
num = 1
while True:
a = input("请输入一个数字(输入1结束)")
if int(a) == num:
print("循环结束,退出")
break
else:
print(a)
- continue语句
continue语句用于结束本次循环,继续下一次循环。多层嵌套时候,同样也是应用于最近一层循环
while True:
s = input("输入考试成绩(按Q或者q结束)")
if s.upper() == 'Q':
print("结束")
break
if float(s)<0:
print("输入错误,请重新输入")
continue
print("操作成功")
- else语句
while True:
a = input("请输入一个数字:")
if int(a)==1
break
else:
print("没有被break破坏循环")
3. 推导式创建序列
- 列表推导式
[x for i in range(10)]
a = [(row,col) for row,col in zip(range(5),range(10))] #若迭代对象range(10)超过range(5)范围,取range(5)最短范围
- 字典推导式
创建字典推导式
values = ['教师','医生','学生']
cities = {num*10:prof for num,prof in zip(range(1,4),values)}
print(cities)
统计字符串中字频数
text = 'I love you'
count_text = {c:text.count(c) for c in text} #注意这里字典中键不可重复
print(count_text)
- 集合推导式
{x for x in range(10) if x%2==0} #{0, 2, 4, 6, 8}
- 生成器推导式
()里面生成,注意这里不直接生成元组,而是生成的生成器,且生成器只能用一次
(x for x in range(10) if x%2 == 0) #<generator object <genexpr> at 0x000001A1FD927BC0>