Python:Int()Base 10的无效文字
我正在为某个项目编写代码来确定信用卡的有效性,但是我碰壁了,看来到目前为止我尝试过的所有方法都没有用。
这给了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'
更新:是的,您键入了“#”。这不是有效数字。
以上是 Python:Int()Base 10的无效文字 的全部内容, 来源链接: utcz.com/qa/400265.html