J'écris du code pour un projet pour déterminer la validité des cartes de crédit et j'ai frappé un mur, il semble que toutes les choses que j'ai essayées jusqu'ici ne sont pas travail.Python: Invalid Literal pour Int() Base 10
Ce me donne une erreur pour la fonction sumofodds où j = int (carte [i])
L'erreur est « non valide littérales pour Int() avec la base 10
Est-ce qu'il ya quelqu'un qui peut me donner quelques advce?
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()
C'est tout le retraçage pour ceux qui se demandent
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: '#'
Quelle est la pleine retraçage? Qu'est-ce que vous tapez dans la console? – Blender
Eh bien, sur l'un des appels '' j = int (carte [i]) '' l'entrée (c'est-à-dire, le caractère ith de la carte) n'est pas un nombre entier valide. Ma conjecture est que c'est un tiret ou un espace, dont l'un ou l'autre donnerait cette erreur. Sans plus de détails, il est difficile de dire exactement. – Blair
ressemble à vous avez tapé un '# 'qui n'est pas un nombre ... –