Python 将数值转换为DOB的代码的值错误
我试图创建一个程序,要求用户以数字格式给出他们的DOB。它一直在工作,直到有一行我指定,如果他们输入的日值超过31,那么它是无效的。我收到此错误:Python 将数值转换为DOB的代码的值错误,python,valueerror,Python,Valueerror,我试图创建一个程序,要求用户以数字格式给出他们的DOB。它一直在工作,直到有一行我指定,如果他们输入的日值超过31,那么它是无效的。我收到此错误:ValueError:int()的文本无效,以10为基数:(日值) 我的代码如下所示: uy = input("Enter your birth year: ") um = input("Enter the number of your birth month (1-12): ") mn = ["Jan
ValueError:int()的文本无效,以10为基数:
(日值)
我的代码如下所示:
uy = input("Enter your birth year: ")
um = input("Enter the number of your birth month (1-12): ")
mn = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]
if um == "1":
mn = "January"
elif um == "2":
mn = "February"
elif um == "3":
mn = "March"
elif um == "4":
mn = "April"
elif um == "5":
mn = "May"
elif um == "6":
mn = "June"
elif um == "7":
mn = "July"
elif um == "8":
mn = "August"
elif um == "9":
mn = "September"
elif um == "10":
mn = "October"
elif um == "11":
mn = "November"
elif um == "12":
mn = "December"
day = input("please enter the day number of the date (1-31): ")
if day == '1' or day == '21' or day == '31':
day = day + "st"
elif day == '2' or day == '22':
day = day + "nd"
elif day == '3' or day == '23':
day = day + "rd"
else:
day = day + "th"
if mn == "February" and int(day) <= 28:
vd = True
elif (mn == "April" or mn == "June" or mn == "September" or mn == "November") and int(day) <= 30:
vd = True
elif mn in ["January", "March", "May", "July", "August", "October", "December"] and int(day) <= 31:
vd = True
else:
vd = False
if vd:
print(f"Your date of birth is the {day} {mn} {uy}")
else:
print("The data entered was not valid, please try again.")
uy=input(“输入您的出生年份:”)
um=输入(“输入您的出生月份(1-12):”)
mn=[“一月”、“二月”、“三月”、“四月”、“五月”、“六月”、“七月”、“八月”、“九月”、“十月”、“十一月”、“十二月”]
如果um==“1”:
mn=“一月”
elif um==“2”:
mn=“二月”
elif um==“3”:
mn=“三月”
elif um==“4”:
mn=“四月”
elif um==“5”:
mn=“可以”
elif um==“6”:
mn=“六月”
elif um==“7”:
mn=“七月”
elif um==“8”:
mn=“八月”
elif um==“9”:
mn=“9月”
elif um==“10”:
mn=“十月”
elif um==“11”:
mn=“11月”
elif um==“12”:
mn=“12月”
day=输入(“请输入日期(1-31)的日数:”)
如果日期='1'或日期='21'或日期='31':
日=日+st
elif day==“2”或day==“22”:
日=日+nd
elif day==“3”或day==“23”:
日=日+rd
其他:
天=天+第天
如果mn==“二月”和int(day)您的问题是您修改了day变量并添加了它“nd”、“st”等。因此day变量现在是一个数字和字母。程序不知道如何转换为int并崩溃。我建议使用另一个变量,如day_modified来存储31的值。您当然是正确的-我在验证条件之后移动了那部分代码,现在它工作得很好!非常感谢!