Je tente d'utiliser une boucle tandis que de soustraire de l'entrée puis d'afficher la quantité d'éléments qu'elle pourrait être basée sur l'entrée. Maintenant, il choisit de manière aléatoire la nourriture et le coût que je tente de l'obtenir pour correspondre à la nourriture choisi au hasard à la liste.
import random
money = input('Total money: ')
mi = int(money)
Food = ['Taco', 'Burrito', 'Nacho']
Price = [6, 4, 2]
Dict = {f:p for (f, p) in zip(Food, Price)}
RandomFood = random.sample(Food, 1)
RFS = str(RandomFood)
while mi >= 0:
cost = Dict.RFS
mi = mi - cost
3 Réponses :
import random
money = input('Total money: ')
mi = int(money)
Food = ['Taco', 'Burrito', 'Nacho']
Price = [6, 4, 2]
List = {f:p for (f, p) in zip(Food, Price)}
RandomFood = random.choice(Food)
RFS = str(RandomFood)
while mi >= 0:
cost = List[RFS]
mi = mi - cost
As @Patrick Artner suggested, choice() it's a better choice here (hah!).
List is a dictionary, to get values from a dictionary one must follow this syntax: dict[key]
Non - nous utilisons aléatoireFood = aléatoire.choice (nourriture) code> pour obtenir un élément.
Ok d'ici comment afficherais-je chaque instance de nourriture "achetée"?
Pour obtenir Un i> élément par aléatoire à partir d'un iérien, vous n'utilisez pas une méthode qui produit des éléments uniques potentiellement multiples de celui-ci à la liste pour utiliser le 1er unique - vous utilisez la méthode qui vous donne simplement une i> élément. Lire: docs.python.org/3/library/random.html# aléatoire.choice
Ouais, le code saisit actuellement un élément par hasard, c'est pourquoi je demande comment puis-je le faire saisir une quantité variable d'éléments, puis sortit d'impression à ce qu'elle a attrapé et combien de chacun de chacun est saisi.
Vous devez modifier le deuxième paramètre de l'échantillon, puis: aléatoireFood = aléatoire.choice (nourriture, échantillons). Bien que avec une population de n = 3, c'est difficile.
@ B14D3R11 Il ne fera jamais que jamais à l'aide d'un échantillon - aléatoire. aléatoire.choices est en train de dessiner avec le dos. aléatoire.Choice obtient 1 de iTAKEFER. Voir la documentation - La documentation API est vraiment utile de comprendre la manière dont les trucs fonctionnent. Regardez également la documentation sur voir i> Comment spécifier combien de choses à dessiner de la ierable
n'utilisez pas la nourriture aléatoire STR (aléatoire aléatoire) est déjà une liste incluse et la déplace en boucle. Chaque fois qu'il sera différent de la valeur
Ok qui fonctionne bien, j'ai ajouté si Mi MI = MI - Coût code> Cela ne l'achèterait pas et accorderait un numéro négatif. Mais je veux aussi que cela vérifie les autres numéros pour voir si ceux-ci peuvent être achetés au lieu d'une halte difficile à dire 4 argent restants
Quelques choses:
Premièrement, vous convertissez l'échantillon en une chaîne de manière à créer des caractères supplémentaires autour de la nourriture, tels que "[" Taco "]" par opposition à "Taco". Vous devez utiliser Randomfood [0] au lieu de STR (Randomfood). P>
Deuxièmement, vous appelez l'élément de la liste de manière incorrecte. Vous devez utiliser la liste [RFS] au lieu de List.RFS P>
Donc, votre code doit ressembler à ceci: P>
import random
money = input('Total money: ')
mi = int(money)
Food = ['Taco', 'Burrito', 'Nacho']
Price = [6, 4, 2]
List = {f:p for (f, p) in zip(Food, Price)}
RandomFood = random.sample(Food, 1)
RFS = RandomFood[0]
while mi >= 0:
cost = List[RFS]
mi = mi - cost
essayez coût = liste [rfs] ou coût = list.get (rfs, 0)
aléatoires aléatoires code> etrfs code> sont définis exactement une fois i>; Leurs valeurs ne changent pas avec chaque itération de votre boucle, qui peut être remplacée parMI = MI% List [RFS] Code>.... N'appelez pas les dicts
Liste CODE> ... ne les appelez pas aussi dicter .. et lisez la dicte et la liste. Vous ne pouvez pas accéder aux éléments d'un dict pardict.rfs code> ...Lire: Docs.python.org/3/Tutorial/DataStructures.html#dictions < / a>
J'ai annulé votre dernier édition. Veuillez ne pas "corriger" votre question .. Cela invalide tout le temps passé par la PPL répondant à votre question. Les réponses ne correspondent plus à votre dernier modification - si vous avez un nouveau problème., Essayez de le résoudre et si vous avez besoin de poser une nouvelle question. Merci.