Python 3.x while循环中第二次提示输入无效后重新提示

Python 3.x while循环中第二次提示输入无效后重新提示,python-3.x,Python 3.x,请容忍我,因为我可能很难用这个词 我有一个程序向用户询问两个问题 “输入主题”-->用户输入主题(即CMIS) “输入CatalogNbr”-->用户输入CatalogNbr(即300) 如果用户没有为第一个提示输入任何内容,它会说“需要一个主题”,然后循环返回并再次询问问题(预期)。一旦有效输入被接受,它将进入第二个提示符。现在,当第二个提示留空时,循环转到postQuery消息(“您想再试一次吗?是/否”)。但是,当我在if not方法的底部(在第二个提示符中)后面加上“continue”时

请容忍我,因为我可能很难用这个词

我有一个程序向用户询问两个问题

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

“输入CatalogNbr”-->用户输入CatalogNbr(即300)

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

简言之,我知道我的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

我已经用下面的代码进行了测试。它正在按预期工作。该主题是强制性的,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

如果用户未输入CatalogNbr,是否继续?根据您的代码,它不是强制性的。