我该如何解决以下错误
ValueError:以10为底的int()的无效文字:''错误
这是一个例子 (int,int)-> str
给出两个表示月份和日期的int值,返回 3个字符的字符串,可以告诉我们在其中出生的人的星号 该日期所属的月份和月份。使用SIGNS字符串(已经 在文件顶部为您定义)来解决这个问题。
>>> find_astrological_sign(8, 24)
'VIR'
>>> find_astrological_sign(1, 15)
'CAP'
SIGNS = '03,21-04,19=ARI;04,20-05,20=TAU;05,21-06,21=GEM;06,22-07,22=CAN;' + \
'07,23-08,22=LEO;08,23-09,22=VIR;09,23-10,23=LIB;10,24-11,20=SCO;' + \
'11,21-12,21=SAG;12,22-01,20=CAP;01,21-``02,21=AQU;02,22-03,20=PIS;'
def find_astrological_sign(month, date):
x = SIGNS.split(";")
for astro in x:
if int(astro[0:2]) < month < int(astro[6:8]):
if int(astro[3:5]) < date < 31 or 0 < date < int(astro[9:11]):
return astro[12:15]
答案 0 :(得分:0)
您需要检查astro长度是否大于0,因为split函数会在最后一个位置添加空字符串
它们也是您不需要的``
使用以下代码
SIGNS = '03,21-04,19=ARI;04,20-05,20=TAU;05,21-06,21=GEM;06,22-07,22=CAN;' + \
'07,23-08,22=LEO;08,23-09,22=VIR;09,23-10,23=LIB;10,24-11,20=SCO;' + \
'11,21-12,21=SAG;12,22-01,20=CAP;01,21-02,21=AQU;02,22-03,20=PIS;'
def find_astrological_sign(month, date):
x = SIGNS.split(";")
for astro in x:
if len(astro)>0:
if int(astro[0:2]) < month < int(astro[6:8]):
if int(astro[3:5]) < date < 31 or 0 < date < int(astro[9:11]):
return astro[12:15]