我正在尝试使用while循环从输入中减去,然后根据输入显示它可以获得的项目数量。现在,它随机选择食物,而我正试图使它与将随机选择的食物匹配到列表中的成本相同。
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
我不明白为什么成本不起作用?但是我也不知道如何显示可变数量的属性。
答案 0 :(得分:1)
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
正如@Patrick Artner所建议的,choice()
在这里是一个更好的选择(哈!)。
List
是一本字典,要从字典中获取值,必须遵循以下语法:dict[key]
答案 1 :(得分:1)
不要使用str(randomfood)randomfood已经包含在str列表中并循环移动。每次都是不同的值
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)}
while mi >= 0:
RFS = random.sample(Food, 1)[0]
cost = Dict[RFS]
mi = mi - cost
print("item: {} cost: {} money you have: {} ".format(RFS,cost,mi))
答案 2 :(得分:0)
几件事:
首先,您正在将示例转换为字符串,该字符串将在Food周围创建额外的字符,例如“ ['Taco']”而不是“ Taco”。您应该使用RandomFood [0]代替str(RandomFood)。
第二,您从列表中错误地调用了该项目。您应该使用List [RFS]而不是List.RFS
所以您的代码应如下所示:
=CountDistinct(Fields!Emergency.Value = True) * 3.0