erreur de code avec la fonction input()
bonjour a tous,
je suis novice avec le language python ,
j'aime qu'on mexplique le problème de mon erreur de coding :
j'utilise la version 3.9 de python.
Code:
1 2 3 4 5 6
|
#coding:utf-8
nomSaisir = input("Saisir le nom de votre choix : ")
print("Bonjour a Vous, " , nomSaisir) |
je m'explique,
J'ai voulu faire un code test_script afin de pratiquer,
quand je lance mon script ( "code si dessus : ") sur ma console
il affiche bien la phrase "Saisir le nom de votre choix : " , je rentre le nom : exemple toto et voici l'erreur qui'l m'affiche
Code:
1 2 3 4 5 6 7
|
toto@toto~/ $ python code_ref_01_01
Saisir le nom de votre choix : toto
Traceback (most recent call last):
File "code_ref_01_01", line 5, in <module>
nomSaisir = input("Saisir le nom de votre choix : ")
File "<string>", line 1, in <module> |
Alors que quand je rentre un entier : exemple 10 ,
le script fonctionne parfaitement .
Il m'affiche bien la phrase " ('Bonjour a Vous, ', 10).
dans se code aussi ,
J'ai une erreur quand rentre un entier est voici l'erreur !
Code:
1 2 3 4 5 6
| toto@toto ~/ $ python test_script2.py
Entrez un nombre : 10
Traceback (most recent call last):
File "test_script2.py", line 9, in <module>
if( nbr.isdigit()):
AttributeError: 'int' object has no attribute 'isdigit' |
merci d'avance la communauté,
isdigit(je fait quoi pourquoi)
Comme dit plus haut par -w tu doit faire attention à bien gérer l'attribue et la logique de base aussi de ta syntaxe de ta méthode. la base est string.isdigit() , donc il me semble que "nb." génère un type int mais comme tu as modifier ton script mes que on a rien a se mettre sous la dent ,je fait que des suppositions sur la possible erreur. Si ta modifier ton script est fait une variable du genre nb = 10 pour faire un test te voila un pied en dehors de ta méthode. Un truc important place ton script + erreur et a chaque modification faudrait au mieux relancer le tous.
;)
(method string) petit rajout (url )sur ta fiche ça complète pour les curieux
Citation:
Envoyé par
wiztricks
Salut,
Avec Python 2, input récupère la saisie et évalue l'expression...
Et la saisie d'une suite de digits retourne un entier (qui n'a pas de méthode .is_digit).
Pour avoir une chaine de caractères dans tous les cas, il faut utiliser raw_input (le "raw_" disant de ne pas évaluer l'expression).
Il serait préférable que vous trouviez comment lancer Python3 sur votre machine (normalement avec "python3", çà devrait marcher) car Python 2 n'étant plus supporté... ça ne vous apportera pas grand chose de commencer avec cette version là.
- W
https://www.w3schools.com/python/python_ref_string.asphttps://www.w3schools.com/python/ref_string_isdigit.asp