Python 循环一个功能(包括输入),直到按下一个特定的输入

Python 循环一个功能(包括输入),直到按下一个特定的输入,python,python-3.x,Python,Python 3.x,我正在做一些家庭作业,任务是创建一个简单的程序: 获取用户输入 检查所述输入是否正确(两个带“,”分隔符的单词) 将输入输出为两个单独的字 并循环上述所有操作,直到输入“q” 它必须完全像我要求的那样出来,我现在正在这样做。我只是不知道如何将提示符循环回来,并在没有无限循环或从未实际接受新输入的情况下获得不同的输入 以下是完成后输出的外观: Enter input string: Jill, Allen First word: Jill Second word: Allen Enter i

我正在做一些家庭作业,任务是创建一个简单的程序:

  • 获取用户输入
  • 检查所述输入是否正确(两个带“,”分隔符的单词)
  • 将输入输出为两个单独的字
  • 并循环上述所有操作,直到输入“q”
它必须完全像我要求的那样出来,我现在正在这样做。我只是不知道如何将提示符循环回来,并在没有无限循环或从未实际接受新输入的情况下获得不同的输入

以下是完成后输出的外观:

Enter input string:
Jill, Allen
First word: Jill
Second word: Allen

Enter input string:
Golden , Monkey
First word: Golden
Second word: Monkey

Enter input string:
Washington,DC
First word: Washington
Second word: DC

Enter input string:
q
我可以让它通过第一个条目并用“q”退出,但不能让它再次提示用户并获得不同的输入

这是我的密码:

def strSplit(usrStr):
    while "," not in usrStr:
        print("Error: No comma in string.\n")
        usrStr = input("Enter input string:\n")
    else:
        strLst = usrStr.split(",")
        print("First word: %s" % strLst[0].strip())
        print("Second word: %s\n" % strLst[1].strip())


usrStr = input("Enter input string:\n")

while usrStr != 'q':
    strSplit(usrStr)
    break

任何帮助都会很棒!谢谢。

你就快到了。试试这个:

while True:
    usrStr = input("Enter input string:\n")
    if usrStr == 'q':
        break

    if "," not in usrStr:
        print("Error: No comma in string.\n")
    else:
        strLst = usrStr.split(",")
        print("First word: %s" % strLst[0].strip())
        print("Second word: %s\n" % strLst[1].strip())
当然,您仍然可以使用
strSplit
函数进行一些修改:

def strSplit(usrStr):
    if "," not in usrStr:
        print("Error: No comma in string.\n")
    else:
        strLst = usrStr.split(",")
        print("First word: %s" % strLst[0].strip())
        print("Second word: %s\n" % strLst[1].strip())

while True:
    usrStr = input("Enter input string:\n")
    if usrStr == 'q':
        break

    strSplit(usrStr)

你快到了。试试这个:

while True:
    usrStr = input("Enter input string:\n")
    if usrStr == 'q':
        break

    if "," not in usrStr:
        print("Error: No comma in string.\n")
    else:
        strLst = usrStr.split(",")
        print("First word: %s" % strLst[0].strip())
        print("Second word: %s\n" % strLst[1].strip())
当然,您仍然可以使用
strSplit
函数进行一些修改:

def strSplit(usrStr):
    if "," not in usrStr:
        print("Error: No comma in string.\n")
    else:
        strLst = usrStr.split(",")
        print("First word: %s" % strLst[0].strip())
        print("Second word: %s\n" % strLst[1].strip())

while True:
    usrStr = input("Enter input string:\n")
    if usrStr == 'q':
        break

    strSplit(usrStr)

非常感谢你!我在为这个哈哈大笑。那么,当你做第一个while循环时,基本上就是要求用户在每次勾选时输入一些东西(不确定这是否是正确的术语),然后在点击q时打破该循环吗?@CameronMcMains正确的术语应该是“每个循环”或“每个迭代”,而不是“每个勾选”。)@卡梅隆·麦克迈恩斯是的,这就是它的要点。在这类问题中需要记住的重要一点是,在程序中的某个地方需要一个无限循环,一旦满足某个条件,该循环就会中断。@Tomothy32…\u或\u您可以使用
while condition:thing()
。对于本例,它将是
,而usrStr!='q':#等..
并删除
中断
。无限循环并不总是需要的,但我也经常使用它们。@EthanK你试过了吗
while
循环条件仅在每次迭代后进行评估,这意味着
while
循环中的代码仍将在循环条件评估和中断循环之前执行一次。i、 非常感谢你!我在为这个哈哈大笑。那么,当你做第一个while循环时,基本上就是要求用户在每次勾选时输入一些东西(不确定这是否是正确的术语),然后在点击q时打破该循环吗?@CameronMcMains正确的术语应该是“每个循环”或“每个迭代”,而不是“每个勾选”。)@卡梅隆·麦克迈恩斯是的,这就是它的要点。在这类问题中需要记住的重要一点是,在程序中的某个地方需要一个无限循环,一旦满足某个条件,该循环就会中断。@Tomothy32…\u或\u您可以使用
while condition:thing()
。对于本例,它将是
,而usrStr!='q':#等..
并删除
中断
。无限循环并不总是需要的,但我也经常使用它们。@EthanK你试过了吗
while
循环条件仅在每次迭代后进行评估,这意味着
while
循环中的代码仍将在循环条件评估和中断循环之前执行一次。即