【问题标题】:Adding values from a list based on user input根据用户输入从列表中添加值
【发布时间】:2020-06-30 14:05:15
【问题描述】:

我正在尝试获取一个项目列表,每个项目都有不同的数量,并根据用户输入计算需要多少个项目。

例如,根据有多少客人来的晚餐杂货清单。 (5 个胡萝卜、3 个洋葱、4 个辣椒、2 个热狗和 1 磅汉堡包)每位客人。因此,用户将输入有多少客人将参加,并且项目计数将根据输入相乘并打印该值。

我是 python 新手,虽然我知道这是一个简单的问题并且我之前已经介绍过,但过去两天我一直在尝试准备测试并认为我想多了,因为我甚至不能靠近 - 知道一旦我看到它,或者类似的东西就会点击,真是令人沮丧。任何帮助表示赞赏。我知道语法是错误的,一切都搞砸了,我只是快速输入了这个来说明我正在尝试做的事情的一般概念。再次感谢。

groc_list= int(input('Enter number of students: ')
carrots= (groc_list* 5)
onions= (groc_list* 3)
peppers= (groc_list* 4)
hot_dogs= (groc_list* 2)
hamburger= (groc_list* 1)
print('You will need', carrots, 'onions', peppers, 'hot dogs', pounds of hamburger')

【问题讨论】:

  • 您遇到了什么错误?您的打印语句中有一个额外的' 可能导致语法问题

标签: python python-3.x list python-2.7 function


【解决方案1】:

这行得通:

groc_list = int(input("Enter number of students: "))

carrots = groc_list * 5
onions = groc_list * 3
peppers = groc_list * 4
hot_dogs = groc_list * 2
hamburger = groc_list * 1

print(
    f"You will need {carrots} carrots, {onions} onions, {peppers} peppers, {hot_dogs} hot dogs, {hamburger} pounds of hamburger."
)

这可能更适合你:

students = int(input("Enter number of students: "))

grocery_multiplier = {
    'carrots': 5,
    'onions': 3,
    'peppers': 4,
    'hot dogs': 2,
    'hamburger': 1,
}

texts = []
for field, multiplier in grocery_multiplier.items():
    texts.append(f"{multiplier * students} {field}")

print('You will need ' + ', '.join(texts))

当需要添加、删除需要计算的项目时。

结果:

输入学生人数:5
你需要 25 个胡萝卜、15 个洋葱、20 个辣椒、10 个热狗、5 个汉堡

【讨论】:

    【解决方案2】:

    检查这是否有效。有任何问题都可以问:)

    groc_list= int(input('Enter number of students: '))
    carrots = (groc_list * 5)
    onions= (groc_list* 3)
    peppers= (groc_list* 4)
    hot_dogs= (groc_list* 2)
    hamburger= (groc_list* 1)
    print("You will need" , str(carrots)+" " + "carrots ", str(onions)+" "+"onions ", str(peppers)+" "+ "peppers ",str(hot_dogs)+" "+"hot_dogs ", str(hamburger)+" "+ "pounds of hamburger")```
    

    【讨论】:

      【解决方案3】:

      第 1 行语法错误,括号未正确关闭。

      groc_list= int(input('Enter number of students: '))
      carrots= groc_list* 5
      onions= groc_list* 3
      peppers= groc_list* 4
      hot_dogs= groc_list* 2
      hamburger= groc_list* 1
      
      print(f'carrots-{carrots}, onions-{onions},peppers-{peppers},hotdogs-{hot_dogs}, hamburgers-{hamburger} ')
      

      【讨论】:

        【解决方案4】:

        在我看来,您应该使用字典来跟踪所有变量,并使用 func。您还错过了第一行的圆括号。此外,最后,在打印时,使用 f。这是我认为正确的代码

        num = int(input('Number of students: '))
        mol_dict = {'carrots':5,'onions':3.........)
        res_dict = {}
        for i in mol_dict:
            res_dict[i] = mol_dict[i] * num
        print(f'You will need {res_dict['carrots']}.........')
        

        这更具可读性、更正确和可扩展性。

        【讨论】:

          【解决方案5】:

          您的代码基本接近完成。做了一些小的调整:

          groc_list = int(input('Enter number of students: '))
          carrots = groc_list
          onions = groc_list* 3
          peppers = groc_list* 4
          hot_dogs = groc_list* 2
          hamburger = groc_list
          print('You will need', carrots, 'carrots,', onions, 'onions,', peppers, 'peppers,', hot_dogs, 'hot dogs and', hamburger, 'hamburgers.')
          

          【讨论】:

            猜你喜欢
            • 2022-01-07
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2020-11-09
            • 1970-01-01
            • 2021-08-20
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多