Additionner une variable et un chiffre
Résolu/Fermé
Bonsoir à tous,
Comment fait-on pour additionner une variable et un chiffre : année = année + 2020
Merci à vous pour vos conseils
A bientot
Comment fait-on pour additionner une variable et un chiffre : année = année + 2020
Merci à vous pour vos conseils
A bientot
Configuration: Windows / Chrome 85.0.4183.83
A voir également:
- Additionner une variable et un chiffre
- Formule excel pour additionner plusieurs cellules - Guide
- Excel trier par ordre croissant chiffre - Guide
- Clavier iphone chiffre et lettre - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Application pour écrire les chiffre en lettre - Télécharger - Outils professionnels
5 réponses
georges97
Messages postés
13271
Date d'inscription
lundi 31 janvier 2011
Statut
Contributeur
Dernière intervention
5 avril 2025
2 527
9 sept. 2020 à 05:56
9 sept. 2020 à 05:56
Bonjour,
Les variables, en python, sont dites dynamiques, à savoir que vous n'avez pas à en préciser le type comme dans d'autres langages.
Dans votre cas, il faut que la déclaration préalable de la variable année se fasse en chiffres et non en lettres (par exemple ne pas écrire mille neuf cent mais 1900) pour que l'opération se fasse.
Par ailleurs, il ne faut pas non plus lettre la valeur de la variable entre guillemets sous peine qu'elle ne soit interprétée comme une chaîne de caractères et non comme un nombre et que l'addition ne se fasse pas.
Ce que vous demandez figure dans le premier chapitre de tous les cours sur python, qu'il faut lire et assimiler avant d'espérer aller plus avant.
Cordialement
Les variables, en python, sont dites dynamiques, à savoir que vous n'avez pas à en préciser le type comme dans d'autres langages.
Dans votre cas, il faut que la déclaration préalable de la variable année se fasse en chiffres et non en lettres (par exemple ne pas écrire mille neuf cent mais 1900) pour que l'opération se fasse.
Par ailleurs, il ne faut pas non plus lettre la valeur de la variable entre guillemets sous peine qu'elle ne soit interprétée comme une chaîne de caractères et non comme un nombre et que l'addition ne se fasse pas.
Ce que vous demandez figure dans le premier chapitre de tous les cours sur python, qu'il faut lire et assimiler avant d'espérer aller plus avant.
Cordialement
georges97
Messages postés
13271
Date d'inscription
lundi 31 janvier 2011
Statut
Contributeur
Dernière intervention
5 avril 2025
2 527
9 sept. 2020 à 15:15
9 sept. 2020 à 15:15
Bonjour,
Whismeril, bien plus capé que moi, répondra sans doute de façon plus pertinente. Vous auriez transmis votre code, même incomplet, la réponse aurait été plus circonstanciée.
A mon avis, vous auriez pu utiliser la forme input(int(...)) sachant que dans python 3, la valeur dans input est par défaut une chaîne de caractères, et de ce fait, comme vous l'exprimiez sans l'appliquer, int() la convertit en entier.
Ceci dit, il faut sans doute prévoir dans la condition if de revenir à l'input si une chaîne est entrée ou si un simple enter est effectué.
@whismeril, tu voudras bien compléter ou rectifier ma réponse.
Cordialement
Whismeril, bien plus capé que moi, répondra sans doute de façon plus pertinente. Vous auriez transmis votre code, même incomplet, la réponse aurait été plus circonstanciée.
A mon avis, vous auriez pu utiliser la forme input(int(...)) sachant que dans python 3, la valeur dans input est par défaut une chaîne de caractères, et de ce fait, comme vous l'exprimiez sans l'appliquer, int() la convertit en entier.
Ceci dit, il faut sans doute prévoir dans la condition if de revenir à l'input si une chaîne est entrée ou si un simple enter est effectué.
@whismeril, tu voudras bien compléter ou rectifier ma réponse.
Cordialement
georges97
Messages postés
13271
Date d'inscription
lundi 31 janvier 2011
Statut
Contributeur
Dernière intervention
5 avril 2025
2 527
>
Gmatg
9 sept. 2020 à 16:49
9 sept. 2020 à 16:49
Autant pour moi, c'est plutôt:
a = int(input("ma question: "))
Mais si l'utilisateur entre autre chose qu'un chiffre, il faut prévoir de revenir à la question et dans ce cas, il faudrait peut-être inclure le bloc dans un while(1) plutôt que dans un if de façon à ce que la question boucle jusqu'à ce que l'on entre un int()
a = int(input("ma question: "))
Mais si l'utilisateur entre autre chose qu'un chiffre, il faut prévoir de revenir à la question et dans ce cas, il faudrait peut-être inclure le bloc dans un while(1) plutôt que dans un if de façon à ce que la question boucle jusqu'à ce que l'on entre un int()
georges97
Messages postés
13271
Date d'inscription
lundi 31 janvier 2011
Statut
Contributeur
Dernière intervention
5 avril 2025
2 527
9 sept. 2020 à 16:53
9 sept. 2020 à 16:53
A la réponse 8, j'ai malencontreusement inversé la forme, int vient en premier, suivi par input.
gmatg
>
georges97
Messages postés
13271
Date d'inscription
lundi 31 janvier 2011
Statut
Contributeur
Dernière intervention
5 avril 2025
9 sept. 2020 à 16:54
9 sept. 2020 à 16:54
okee, j'ai essayer ca : année = int(input("en quel année etes vous né ?")) mais ca ne marche pas ... Une coquille dans mon code ?
Et du coup, ya t'il un moyen pour remplacer a.isdigit ?
Merci à toi
Et du coup, ya t'il un moyen pour remplacer a.isdigit ?
Merci à toi
georges97
Messages postés
13271
Date d'inscription
lundi 31 janvier 2011
Statut
Contributeur
Dernière intervention
5 avril 2025
2 527
>
gmatg
Modifié le 9 sept. 2020 à 17:15
Modifié le 9 sept. 2020 à 17:15
Moi, ça fonctionne parfaitement, mets une ligne print(année) juste après pour tester. Ou fais un script séparé. Le problème est peut-être dans le reste du code.
voir les exemples ici:
https://snakify.org/fr/lessons/print_input_numbers/
https://stackoverflow.com/questions/55885862/convert-input-str-to-int-in-python
Quel IDE utilises tu? juste par curiosité.
Pour isdigit, je n'ai pas compris pourquoi tu veux l'utiliser puisque la conversion se fait grâce à int(), mais s'il s'agit d'éliminer toute entrée non-numérique, je n'ai pas testé cette méthode et ne peux t'indiquer un substitut.
Dans l'état de mes connaissances, je passe par une boucle while()
voir les exemples ici:
https://snakify.org/fr/lessons/print_input_numbers/
https://stackoverflow.com/questions/55885862/convert-input-str-to-int-in-python
Quel IDE utilises tu? juste par curiosité.
Pour isdigit, je n'ai pas compris pourquoi tu veux l'utiliser puisque la conversion se fait grâce à int(), mais s'il s'agit d'éliminer toute entrée non-numérique, je n'ai pas testé cette méthode et ne peux t'indiquer un substitut.
Dans l'état de mes connaissances, je passe par une boucle while()
georges97
Messages postés
13271
Date d'inscription
lundi 31 janvier 2011
Statut
Contributeur
Dernière intervention
5 avril 2025
2 527
9 sept. 2020 à 17:26
9 sept. 2020 à 17:26
Si je ne réponds pas de suite, c'est que je suis en train d'arroser() mon jardin, autre fonction à exécuter en ce moment.
Utilisateur anonyme
9 sept. 2020 à 18:52
9 sept. 2020 à 18:52
Houla quelle activité!
d'abord utiliser des accents dans les noms de variables, de méthodes, de classes, bref de n'importe quoi est déconseillé et ce quelque soit le langage.
Utiliser isdigit est une bonne façon de faire, par contre ton algorithme n'est pas très optimisé.
Tu demandes l'année, ok
Tu demandes le moi, admettons
Tu testes si l'année est valide, heu, non là t'es passé au moi... L'utilisateur, va se dire "qu'est qu'il me fait, il me demande le moi et après il me dit que l'année ne va pas...".
Si tu as déjà appris à utiliser while, alors comme le propose Georges c'est une bonne option
Et ensuite tu fais pareil avec le moi.
Cela dit, si tu fais tourner ce programme dans un moi, ou dans un an qu'est ce qui clochera?
d'abord utiliser des accents dans les noms de variables, de méthodes, de classes, bref de n'importe quoi est déconseillé et ce quelque soit le langage.
Whismeril, bien plus capé que moi,, c'est vite dit, Python n'est pas ma tasse de thé.
Utiliser isdigit est une bonne façon de faire, par contre ton algorithme n'est pas très optimisé.
Tu demandes l'année, ok
Tu demandes le moi, admettons
Tu testes si l'année est valide, heu, non là t'es passé au moi... L'utilisateur, va se dire "qu'est qu'il me fait, il me demande le moi et après il me dit que l'année ne va pas...".
Si tu as déjà appris à utiliser while, alors comme le propose Georges c'est une bonne option
annee = 0 #on initialise avec une valeur interdite while(annee < 1900 or annee > 2020): #tant que annee a une valeur interdite on la redemande texte = input("Année ? ") if(texte.isdigit()): #si c'est un entier, on convertit et on assigne annee = int(texte) print(annee)
Et ensuite tu fais pareil avec le moi.
Cela dit, si tu fais tourner ce programme dans un moi, ou dans un an qu'est ce qui clochera?
georges97
Messages postés
13271
Date d'inscription
lundi 31 janvier 2011
Statut
Contributeur
Dernière intervention
5 avril 2025
2 527
9 sept. 2020 à 19:27
9 sept. 2020 à 19:27
Je me suis en effet emmêlé les pinceaux dans le tuyau d'arrosage. J'ai repris sans corriger "année" au lieu de "annee".
Je pense, gmatg, que tu ne devrais pas t'évertuer à trouver un remplaçant à isdigit. Je ne dis pas que cette fonction ne peut pas servir, mais comme je te le disais, la combinaison int/input dans une boucle while() suffit à bloquer les entrées interdites toute entrée autre qu'un chiffre fera boucler vers la question.
Mais tu ne devraii pas essayer de fair tout fonctionner d'un coup.
Si tu as un problème avec int/input, essaie de le résoudre dans un script à part, comme je te le conseillais. Je t'ai transmis deux exemples de cours de python, les ai essayé et ca fonctionne. Il suffit de les recopier et de les modifier. Il n'y aucune raison que ça ne fonctionne pas. Je l'ai utilisé des dizaines de fois. A moins que tu ne sois encore sous python 2.
Tu ne réponds pas sur ton IDE.
Envoie nous un code non-fonctionnel correspondant à ces seules lignes et je les testerai.
Bien évidemment, le script de Whismeril est bon, qui utilise isdigit(). Test le tel quel avant d'essayer de l'introduire dans ton code.
A plus
Je pense, gmatg, que tu ne devrais pas t'évertuer à trouver un remplaçant à isdigit. Je ne dis pas que cette fonction ne peut pas servir, mais comme je te le disais, la combinaison int/input dans une boucle while() suffit à bloquer les entrées interdites toute entrée autre qu'un chiffre fera boucler vers la question.
Mais tu ne devraii pas essayer de fair tout fonctionner d'un coup.
Si tu as un problème avec int/input, essaie de le résoudre dans un script à part, comme je te le conseillais. Je t'ai transmis deux exemples de cours de python, les ai essayé et ca fonctionne. Il suffit de les recopier et de les modifier. Il n'y aucune raison que ça ne fonctionne pas. Je l'ai utilisé des dizaines de fois. A moins que tu ne sois encore sous python 2.
Tu ne réponds pas sur ton IDE.
Envoie nous un code non-fonctionnel correspondant à ces seules lignes et je les testerai.
Bien évidemment, le script de Whismeril est bon, qui utilise isdigit(). Test le tel quel avant d'essayer de l'introduire dans ton code.
A plus
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
9 sept. 2020 à 07:12
Okeeee j'ai compris !!! Il faut convertir la variable en un nombre ? C'est bien ça ?
Merci beaucoup d'avance
9 sept. 2020 à 07:17
Si le nom de la variable est A
A=12 suffit. A est le nom de la variable, 12 est la valeur, dans ce cas un nombre.
9 sept. 2020 à 08:15
Comme la question est posée sans contexte, on répond sans contexte.
Mais admettons que la variable soit issue d’une saisie clavier, alors elle contient du texte et dans ce cas oui, il faut convertir en nombre.
Pour tes prochaines questions ou réponse, pense à poster le bout de code qui est concerné.
A savoir que pour python il est impératif d’utiliser la coloration syntaxique sinon l’indentation ne sera pas conservé par le site et ton code ne voudra rien dire pour le lecteur. Voir ce petit tuto https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
9 sept. 2020 à 09:58
J'espérais effectivement qu'un autre contributeur reprenne la main. J' avais effectivement pensé à l'input mais en l'absence de script, je n'ai pas voulu y faire allusion pour ne pas "compliquer" ce premier contact apparemment avec Python.
A bientôt,
Georges
9 sept. 2020 à 12:05