-2
votes

Python 3 Sum 2 entiers avec entrée. ValueError: littéral non valide pour int () avec base 10: '1 1'

J'essaie d'ajouter 2 entiers dans Python3 à l'aide de l'entrée.

Traceback (most recent call last):
File "Main.py", line 7, in <module>
a = int(input("Enter first number"))
ValueError: invalid literal for int() with base 10: '1 1'


7 commentaires

Quelle est l'entrée que vous donnez? On dirait que vous essayez de convertir '1 1' à un int .


La première étape du débogage doit être de diviser int (entrée (.)) en deux instructions afin que vous puissiez examiner le résultat de l'entrée (..) pour voir si C'est ce que vous supposez que c'est.


Vous ne donnez pas le bon compagnon d'entrée. Donner une entrée comme 1 1 que le tomothy a dit, vous donnerait évidemment cette erreur. Parce que Python convertissait cette entrée de 1 1 en entier et peut convertir "11" en int mais pas "1 1". Bien sûr, il est censé donner cette erreur.


Dupliqué possible de ValueError: littéral non valide pour int () avec base 10


@ Tomothy32 Le centre de pratique fournit cette entrée, elle ressemble à deux entiers séparés d'espace? Est-ce un problème avec ce code?


@Amitamola Le centre de pratique entrait dans mon code, je ne pense pas que ce soit un duplicata de l'autre question car ce n'est pas un nombre de float n'est-ce pas?


Si vous voyez ci-dessous cette réponse à flotteur, le répondeur mentionne également des espaces. C'est pourquoi je l'ai marqué comme un duplicata. Voir maintenant, si l'entrée va être comme celle-ci seulement, vous pouvez utiliser .replace ("", "") et cela fonctionnerait parfaitement bien je crois.


3 Réponses :


0
votes

Votre code fonctionne, mais pas pour l'entrée spécifique, le centre de pratique donne. Faites cette modification:

print("The sum of a and b is", sum(map(int, input("Enter numbers: ").split())))


0 commentaires

0
votes

Étant donné que votre entrée arrive avec des espaces lui-même, vous pouvez utiliser la commande Remplacer et remplacer ces espaces.

def sum(x,y):
    return x+y

a = int(input("Enter first number: ").replace(" ",""))
b = int(input("Enter second number: ").replace(" ",""))
print("The sum of a and b is: ", sum(a,b))


0 commentaires

0
votes

Si vous souhaitez saisir toutes les valeurs de la même ligne que 1 1 , vous devez utiliser Split () : xxx

sortie: xxx

Si des valeurs séparément doivent être entrées: xxx

Sortie: xxx


0 commentaires