Exception 是一个;Try/Except value错误,除非;可能的

Exception 是一个;Try/Except value错误,除非;可能的,exception,try-catch,except,valueerror,Exception,Try Catch,Except,Valueerror,我是python新手,在过去的几个小时里,我一直在拼命地想办法让它正常工作 我相信这是一个非常简单的代码,但我就是不明白 在下面的代码中,它应该是非常自解释的,但基本上我要求用户以“int”的形式输入事件的日期,如果不是数字,请他们再试一次。。。除非它是一个“?” 似乎它甚至无法查看是否因为它被'except'捕获而无法查看。如果要在输入'?'时显示帮助或其他内容,则只需调用函数,在当前有中断的位置显示帮助 if date == "?": display_help() conti

我是python新手,在过去的几个小时里,我一直在拼命地想办法让它正常工作

我相信这是一个非常简单的代码,但我就是不明白

在下面的代码中,它应该是非常自解释的,但基本上我要求用户以“int”的形式输入事件的日期,如果不是数字,请他们再试一次。。。除非它是一个“?”


似乎它甚至无法查看是否因为它被'except'捕获而无法查看。

如果要在输入'?'时显示帮助或其他内容,则只需调用函数,在当前有中断的位置显示帮助

if date == "?":
    display_help()
    continue
然后,将读取输入和处理分为两个步骤

in = input("Date of event? (or '?'): ")
if in == "?":
    display_help()
    continue
year = int(in)
另外,你要求一个日期,但假设输入了一年,我会在你的承诺中更明确

请输入活动的年份,例如:1998年
或者您实际想要的任何形式。

尝试使用valueError异常。另外,我认为在你的帖子中,你提到你想输入一个整数形式的日期,所以我用日期替换了年份。如果希望年份为整数,可以将变量日期替换为年份。如果你想让用户输入一年、一天、一个月,那么这个程序需要重新设计一点

date = None
street = str(input('Name of street?: ').title())
city = str(input("In what city?: ").title())
while True:
    date = input("Date of event? (or '?'): ")
    if date == "?":
        break
    else:
        try:
            date = int(date)
        except ValueError:
            print("That's not a date, try again!")
            continue
        break

但是,不管是哪种类型的异常,它不会触发它忽略“if”语句吗。。。?我没有试过,但我相信它会。。。再说一次,不管是哪种例外,你都是对的。我重新编辑了代码,但我不确定OP是否希望用户输入日期或年份。可能年份变量是一个输入错误,他指的是日期。当您遇到一个错误时,您希望发生什么?当用户输入“?”时,它应该绕过ValueError异常并返回“?”值,以代替任何需要的int值。。。
date = None
street = str(input('Name of street?: ').title())
city = str(input("In what city?: ").title())
while True:
    date = input("Date of event? (or '?'): ")
    if date == "?":
        break
    else:
        try:
            date = int(date)
        except ValueError:
            print("That's not a date, try again!")
            continue
        break