Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将数值转换为DOB的代码的值错误_Python_Valueerror - Fatal编程技术网

Python 将数值转换为DOB的代码的值错误

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

我试图创建一个程序,要求用户以数字格式给出他们的DOB。它一直在工作,直到有一行我指定,如果他们输入的日值超过31,那么它是无效的。我收到此错误:
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的值。

您当然是正确的-我在验证条件之后移动了那部分代码,现在它工作得很好!非常感谢!