if 布尔表达式1:
语句1
......
elif 布尔表达式2:
语句2
......
else:
语句3
......
//例子
score = int(input('请输入学生成绩:'))
if score >= 90:
print('A')
elif score >= 80:
print('B')
elif score >= 60:
print('C')
else:
print('D')
单分支
if 布尔表达式:
语句1
语句2
......
score = input('请输入学生成绩:')
if score.isdecimal():
score = int(score)
if score >= 60:
print('合格')
双分支
if 布尔表达式:
语句1
......
else:
语句2
......
score = int(input('请输入学生成绩:'))
if score >= 60:
print('合格')
else:
print('不合格')
多分支
if 布尔表达式1:
语句1
......
elif 布尔表达式2:
语句2
......
else:
语句3
......
//例子
score = int(input('请输入学生成绩:'))
if score >= 90:
print('A')
elif score >= 80:
print('B')
elif score >= 60:
print('C')
else:
print('D')
嵌套,在if语句中嵌入if语句
score = int(input('请输入学生成绩:'))
if 0<=score<=100:
if score >= 90:
print('A')
elif score >= 80:
print('B')
elif score >= 60:
print('C')
else:
print('D')
else:
print('输入错误')
while循环
- while 语句:程序在布尔表达式结果为True时重复完成指定的动作,直到布尔表达式结果为False
while 布尔表达式:
语句1
......
例1:输出0-9这10个数字
n = 0 # 初始值
while n < 10: # n<10,循环继续的条件
print(n) # 循环体
n += 1 # 步长
例2:计算1+2+...+99+100的和
声明变量n=0、s=0,分别用于控制循环次数、保存和
判断n<100,n+1,将n的值累加到s上
n,s = 0,0 # 分别用于控制循环次数、保存和
while n < 100:
n += 1
s += n
print(f'n = {n:3}\ts = {s:4}')
print(f'1+2+...+99+100的和为:{s}')
方法1:
flag1,flag2 = True,True
while flag1:
输入账号
if 账号正确:
while flag2:
输入密码
if 密码正确:
等录成功
flag1 = flag2 = False
方法2:
flag1,flag2 = True,False
while flag1:
输入账号
if 账号正确:
flag1 = False
flag2 = True
while flag2:
输入密码
if 密码正确:
等录成功
flag2 = False
例3:登录功能,输入账号、密码登录。账号输入正确后输入密码
连续错误次数不能超过3次,错误后可以选择是否继续输入
方法2
account,passwd = '1001','123456' # 账号、密码
flag1,flag2 = True,False # 循环控制变量
error = 0
while flag1:
acc = input('账号:')
if acc == account: # 检查账号是否正确
flag1 = False # 退出当前循环
flag2 = True
else:
print('账号错误,请重新输入')
mark = input('继续输入请按1,结束请按任意键:')
if mark != '1':
flag1 = False
print('程序结束')
while flag2:
pwd = input('密码:')
if pwd == passwd: # 检查密码是否正确
print('登录成功')
flag2 = False
else:
error += 1 # 没错误一次,error值+1
if error == 3:
print('连续错误次数已达3次,程序结束')
flag2 = False
else:
print('密码错误,请重新输入')
mark = input('继续输入请按1,结束请按任意键:')
if mark != '1':
flag2 = False
print('程序结束')
方法1
account,passwd = '1001','123456' # 账号、密码
flag1,flag2 = True,True # 循环控制变量
error = 0 # 保存错误次数
while flag1: # bool(flag)、flag==True
acc = input('账号:')
if acc == account: # 检查账号是否正确
while flag2:
pwd = input('密码:')
if pwd == passwd: # 检查密码是否正确
print('登录成功')
flag1 = flag2 = False # 设置变量的值为False,循环结束
else:
error += 1 # 没错误一次,error值+1
if error == 3:
print('连续错误次数已达3次,程序结束')
flag1 = flag2 = False
else:
print('密码错误,请重新输入')
mark = input('继续输入请按1,结束请按任意键:')
if mark != '1':
exit('程序结束')
else:
print('账号错误,请重新输入')
mark = input('继续输入请按1,结束请按任意键:')
if mark != '1':
flag1 = False
print('程序结束')
for循环
for 语句
for i in iter:
语句1
......
- i:变量,不需要预先声明,可以在for循环中直接使用该变量
iter:可迭代对象(字符串、列表、元组、字典、数字序列 - range(a,b),返回 [a,b) 范围的数字序列)
# 例1:输出0-9这10个数字
for i in range(0,10):
print(i)
for i in '0123456789':
print(i)
for i in [0,1,2,3,4,5,6,7,8,9]:
print(i)
for i in {'a':1,'b':2}:
print(i)
# 例2:计算1+2+...+99+100的和
s = 0 # 保存和
for i in range(1,101):
s += i
print(f'1+2+...+99+100的和为:{s}')
# 例3:输出九九乘法表
for i in range(1,10): # 控制行
for j in range(1,i+1): # 控制每一行中的列
print(f'{j}x{i} = {i*j:2} ',end='')
print('')
循环控制语句
- continue,结束当前这一次循环,开始下一次新的循环
- break,终止循环
- 循环与 else,如果循环没有因为遇到break而终止,则当循环执行完后再执行else中的代码
while 布尔表达式:
语句1
......
else:
语句1
......
for i in iter:
语句1
......
else:
语句1
......
# 例:输出1-200之间所有的质数
for i in range(2,201):
if i == 2:
print(i)
continue
for j in range(2,i): # 2-(i-1)之间如果有任何一个数能被i整除,则i不是质数
if i%j == 0:
break
else: # 2-(i-1)之间所有的数都不能整除则i为质数
print(i)