lorsque le dernier index sur la chaîne a "x" ou "X" (il est représenté par 10), donc si j'ai quelque chose comme "1x", ce qui signifie 11 (1 + 10)ValueError: littéral invalide pour int() avec la base 10: 'x'
def main():
s1 = "013162959x"
partial_sums(s1)
def partial_sums(s1):
lst =[]
sum = 0
for i in range(len(s1)):
if (i == len(s1) -1) and (s1[i] == "x" or "X"):
sum = sum + int(s1[i]) + 10
else:
sum = sum + int(s1[i])
lst.append(sum)
print(lst)
main()
je suis un ValueError: invalide littéral pour int() avec la base 10: 'x'
la sortie doit être [0, 1, 4, 5, 11, 13, 22, 27, 36, 46]
Lorsque la chaîne contient la valeur "X", elle fonctionne correctement.
def main():
s1 = "0131629592"
partial_sums(s1)
def partial_sums(s1):
lst1 =[]
sum = 0
for i in range(len(s1)):
sum = sum + int(s1[i])
lst1.append(sum)
print(lst1)
main()
Comment puis-je résoudre ce problème?
Puis-je faire de cette façon? if (i == len (s1) -1) et ((s1 [i] == "x") ou (s1 [i] == "X")) ou existe-t-il un meilleur moyen? – user1804925
@ user1804925: cela devrait fonctionner. Vous pouvez également faire 's1 [i] .lower() == 'x'' ou' s1 [i] dans (' x ',' X ') '(je ferais probablement le premier, moi-même.) – DSM