python通过输入月日判断星座

sdate=[20,19,21,20,21,22,23,23,23,24,23,22]
conts =['Capricorn(摩羯)','Aquarius(水瓶)','Pisces(双鱼)','Aries(白羊)','Taurus(金牛)','Gemini(双子)','Cancer(巨蟹)','Leo(狮子)','Virgo(处女)','Libra(天秤)','Scorpio(天蝎)','Sagittarius(射手)','Capricorn(摩羯)']
cmonth= input("Enter the month: ")
cdate=str(input("Enter the day: "))
January=1
February =2
March = 3
April = 4
May = 5
June = 6
July = 7
August = 8
September = 9
October = 10
November = 11
December = 12
def sign(cmonth,cdate):
if int(cdate)
print(conts[int(cmonth)-1])
else:
print(conts[int(cmonth)])
sign(cmonth,cdate)

月份输入需要是英语,日输入是数字,代码报错

img

int(cmonth)
月份输入的是英文,就不能用int函数了

sdate=[20,19,21,20,21,22,23,23,23,24,23,22]
conts =['Capricorn(摩羯)','Aquarius(水瓶)','Pisces(双鱼)','Aries(白羊)','Taurus(金牛)','Gemini(双子)','Cancer(巨蟹)','Leo(狮子)','Virgo(处女)','Libra(天秤)','Scorpio(天蝎)','Sagittarius(射手)','Capricorn(摩羯)']
cmonth= input("Enter the month: ")
cdate=str(input("Enter the day: "))
months=['January','February','March','April','May','June','July','August','September','October','November','December']
def sign(cmonth,cdate):
    if int(cdate):
        print(conts[months.index(cmonth)])
    else:
        print(conts[months.index(cmonth)+1])
sign(cmonth,cdate)

如果月份输入的是英文,就不能用int函数了, int(cmonth)
可以改成 eval(cmonth) 这样月份输入英文或数字就都可以了,
用eval(cmonth)输入数字会直接转成数值,输入英文(变量名)会读取对应变量的值

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632