ValueError:以10为底的int()的无效文字:''错误

时间:2019-02-18 04:12:19

标签: python

我该如何解决以下错误

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]

1 个答案:

答案 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]