Bonjour, j'ai vraiment besoin de votre aide s'il vous plaît. Je n'ai pas fais de python l'année dernière du coup j'ai un an de retard et je ne comprends pas du tout mon exercice ( je dois le rendre demain midi).
Voici l'énoncé : Créer un dictionnaire qui contient les 10 (de 0 à 9) premiers nombres entiers naturels en nombre pour la clé et en français pour la valeur. Faites en sorte qu'une phrase du type "j'ai 3 pommes" se transforme toute seule en 'j'ai trois pommes'. Penser à la leçon sur chr, ord et le codage ASCII (UTF8 dans les faits). Pour être clair, vous direz: "entrez une phrase avec des nombres entiers sous forme de nombres" et votre programme remplacera les nombres par des chaines de caractères. (on s'arrête à 9, mais on peut réfléchir à plus...)
J'ai créé le dictionnaire mais je ne sais pas quoi faire ensuite.
Je verrais un truc beaucoup plus simple puisque tu as un dictionnaire :
num_words = {
0: "Zero",
1: "Un",
2: "Deux",
3: "Trois",
4: "Quatre",
5: "Cinq",
6: "Six",
7: "Sept",
8: "Huit",
9: "Neuf",
10: "Dix"
}
phrase = "Bonjour on est le 10 Octobre"
mots = phrase.split()
for nombre in mots:
for key, value in num_words.items():
if nombre == str(key):
phrase = phrase.replace(nombre, value)
print(phrase)
Je verrais un truc beaucoup plus simple puisque tu as un dictionnaire :
num_words = {
0: "Zero",
1: "Un",
2: "Deux",
3: "Trois",
4: "Quatre",
5: "Cinq",
6: "Six",
7: "Sept",
8: "Huit",
9: "Neuf",
10: "Dix"
}
phrase = "Bonjour on est le 10 Octobre"
mots = phrase.split()
for nombre in mots:
for key, value in num_words.items():
if nombre == str(key):
phrase = phrase.replace(nombre, value)
print(phrase)
- Edité par Diablo76 il y a environ 4 heures
Merci beaucoup j’ai a peu près tout compris mais a quoi sert "split" ?
Je verrais un truc beaucoup plus simple puisque tu as un dictionnaire :
num_words = {
0: "Zero",
1: "Un",
2: "Deux",
3: "Trois",
4: "Quatre",
5: "Cinq",
6: "Six",
7: "Sept",
8: "Huit",
9: "Neuf",
10: "Dix"
}
phrase = "Bonjour on est le 10 Octobre"
mots = phrase.split()
for nombre in mots:
for key, value in num_words.items():
if nombre == str(key):
phrase = phrase.replace(nombre, value)
print(phrase)
- Edité par Diablo76 il y a environ 4 heures
Merci beaucoup j’ai a peu près tout compris mais a quoi sert "split" ?
split sert à séparer chaque mot dans la phrase à partir des espaces et les ajouter à la liste "mots".
De cette manière on peut comparer chaque "mot" avec le dictionnaire, on aurai pu comparer dans la boucle for chaque lettre de la phrase comme ceci:
for nombre in phrase:
mais au delà de 9 le script aurai affiché "UnZero" au lieu de "Dix
num_words = {
'0': "Zero",
'1': "Un",
'2': "Deux",
'3': "Trois",
'4': "Quatre",
'5': "Cinq",
'6': "Six",
'7': "Sept",
'8': "Huit",
'9': "Neuf",
'10': "Dix"
}
phrase = "Bonjour on est le 10 Octobre"
mots = phrase.split()
for nombre in mots:
valeur = num_words.get(nombre, nombre)
phrase = phrase.replace(nombre, valeur)
print(phrase)
Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard) La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)
Mais c'est peut-être plus parlant pour un(e) débutant(e)
J'ai du mal avec ce genre de remarques, la documentation Python est française, et plutôt simple à comprendre.
Dans ce cas, à penser de cette manière, on ne profite qu'à 10% de l'ensemble de la syntaxe Python ?
Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard) La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)
Mais c'est peut-être plus parlant pour un(e) débutant(e)
J'ai du mal avec ce genre de remarques, la documentation Python est française, et plutôt simple à comprendre.
Dans ce cas, à penser de cette manière, on ne profite qu'à 10% de l'ensemble de la syntaxe Python ?
Ce n'est pas une remarque, mais un constat, la plupart des questions sur ce forum sont posées par des lycéens qui travaillent en python parce qu'on leurs impose....... et non parce qu'ils sont passionnés
Je verrais un truc beaucoup plus simple puisque tu as un dictionnaire :
num_words = {
0: "Zero",
1: "Un",
2: "Deux",
3: "Trois",
4: "Quatre",
5: "Cinq",
6: "Six",
7: "Sept",
8: "Huit",
9: "Neuf",
10: "Dix"
}
phrase = "Bonjour on est le 10 Octobre"
mots = phrase.split()
for nombre in mots:
for key, value in num_words.items():
if nombre == str(key):
phrase = phrase.replace(nombre, value)
print(phrase)
- Edité par Diablo76 il y a environ 4 heures
Merci beaucoup j’ai a peu près tout compris mais a quoi sert "split" ?
split sert à séparer chaque mot dans la phrase à partir des espaces et les ajouter à la liste "mots".
De cette manière on peut comparer chaque "mot" avec le dictionnaire, on aurai pu comparer dans la boucle for chaque lettre de la phrase comme ceci:
for nombre in phrase:
mais au delà de 9 le script aurai affiché "UnZero" au lieu de "Dix
- Edité par Diablo76 il y a environ 5 heures
Dans l'énoncé, on va seulement de 0 à 9, donc on a une entrée en trop dans le dictionnaire et du coup (toujours pour être "conforme" avec l'énoncé), on utiliserai chr(48+key) ou chr(ord('0')+key) au lieu de str(key)
Le Tout est souvent plus grand que la somme de ses parties.
Dictionnaires python
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Blond, bouclé, toujours le sourire aux lèvres...
Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)
Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)
Le Tout est souvent plus grand que la somme de ses parties.
Le Tout est souvent plus grand que la somme de ses parties.