zzj_4535 发表于 2023-12-21 22:52:55

刚学python,遇到点问题,求大佬指点

当密码和金额都输入正确的时候,该怎么停止外部的循环?就是输入金额正确之后,打印‘交易完成,请取走你的现金和卡’,之后又会让你重新输入密码的那一段,我写的我很乱,求指点


s = 2
while s >= 0:
   
    if int(input('请输入你的密码:')) == 111111:
      print('密码输入正确')      
      y = 2
      while y >= 0:
            x = int(input('请输入你提取的金额:'))
            if 100 > x or 1000 < x:
                print('对不起,最低只能提取100,最高为1000')
            else:
                print('交易完成,请取走你的现金和卡')
                break   
            y -= 1         
    else:
      if s >= 1:
            print(f'密码错误,请重试,还有{s}次机会')
      else:
            print('密码错误,账户受到保护,请取卡')
      
    s -= 1

FishC 发表于 2023-12-21 22:53:09

你可以使用`break`语句来停止外部的循环。在打印"交易完成,请取走你的现金和卡"之后,你可以在内部的循环中添加一个标志变量来判断是否需要重新输入密码。

下面是修改后的代码示例:

while True:
    password = int(input('请输入你的密码:'))
   
    if password == 111111:
      print('密码输入正确')
      
      while True:
            amount = int(input('请输入你提取的金额:'))
            
            if amount < 100 or amount > 1000:
                print('对不起,最低只能提取100,最高为1000')
            else:
                print('交易完成,请取走你的现金和卡')
                break
            
      # 内部循环结束后,询问是否需要重新输入密码
      continue_input = input('是否需要重新输入密码?(y/n): ')
      
      if continue_input.lower() != 'y':
            break
      
    else:
      print(f'密码错误,请重试')

在这个代码示例中,我们使用了两个`while True`循环来实现账户验证和金额提取的功能。当密码输入正确且金额提取成功时,会打印"交易完成,请取走你的现金和卡",然后会询问用户是否需要重新输入密码。如果用户输入的不是'y',则使用`break`语句停止外部的循环,程序结束运行。否则,内部循环会重新开始,等待用户重新输入密码。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

kerln888 发表于 2023-12-22 08:57:06

你代码里面的break只能结束内循环,外循环再加一个break。代码如下(请看红色部分):
s = 2
while s >= 0:

    if int(input('请输入你的密码:')) == 111111:
      print('密码输入正确')
      y = 2
      while y >= 0:
            x = int(input('请输入你提取的金额:'))
            if 100 > x or 1000 < x:
                print('对不起,最低只能提取100,最高为1000')
            else:
                print('交易完成,请取走你的现金和卡')
                break
            y -= 1
      break
    else:
      if s >= 1:
            print(f'密码错误,请重试,还有{s}次机会')
      else:
            print('密码错误,账户受到保护,请取卡')

    s -= 1

zzj_4535 发表于 2023-12-22 13:49:28

kerln888 发表于 2023-12-22 08:57
你代码里面的break只能结束内循环,外循环再加一个break。代码如下(请看红色部分):
s = 2
while s >= 0: ...

感谢感谢{:5_108:}

kerln888 发表于 2023-12-22 21:59:17

zzj_4535 发表于 2023-12-22 13:49
感谢感谢

客气,大家互助一起进步
页: [1]
查看完整版本: 刚学python,遇到点问题,求大佬指点