7、条件分支语句、循环语句

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)
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

y199710

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值