kazute
Messages postés109Date d'inscriptionsamedi 9 avril 2016StatutMembreDernière intervention12 novembre 2020
-
Modifié le 11 janv. 2019 à 20:07
kazute
Messages postés109Date d'inscriptionsamedi 9 avril 2016StatutMembreDernière intervention12 novembre 2020
-
12 janv. 2019 à 15:51
Bonjour,
J'ai un programme en python à faire (pour gérer les stock d'un magasin) et j'ai un problème pour une fonction.
Je vous donne ici l'énoncé suivis des fonctions de mon programme :
Q1 : ""Spécifier puis ´ écrire une fonction ´ informations stocks qui retourne, a partir des prix des `
articles et du nombre d’articles en rayon, les trois informations suivantes (dans l’ordre indique) : ´
— le montant total de marchandises en rayon;
— le nbre total d’articles en rayon;
— le prix moyen d’un article.
On considerera qu’un article en rayon dont on ne conna ` ˆıt pas le prix coute 1 euro; s’il n’y a pas d’articles ˆ
en rayon, le prix moyen d’un article est zero
Note : On peut retourner un tuple facilement avec l’operateur ´ , : si a, b et c sont trois variables
dans une fonction, l’instruction return a,b,c retourne un tuple compose de leurs trois valeurs. ""
def informations_stocks(stock,prix):
total = 0
articles = 0
for i in stock:
if i in prix:
total+= stock[i] * prix[i]
else:
total += stock[i]
articles += stock[i]
moyen = total / articles
return total,articles,moyen
Q2 "". Specifier puis ´ ecrire une fonction ´ info depts qui retourne les trois informations prec´ edentes ´
pour chaque departement.""
def info_depts(dept,prix):
dic = {}
for i in dept:
dic[i] = informations_stocks(dept[i],prix)
return dic
Jusque là, mes fonctions fonctionnent parfaitement.
Mais à partir de là l'énoncé dit :
""Specifier puis ´ ecrire une fonction ´ index articles qui retourne, pour chaque article, les departements ´
dans lesquels ont peut le trouver.
Exemple :
>>> index_du_magasin = index_articles(lesDepts)
>>> index_du_magasin
{’ampoule’: [’quincaillerie’], ’vis’: [’quincaillerie’],
’perc¸euse’: [’quincaillerie’, ’outillage’],
’visseuse’: [’outillage’], ’clous’: [’quincaillerie’]}""
Voici ce que j'ai fait :
def index_articles(dept):
dic = {}
for i in leStock:
for key in dept.items():
dic[i] = leStock[i]
dic[i] = key #dept[j]
return dic
Seulement ce qui est demandé (exemple à l'appui) ne correspond absolument pas à ce que j'ai en utilisant ma fonction :
Si vous pouviez corriger ma fonction ou me donner une fonction qui fait ce qui est demandé, cela m'arrangerais énormément ! (en expliquant bien sur ce que vous avez fait pour m'aider à comprendre).
J’espère que j'ai été assez clair et je vous remercie à l'avance pour vos réponses.
Cordialement,
EDIT : Déplacement de la discussion dans le bon forum ET ajout des balises de code !
kazute
Messages postés109Date d'inscriptionsamedi 9 avril 2016StatutMembreDernière intervention12 novembre 202020 11 janv. 2019 à 22:25
Bonsoir,
Tout d'abord, merci pour ces aides qui m'ont permis d'un peut mieux comprendre (je n'avais pas connaissance des .keys et .values) Mais je n'y arrive toujours pas:
voilà mon code :
def index_articles(dept):
dic = {}
for i in leStock:
for key2 in dept.keys():
for value in dept.values():
#for j in lesDepts:
dic[i] = leStock[i]
if dic[i] == value:
dic[i] = key2 #dept[j]
else :
dic[i] = key
return dic
Lorsque je lance la fonction, je n'arrive pas a faire spécifier le fait que l'outil se trouve dans outillage ou dans la quincaillerie.
Si vous avez d'autres pistes je suis preneur.
soldo
>
kazute
Messages postés109Date d'inscriptionsamedi 9 avril 2016StatutMembreDernière intervention12 novembre 2020 12 janv. 2019 à 00:13
L'exercice demande d'utiliser uniquement les départements, pas le stock, donc la fonction doit recevoir en paramètre les départements, les parcourir afin de grouper les départements selon les articles.
def index_articles(depts):
articles = {} # article en clé, departments en valeurs
# Parcours des departments et de leurs stocks
for dept, stock in depts.items():
# Parcours des articles du département
for article in stock:
# Si l'article n'existe pas dans le dict. articles
# On le crée avec pour valeur une liste
if article not in articles:
articles[article] = []
# Ajout du départ. à la liste
articles[article].append(dept)
return articles
# Affichage
for art, depts in index_articles(lesDepts).items():
print(art, depts)
kazute
Messages postés109Date d'inscriptionsamedi 9 avril 2016StatutMembreDernière intervention12 novembre 202020 12 janv. 2019 à 15:51
Bonjour, je vous remercie vivement pour votre aide !
j'ai pu avancer dans mes exercices et je suis de nouveau bloqué à une question :
Specifier puis ´ ecrire une fonction ´ permuteListe(uneListe) qui echange successi- ´
vement chaque el´ ement de la liste (l’ ´ el´ ement au rang 0, puis au rang 1, puis . . .) avec un autre ´ el´ ement ´
de la liste choisi au hasard. La liste doit pouvoir contenir n’importe quel type d’el´ ement. La liste donn ´ ee´
en parametre est modifi ` ee par cette fonction
Voici mon programme :
def permuteListe(uneListe):
for i in range(len(uneListe)):
x = randint(1, len(uneListe)-1)
move1 = uneListe[x]
uneListe[x] = uneListe[i]
uneListe[i] = move1
return uneListe
Jusque là ça marche mais la question suivante est problématique :
A l’aide de la fonction précédente, spécifier puis ´ écrire une fonction ´ dictPerm() qui
fabrique et retourne un dictionnaire de permutation (tire au hasard) pour les lettres majuscules
Pour cette question, vous utiliserez la variable ascii_uppercase du module string qui contient
la chaîne de caractères des lettres de l’alphabet en majuscules .
Voici mon programme :
def dicPerm():
ALPHABET = string.ascii_uppercase
dic = {}
for i in range(len(ALPHABET)):
dic[ALPHABET[i]] = ALPHABET[i]
print(dic)
je voudrais savoir comment me servir (où placer le permuteListe) du programme précédent pour mélanger les lettres dans le dictionnaire.
11 janv. 2019 à 22:25
Tout d'abord, merci pour ces aides qui m'ont permis d'un peut mieux comprendre (je n'avais pas connaissance des .keys et .values) Mais je n'y arrive toujours pas:
voilà mon code :
Je me retrouve avec:
Lorsque je lance la fonction, je n'arrive pas a faire spécifier le fait que l'outil se trouve dans outillage ou dans la quincaillerie.
Si vous avez d'autres pistes je suis preneur.
12 janv. 2019 à 00:13
12 janv. 2019 à 15:51
j'ai pu avancer dans mes exercices et je suis de nouveau bloqué à une question :
Specifier puis ´ ecrire une fonction ´ permuteListe(uneListe) qui echange successi- ´
vement chaque el´ ement de la liste (l’ ´ el´ ement au rang 0, puis au rang 1, puis . . .) avec un autre ´ el´ ement ´
de la liste choisi au hasard. La liste doit pouvoir contenir n’importe quel type d’el´ ement. La liste donn ´ ee´
en parametre est modifi ` ee par cette fonction
Voici mon programme :
Jusque là ça marche mais la question suivante est problématique :
A l’aide de la fonction précédente, spécifier puis ´ écrire une fonction ´ dictPerm() qui
fabrique et retourne un dictionnaire de permutation (tire au hasard) pour les lettres majuscules
Exemple d’utilisation :
> perm = dictPerm()
> perm
{’Z’: ’A’, ’X’: ’N’, ’Y’: ’E’, ’V’: ’J’, ’W’: ’H’, ’T’: ’L’, ’U’: ’C’,
’R’: ’O’, ’S’: ’Q’, ’P’: ’V’, ’Q’: ’Y’, ’N’: ’M’, ’O’: ’U’, ’L’: ’F’,
’M’: ’K’, ’J’: ’I’, ’K’: ’R’, ’H’: ’T’, ’I’: ’B’, ’F’: ’Z’, ’G’: ’W’,
’D’: ’P’, ’E’: ’G’, ’B’: ’X’, ’C’: ’D’, ’A’: ’S’}
Pour cette question, vous utiliserez la variable ascii_uppercase du module string qui contient
la chaîne de caractères des lettres de l’alphabet en majuscules .
Voici mon programme :
je voudrais savoir comment me servir (où placer le permuteListe) du programme précédent pour mélanger les lettres dans le dictionnaire.
Cordialement,