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

时间:2018-12-02 23:47:29

标签: python python-3.x

我正在做一些家庭作业,并且受命创建一个简单的程序,

  • 获取用户输入
  • 检查输入的格式是否正确(两个单词以','分隔)
  • 将输入输出为两个单独的单词
  • 并循环执行上述所有操作,直到输入'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

任何帮助都是太棒了!谢谢。

1 个答案:

答案 0 :(得分:2)

您快到了。试试这个:

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)