我正在为某个项目编写代码来确定信用卡的有效性,但是我碰壁了,看来到目前为止我尝试过的所有方法都没有用。
这给了sumofodds函数一个错误,其中j = int(card [i])
错误是“无效的文字为Int()与Base 10
有没有人可以给我一些帮助?
def sumofdoubles():
card=input()
x=len(card)
summ=0
for i in range(x-2,-1,-2):
j=int(card[i])
u=j+j
if u>9:
h=u/2
summ=summ+h
return(summ)
def sumofevens():
card=input()
x=len(card)
summ=0
for i in range(x-2,-1,-2):
j=int(card[i])
u=j+j
if u<9:
summ=summ+u
return(summ)
def sumofodds():
summ=0
card=input()
x=len(card)
for i in range(x-1,-1,-2):
j=int(card[i])
summ=summ+j
return(summ)
def main():
card=input()
length=len(card)
summ=0
while(card!="#####"):
if (card[0]=='4' or card[0]=='5' or card[0]=='6' or (card[0]=='3' and card[1]=='1')):
dbls=sumofdoubles()
evens=sumofevens()
odds=sumofodds()
if((dbls+evens+odds)%10==0):
print("Valid")
main()
这是那些想知道的人的完整追溯
python test.py<s.input
File "test.py", line 52 in <module>
main()
File "test.py", line 48, in main
odds=sumofodds()
File "test.py", line 33, in sumofodds
j=int(card[i])
ValueError: invalid literal for int() with base 10: '#'
好吧,无论您输入什么内容,实际上都不是以10为底的数字。这包括非数字字符或空格的任何内容。所以不要输入。:-)
例子:
>>> int('04.9')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: '04.9'
>>> int('4-')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: '4-'
>>> int("Jack")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: 'Jack'
更新:是的,您键入了“#”。这不是有效数字。
问题内容: 我需要一些帮助,因为这是我第一次编码密码。 加密代码似乎可以正常工作,但是解密会引发错误。 我得到的错误是: de.flexiprovider.api.exceptions.BadPaddingException:无效的密文 在代码末尾的 解密函数中 ,该标记为注释 //这里抛出错误!.................................... 我已包括所有进口商品,请原谅
问题内容: 我有一个读取温度数据的脚本: 有时,脚本在将值转换为float的行上失败: get_temp 数据中的文件“ ./projector.py”,第129行[ch] = float(temp) ValueError:float()的无效文字:+ 135.057E + 0 + 078.260E + 0 +00029 但这不是无效的文字。如果我将其输入任何python shell中, 那么它会
问题内容: 我编写了一个程序来求解,然后将其投影在图形上。问题是,每当出现错误时: ValueError:int()以10为底的无效文字。 有什么建议? 这是回溯: 每当我输入一个小于1但大于0的数字时,就会出现问题。在此示例中为0.3。 这是我的代码: 问题答案: 您的回溯告诉您采用整数,您试图给出一个十进制数,因此您需要使用: 这应该按预期工作: 计算机以各种不同的方式存储数字。Python有
问题内容: 如果我想创建一个保证不代表文件名的字符串,则可以在Windows上输入以下字符之一: 例如 在Linux上是否有任何方法可以将字符串标识为“不可能是文件”? 问题答案: 几乎没有任何限制-除和之外,您都可以使用任何东西。但是,有些人认为允许这么多的灵活性不是一个好主意。
问题内容: 下载并编译了glibc-2.13。当我尝试运行执行malloc()的示例C程序时。我收到以下错误 任何人都可以通过我的任何指针来解决此问题。请注意,我的内核版本是linux-2.6.35.9 问题答案: 问题不是您的内核版本。 您系统上的加载程序不支持新的ABI。直到最近,Linux ELF二进制文件仍使用ABI。最近,为了支持STT_GNU_IFUNC,添加了ABI。您将必须更新 系
问题内容: 我正在创建一个读取文件的程序,如果文件的第一行不为空白,它将读取接下来的四行。在这些行上执行计算,然后读取下一行。如果该行不为空,则继续。但是,我收到此错误: 它正在读取第一行,但无法将其转换为整数。 我该怎么做才能解决此问题? 代码: 问题答案: 仅作记录: 我在这里…