用python中的死循环和if、while语句做银行取款问题

遇到复杂的if和while嵌套看不懂?来一起看看死循环、if分支、while循环语句的联系和使用


前言

遇到复杂的if和while嵌套看不懂?来一起看看死循环、if分支、while循环语句的联系和使用


一、python中的while循环和死循环的关系,如何中止和终止死循环?

1.一般的while循环

我们先来看一般的while循环的三部分:①计数器,②循环条件循环体,③更新计数器。

 #while循环第一步:设一个计数器,一般命名个新变量,赋值一个循环起始值
i=0 
#while循环第二步:进入循环条件和循环下的执行语句
while i<10:
    print(i)
#while循环第三步:更新计数器,一般结合用运算符和赋值符   
    i+=1 

2.死循环

又可以称为无限循环,是while循环的一种异常类型,表达为“while True:”。

while True:
    print('这里是无限循环')

3.条件true以外

除了常规比较数字和字符以外,用字符来制造“True”和"not False"的循环条件,制造任何“非0”的循环条件,可以是任何不为0的变量,也可以用not来取反。

num=5
while num:
    print('只要num不为0,就打印出这个循环')
    num-=5

4.中止和终止死循环

用input()中止死循环,break终止死循环

#input()中止循环,break终止循环
while True:
    passwords=input('请输入暗号:')
    if passwords=='天王盖地虎'
        print('暗号正确')
        break

二、if分支和while循环的区别和联系

  1. if分支和while循环的共同点

    1. 都需要逻辑判断才能执行下面的代码

    2. 都可以和else,break,continue一起用

    3. 可以互相嵌套
  2. if分支和while循环的区别

    1. if是分支语句,符合条件的怎么样,else,不符合的怎么样。

    2.  但是while是循环体,只要满足其逻辑判断,就可以一直循环执行。

  3. 如何更好理解if和while嵌套

    1. 画流程图,可以更好地理解while和if语句,尤其是当其嵌套重叠时。

    2. 用debug调试。


三、用死循环,while,if嵌套来做银行取款案例

1.实现方法1:

num = 5
while True:    #死循环 下面所有 只要没有break都会一直循环
    if not num:  #当num=0 if的条件就是1,就进入分支语句循环
        print('密码错误超过五次,请到柜台办理') #当num=0时,打印语句
        break #当num=0,打印结束,则整个循环结束---死循环结束了吗?
    user = input('请输入你的用户名:') #当num!=0,input提示输入username
    if user:  #当user不为空,进入分支
        while num:   #当num不为空,即还有输入机会,进入循环
            pwd = input('请输入密码:')  #input提示输入密码
            if pwd == '':  #如果密码为空
                print('密码为空,请输入密码')  #打印这条
                break  #分支语句中断,返回input提示输入密码
            else: #如果密码不为空
                if user == "武松" and pwd == '12345': #如果全对
                    print('登录成功')
                    break #分支停止,到提示输入密码
                else: #如果不对
                    num -= 1 #输入次数-1

2.实现方法2:

num=5
while num:
    username = input("请输入用户名:")
    pwd = input('请输入密码')
    if username=='武松':
        while pwd=='12345':
            print('欢迎使用,用户名密码正确')
            break
        else:
            print(f'密码错误,您今天还有{num-1}次机会')
            num-=1
    else:
            print(f'用户名错误,您今天还有{num-1}次机会')
            num -= 1
else:
    print('已输错五次,请致电客服处理')

num=5
while True:
    input("请输入:")
    while num:
        print(f'您今天还有{num-1}次机会')
        num-=1
    else:
        print('明天再来')
        break


总结

了解if分支和while循环语句的区别和联系可以帮助我们更好地理解复杂嵌套的执行过程。像银行取款这种一个输入次数限制加两个条件判断的需求类型,可以参考上面两种解题逻辑来拓展。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值