【问题标题】:While loop - Counter being updated when anything other than y/n are enteredWhile 循环 - 输入除 y/n 以外的任何内容时更新计数器
【发布时间】:2017-04-30 22:39:18
【问题描述】:

我想知道当输入 y/n 以外的其他内容时,在 while 循环内不更新计数器的简单方法。这是我的代码:

if yes_or_no == "y":                                                        
    computer_winnings += 1                                                  
elif yes_or_no == "n":                                                      
    user_winnings += 1                                                      
counter += 1                                                                
if counter > 10:                                                            
    break     

但是,如果用户输入的不是 y/n,主 counter 也会被更新。只有输入了y 或n 时,计数器才会更新。

【问题讨论】:

  • 只需将counter += 1 放在相关的if / elif 语句中即可。
  • 谢谢!这是我修复它的方法: 27 if yes_or_no == "y": 28 counter += 1 30 elif yes_or_no == "n": 31 counter += 1 33 else: 34 print("请仅输入 y 或 n!" )

标签: python python-3.x while-loop counter


【解决方案1】:

在测试中包含y 或n 的计数器增量

if yes_or_no in ('y', 'n'):
    counter += 1
    if yes_or_no == 'y':
        computer_winnings += 1
    else:
        user_winnings += 1

【讨论】:

  • 谢谢!这是我修复它的方法: 27 if yes_or_no == "y": 28 counter += 1 30 elif yes_or_no == "n": 31 counter += 1 33 else: 34 print("请仅输入 y 或 n!" )
【解决方案2】:

假设我们从 0 迭代到 9

i = 0
while(i < 10):
    #Ask for user input
    foo = input()
    #if foo value != yes_or_no value increment i
    if foo != yes_or_no:
        i+=1

【讨论】:

    【解决方案3】:

    您需要正确缩进代码以符合您希望它包含的任何语句。您如何编写 if/else 是 1 个独立集,计数器也是一个独立集,if 计数器状态也是独立的。所以你有 3 个独立的语句同时运行。

    如果使用 if 语句,您的代码只会处理一次且仅一次,因此最好使用 while 循环连续循环,直到遇到转义语句。

    【讨论】:

      猜你喜欢
      • 2013-08-18
      • 2022-11-13
      • 2011-09-08
      • 1970-01-01
      • 1970-01-01
      • 2016-09-03
      • 2023-03-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多