tulpe python3 [Réglé]
gérer input avec tulpe-RESOLU
Discussions Libres

relizane Membre non connecté
-
- Voir le profil du membre relizane
- Inscrit le : 16/11/2017
- Groupes :
Bonjour
Je débute avec python et je me trouve devant un problème que je n'arrive pas à résoudre:
je crée un tulpe du genre :
a1948 = (3, 20, 16, 55, 6, 21, 12, 11, 9, 23, 3, 22, 12, 21, 22, 33)
a1949 = (3, 20, 22, 48, 6, 20, 22, 48, 9, 23, 9, 6, 12, 22, 4, 23)
je veux pouvoir choisir le tulpe par un input:
annee = int(input("entrez une année sous la forme axxxx: "))
a1948
puis extraire une valeur:
valeur = annee[2]
le script me revoie : 9 ; le rang 2 de a1948
ce qui n'est pas le but recherché... j'aimerai qu'il me renvoie: 16 ; le rang 2 du tulpe a1948
Je ne sais comment faire!!!
Une solution?
Merci

Édité par relizane Le 23/10/2019 à 10h37



relizane Membre non connecté
-
- Voir le profil du membre relizane
- Inscrit le : 16/11/2017
- Groupes :
Précision: # voir note
Je débute avec python et je me trouve devant un problème que je n'arrive pas à résoudre:
je crée un tulpe du genre :
a1948 = (3, 20, 16, 55, 6, 21, 12, 11, 9, 23, 3, 22, 12, 21, 22, 33)
a1949 = (3, 20, 22, 48, 6, 20, 22, 48, 9, 23, 9, 6, 12, 22, 4, 23)
je veux pouvoir choisir le tulpe par un input:
annee = int(input("entrez une année sous la forme xxxx: "))
# note: je rentre l'année directement en int(xxxx ), puis je la transforme pour que l'entrée soit acceptée par le tulpe:
1948
annee = "a" + str(annee)
print(annee)
a1948
valeur = annee[2]
le script me revoie : 9 ; le rang 2 de a1948
ce qui n'est pas le but recherché... j'aimerais qu'il me renvoie: 16 ; le rang 2 du tulpe a1948
Je ne sais comment faire!!!
Une solution?
Merci
Édité par relizane Le 22/10/2019 à 15h04



Jybz Membre non connecté
-
- Voir le profil du membre Jybz
- Inscrit le : 10/10/2018
- Groupes :
-
Administrateur
-
Forgeron
quand tu demandes d'imprimer annee (qui VAUT "a1948"), si tu demande annee[2], il affiche le caractère d'indice 2, soit le troisième caractère de "a1948", '9'.
Je ne sais pas si ce que tu veux faire est possible.
Si j'étais toi, je recréerais un "élément" reliant un nom (une chaine de caractère, par exemple "a1948") à une variable (ou constante) qui a pour nom 'a1948'.
Je ne sais pas comment ce nomme ce genre d'élément, entre dictionnaire, ou tableau, etc, je ne suis pas dans la POO. Je te conseille d'aller sur le salon #python-fr de l'IRC Freenode, ils sont compétent et super sympa !
De mon faible niveau en python, je créerais un truc du genre :
Code PYTHON :
a1948 = (3, 20, 16, 55, 6, 21, 12, 11, 9, 23, 3, 22, 12, 21, 22, 33) a1949 = (3, 20, 22, 48, 6, 20, 22, 48, 9, 23, 9, 6, 12, 22, 4, 23) dictionnaire=( ("a1948", a1948) , ("a1949", a1949) ) annee = int(input("entrez une année sous la forme xxxx: ")) annee = "a" + str(annee) print(annee) #a1948 for element in dictionnaire : if annee = element[0] : valeur=element[1] print(valeur[2]) #16
Ce code est fort probablement faux, car je n'ai pas l'expérience ni la syntaxe Python en tête, et le nom (dictionnaire) est probablement faux aussi, ainsi que la syntaxe pour construire réellement l'objet désiré.
Téléverser une image : /wiki/hebergement-de-fichiers-sur-mlo
Arch | Machine | OS |
x86_64 | lenovo x250 | mga9 |
armv7hl | bananapro | mga9 |
aarch64 | Raspberry Pi 4B | mga9 |

Papoteur Membre non connecté
-
- Voir le profil du membre Papoteur
- Inscrit le : 03/10/2011
- Groupes :
-
Modérateur
-
Équipe Mageia
-
Administrateur
-
Forgeron
déjà, ce n'est pas un tulpe, mais un tuPLe :p
Sinon, j'utiliserais un dictionnaire, comme dit jybz, mais version Python. D'abord l'initialisation d'un dictionnaire (probablement pas nécessaire), puis l'affectation avec les entiers comme clé. On accède ensuite directement avec un entier comme clé.
Code PYTHON :
a = {} a[1948] = (....) a[1949] = (...) ... print(a[annee])
https://docs.python.org/fr/3/tutorial/datastructures.html#sets
Yves

Jybz Membre non connecté
-
- Voir le profil du membre Jybz
- Inscrit le : 10/10/2018
- Groupes :
-
Administrateur
-
Forgeron
Papoteur :
Bonjour,
déjà, ce n'est pas un tulpe, mais un tuPLe :p
Sinon, j'utiliserais un dictionnaire, comme dit jybz, mais version Python. D'abord l'initialisation d'un dictionnaire (probablement pas nécessaire), puis l'affectation avec les entiers comme clé. On accède ensuite directement avec un entier comme clé.
https://docs.python.org/fr/3/tutorial/datastructures.html#sets
déjà, ce n'est pas un tulpe, mais un tuPLe :p
Sinon, j'utiliserais un dictionnaire, comme dit jybz, mais version Python. D'abord l'initialisation d'un dictionnaire (probablement pas nécessaire), puis l'affectation avec les entiers comme clé. On accède ensuite directement avec un entier comme clé.
Code PYTHON :
a = {} a[1948] = (....) a[1949] = (...) ... print(a[annee])
https://docs.python.org/fr/3/tutorial/datastructures.html#sets
Excuse moi, mais pour un "dictionnaire", ne devrait-ce pas
Code PYTHON :
a['1948'] = (....)
au lieu de
Code PYTHON :
a[1948] = (....)
?
Car (pour moi), tu transformes la référence par un numéro d'index. Mais moi, je ne pythonne pas alors faut pas m'y fier !
Téléverser une image : /wiki/hebergement-de-fichiers-sur-mlo
Arch | Machine | OS |
x86_64 | lenovo x250 | mga9 |
armv7hl | bananapro | mga9 |
aarch64 | Raspberry Pi 4B | mga9 |

Yuusha Membre non connecté
-
- Voir le profil du membre Yuusha
- Inscrit le : 04/07/2017
- Groupes :
-
Modérateur
-
Administrateur
-
Forgeron
Code PYTHON :
a = {1948 : (3,20,16,55,6,21,12,11,9,23,3,22,12,21,22,33), 1949 : (3, 20, 22,48,6,20,22,48,9,23,9,6,12,22,4,23)} annee = int(input("Entrez une année : ")) print(annee) print(a[annee][2])
Remarquez que changer 1948 par '1948' fonctionnerait aussi si on ne transformait pas l'entrée en int mais que l'on gardait la chaine de caractères.
Édité par Yuusha Le 22/10/2019 à 21h48

relizane Membre non connecté
-
- Voir le profil du membre relizane
- Inscrit le : 16/11/2017
- Groupes :
J'ai testé le script de jybz il fonctionne à condition de rectifier sintax error (==)if annee = element[0] :
a1948 = (3, 20, 16, 55, 6, 21, 12, 11, 9, 23, 3, 22, 12, 21, 22, 33)
a1949 = (3, 20, 22, 48, 6, 20, 22, 48, 9, 23, 9, 6, 12, 22, 4, 23)
dictionnaire=( ("a1948", a1948) , ("a1949", a1949) )
annee = int(input("entrez une année sous la forme xxxx: "))
annee = "a" + str(annee)
print(annee)
#a1948
for element in dictionnaire :
if annee == element[0] :
valeur=element[1]
print(valeur[2])
#16
J'ai aussi testé le script de Yuusha : il est parfait aussi
a = {1948 : (3,20,16,55,6,21,12,11,9,23,3,22,12,21,22,33), 1949 : (3, 20, 22,48,6,20,22,48,9,23,9,6,12,22,4,23)}
annee = int(input("Entrez une année : "))
print(annee)
print(a[annee][2])
Du coup j'ai simplifié aussi le script de jybz
# script de jybz que je simplifie
a1948 = (3, 20, 16, 55, 6, 21, 12, 11, 9, 23, 3, 22, 12, 21, 22, 33)
a1949 = (3, 20, 22, 48, 6, 20, 22, 48, 9, 23, 9, 6, 12, 22, 4, 23)
dictionnaire=( ("a1948", a1948) , ("a1949", a1949) )
annee = int(input("entrez une année sous la forme xxxx: "))
print(annee)
1948
for element in dictionnaire :
if annee == element[0] :
valeur=element[1]
print(valeur[2])
#16
Alors, encore merci et bravo à tous
papoteur, Yuusha, jybz



Papoteur Membre non connecté
-
- Voir le profil du membre Papoteur
- Inscrit le : 03/10/2011
- Groupes :
-
Modérateur
-
Équipe Mageia
-
Administrateur
-
Forgeron
relizane :
Du coup j'ai simplifié aussi le script de jybz
# script de jybz que je simplifie
#16
Alors, encore merci et bravo à tous
papoteur, Yuusha, jybz
Du coup j'ai simplifié aussi le script de jybz
# script de jybz que je simplifie
Code PYTHON :
a1948 = (3, 20, 16, 55, 6, 21, 12, 11, 9, 23, 3, 22, 12, 21, 22, 33) a1949 = (3, 20, 22, 48, 6, 20, 22, 48, 9, 23, 9, 6, 12, 22, 4, 23) dictionnaire=( ("a1948", a1948) , ("a1949", a1949) ) annee = int(input("entrez une année sous la forme xxxx: ")) print(annee) 1948 for element in dictionnaire : if annee == element[0] : valeur=element[1] print(valeur[2])
#16
Alors, encore merci et bravo à tous
papoteur, Yuusha, jybz
Bonjour,
Tu as loupé une étape du script de jybz qui modifie l'étiquette de nombre à chaine de caractères. Les étiquette de ton dictionnaires sont restées des chaînes de caractères.
Yves

Jybz Membre non connecté
-
- Voir le profil du membre Jybz
- Inscrit le : 10/10/2018
- Groupes :
-
Administrateur
-
Forgeron
- Elle est surement plus efficace car c'est un peu "du built-in"
- Papoteur a une certaine expérience en Python !
Téléverser une image : /wiki/hebergement-de-fichiers-sur-mlo
Arch | Machine | OS |
x86_64 | lenovo x250 | mga9 |
armv7hl | bananapro | mga9 |
aarch64 | Raspberry Pi 4B | mga9 |
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie