首页 > 解决方案 > while-true 循环内的输入提示

问题描述

我想创建一个提示输入的程序,并根据此输入提供量身定制的回复。

正如代码一样,它可以完美运行,只是它根本没有循环。(在 CMD 或 Powershell 中运行脚本后,它会终止并死掉。)

我希望程序在每次运行后返回输入提示。我想我需要返回函数,但我不知道给它什么样的论点。

此外, ValueError 参数有点毫无意义,那里有一个问题。

Name = input ("What is your name ? ").strip().lower()

while True:

    try:
        if Name in ("A"):
            print("message for A")
            break       
        else:
            if Name in ("N"):
                print("message for N")
                break
    except ValueError:
        print ("Sorry, my only purpose is to talk to N and A")

    else:
        print("dammit")
        break

标签: pythonpython-3.xwhile-loop

解决方案


你想重复try-except......而你想要的tryinput(),所以你需要把所有的代码基本上都放在循环中。

并删除lower(), 或转换为"a"and"n"

while True:
    try:
        name = input ("What is your name ? ").strip()
        if name.startswith("A"):
            print("message for A")
            break       
        elif name.startswith("N"):
            print("message for N")
            break
        else:
            print("Sorry, my only purpose is to talk to N and A")
    except ValueError:
        print ("Sorry, my only purpose is to talk to N and A")

推荐阅读