gpt4 book ai didi

Python:Int() Base 10 的无效文字

转载 作者:太空狗 更新时间:2023-10-30 02:21:28 25 4
gpt4 key购买 nike

我正在为一个项目编写代码以确定信用卡的有效性,但我遇到了困难,似乎到目前为止我尝试过的所有方法都不起作用。

这给我一个 sumofodds 函数的错误 where j=int(card[i])

错误是“以 10 为基数的 Int() 的无效文字

有没有人可以给我一些建议?

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 的无效文字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15993238/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com