0

请耐心等待,因为我可能很难措辞。

我有一个程序问用户 2 个问题。

“输入主题” --> 用户输入主题(即 CMIS)

"输入 CatalogNbr" --> 用户输入 catalogNbr(即 300)

如果用户在第一个提示中没有输入任何内容,它会说“需要主题”,然后循环返回并再次询问问题(预期)。一旦接受了有效的输入,它就会进入第二个提示。现在,当第二个提示留空时,循环转到 postQuery 消息(“您想再试一次吗?Y/N”)。但是,当我在 if not 方法的底部(在第二个提示中)放置“继续”时,它会显示“需要 CatalogNbr”,但随后又返回到循环的开头(第一个提示)。

简而言之,我知道我的 while 循环有问题,但我无法弄清楚。我试图添加第二个 while 循环,但我已经挂了几个小时了,我知道我只是在这里遗漏了一些小东西,这让我发疯了。总之,够啰嗦了。这是我得到的:

while True:
subjectName = input("Enter the Subject:")
if not subjectName.isupper():
    print("A Subject is required")
    continue


catNum=input("Enter the CatalogNbr:")   
if not catNum:
    print("A CatalogNbr is required.")

这是我的 postQuery

postQuery=input("Would you like to search for another title? (Y or N)")

if postQuery == 'N':
    print("Thanks for using the Catalog Search program.")
    break
4

1 回答 1

0

我已经用下面的代码进行了测试。它按预期工作。该主题是强制性的,CatalogNbr 是可选的。

while True:
    subjectName = input("Enter the Subject:")
    if not subjectName :
        print("A Subject is required")
        continue

    catNum=input("Enter the CatalogNbr:")
    if not catNum:
        print("A CatalogNbr is required.")

    postQuery = input("Would you like to search for another title? (Y or N)")

    if postQuery == 'N':
        print("Thanks for using the Catalog Search program.")
        break
于 2019-11-17T06:11:16.453 回答