【问题标题】:while loop with strings only runs once带字符串的while循环只运行一次
【发布时间】:2020-02-04 08:51:01
【问题描述】:

我很难弄清楚这段代码有什么问题。有人能告诉我这个while循环有什么问题吗?它只会运行一次。

i= input("Please enter I to report or enter Exit to exit. ")
while i.lower == "i":
    print("in loop")

    #to rerun code or exit it
    i = input("Please enter I to report  or enter Finish to exit. ")

print("done")

【问题讨论】:

  • i.lower 中缺少的括号是故意的吗?循环迭代的次数不是由输入决定的,你没有指定吗?我很困惑。

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


【解决方案1】:

您需要在您的lower 呼叫之后添加()。你从来没有真正将函数调用为小写i

while i.lower() == "i":

i.lower
<built-in method lower of str object at 0x0000018E4AC5A0F0>

i.lower == 'i'
False

i.lower()
'i'

i.lower() == 'i'
True

【讨论】:

    【解决方案2】:

    这可行,但您只需要输入 i,而不是 I。

    i= input("Please enter I to report or enter to exit. ")
    while i == "i":
        if i == "i":
            print("in loop")
            i = input("Please enter I to report  or enter to exit. ")
    if i != "i" :
        print("done")
    

    【讨论】:

    • 你为什么要检查i的状态这么多次? while循环每次迭代都会确认状态,不需要检查3次。
    猜你喜欢
    • 2011-11-02
    • 2020-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-17
    • 1970-01-01
    • 1970-01-01
    • 2013-08-12
    相关资源
    最近更新 更多