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'
3 Réponses :
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())))
É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))
Si vous souhaitez saisir toutes les valeurs de la même ligne que Si des valeurs séparément doivent être entrées: p> Split () code>:
Quelle est l'entrée que vous donnez? On dirait que vous essayez de convertir
'1 1' code> à un
int code>.
La première étape du débogage doit être de diviser
int (entrée (.)) code> en deux instructions afin que vous puissiez examiner le résultat de l'entrée
(..) code> 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 a>
@ 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.