While循环减去

时间:2019-02-21 20:07:04

标签: python python-3.x

我正在尝试使用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

我不明白为什么成本不起作用?但是我也不知道如何显示可变数量的属性。

3 个答案:

答案 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