第三章 流程控制
3.1条件语句
if语句:
if语句由关键字if、判断条件和冒号组成,if语句和从属于该语句的代码段可组成选择结构。
if条件表达式:
代码块
若if语句的判断条件成立(判断条件的布尔值为True),执行之后的代码段;若if语句的判断条件不成立(判断条件的布尔值为False),跳出选择结构,继续向下执行。
if-else语句:
if 判断条件:
代码块1
else:
代码段2
if-else语句:
执行if-else语句时,若判断条件成立,执行if语句之后的代码段1;若判断条件不成立,执行else语句之后的代码段2。
if-elif-else语句:
if 判断条件1:
代码段1
elif 判断条件2:
代码段2
elif 判断条件3:
代码段3
...
else:
代码段n
if嵌套:
if 判断条件1: # 外层条件
代码段1
if 判断条件2: # 内层条件
代码段2
...
执行if嵌套时,若外层判断条件(判断条件1)的值为True,执行代码段1,并对内层判断条件(判断条件2)进行判断:若判断条件2的值为True,则执行代码段2,否则跳出内层条件结构,顺序执行外层条件结构中内层条件结构之后的代码;若外层判断条件的值为False,直接跳过条件语句,既不执行代码段1,也不执行内层的条件结构。
import random
count = 0
right = 0
while True:
a = random.randint(0, 9)
# 作为除数
b = random.randint(1, 9)
op = ['+', '-', '*', '//']
d = random.choice(op)
print('%d %s %d = ' % (a, d, b))
question = input('请输入您的答案: (q退出)')
result1 = a + b
result2 = a - b
result3 = a * b
result4 = a // b
if question == str(result1):
print('回答正确')
right += 1
count += 1
elif question == str(result2):
print('回答正确')
right += 1
count += 1
elif question == str(result3):
print('回答正确')
right += 1
count += 1
elif question == str(result4):
print('回答正确')
right += 1
count += 1
elif question == 'q':
break
else:
print('回答错误')
count += 1
percent = right / count
print('测试结束,共回答%d道题,正确个数为%d,正确率为%.2f%%'
% (count, right, percent * 100))
#猜数字
import random
computer=random.randint(1,100)
while True:
number=int(input("请输入100以内的整数:"))
if(number>computer):
print("大了")
elif(number<computer):
print("小了")
else:
print("恭喜你赢了")
break
3.3while语句
while语句一般用于实现条件循环,该语句由关键字while、循环条件和冒号组成,while语句和从属于该语句的代码段组成循环结构。
while 条件表达式:
代码块
for语句
for语句一般用于实现遍历循环。遍历指逐一访问目标对象中的数据,例如逐个访问字符串中的字符;遍历循环指在循环中完成对目标对象的遍历。
for 临时变量 in 目标对象:
代码块
3.3循环嵌套(while循环嵌套和for循环嵌套)
循环之间可以互相嵌套,进而实现更为复杂的逻辑。
while循环嵌套:
是指while语句中嵌套了while或for语句
while 循环条件1: # 外层循环
代码段1
while 循环条件2: # 内层循环
代码段2
......
i = 0
while i < 3:
username = input('请输入账号')
password = int(input('请输入密码'))
if username == '123456' and password == 123:
print('登录成功')
break
else:
print('账号密码错误,请重新输入')
for循环嵌套:
指for语句中嵌套了while或for语句
for 临时变量 in 目标对象: # 外层循环
代码段1
for 临时变量 in 目标对象: # 内层循环
代码段2
......
#猜数字,逢7拍手
n = int(input())
for i in range(1,n+1):
if i%7 == 0 or '7' in str(i):
print(i,end=' ')
#打印五子棋棋盘
print("┌",end="")
for y in range(1,14):
print("┬",end="")
print("┐")
for s in range(13):
print("├",end="")
for y in range(1,14):
print("┼",end="")
if(y==13):
print("┤")
print("└",end="")
for y in range(1,14):
print("┴",end="")
print("┘")
3.5break语句
break语句用于结束循环,若循环中使用了break语句,程序执行到break语句时会结束循环;若循环嵌套使用了break语句,程序执行到break语句时会结束本层循环。
for word in "Python":
if (word == 'o'):
break
print(word, end=" ")
i = 0
while i < 3:
username = input('请输入账号')
password = int(input('请输入密码'))
if username == '123456' and password == 123:
print('登录成功')
break
else:
print('账号密码错误,请重新输入')
continue语句
continue语句用于在满足条件的情况下跳出本次循环,该语句通常也与if语句配合使用。
for word in "Python":
if (word == 'o'):
continue
print(word, end=" ")