从用户输入创建具有Intiger值的字符串列表

时间:2019-01-29 08:50:50

标签: python

首先,如果有类似的话题,我想向任何人道歉,但是我已经在寻找解决方案已有好几个小时了,但找不到任何东西。也许我不知道该怎么问。我对python和一般编程还是很陌生。

所以我的问题如下。我目前正在从事我的第一个小“项目”,而不仅仅是遵循指南或示例程序。我想做的是从用户输入位创建一个列表字符串,列表必须具有一个整数值,这就是我正在尝试的:

s1 = []
product = []
menu = 1
while menu > 0:
    print("1. Add employee.")
    print("2. Add a product.")
    print("3. Add a sale")
    print("4. quit")
    action = int(input("what would you like to do? Select a number: "))
    if action == 1:
        name = input("Employee name: ")
        s1.append(name)
    elif action == 2:
        temp = input("Select the name of the product: ")
        value = int(input("What is the price of the product: "))
        int_temp = temp
        product.append(int_temp)
        temp = value


    elif action == 4:
        menu = -1

我还尝试了以下方法:

temp = input("Select the name of the product? ")
product.append(temp)
value = int(input("What is the price of the product? "))
product[-1] = value

但是随后它只是用输入的整数替换乘积的字符串,我似乎无法使其成为可以在以后的计算中引用的字符串列表。我希望我对自己的问题和目标的解释足够清楚。

2 个答案:

答案 0 :(得分:0)

您的代码包含一些错误,以下已提及。删除它们,然后重试

从输入语句中删除打印

请更改此行:

name = input(print("Employee name: "))

对此:

name = input("Employee name: ")

在此代码行之前:

product.append(int_temp)

确保以如下方式启动产品列表:

product = list()

下面是这一行:

product[-1] = value

将更改产品列表中的最后一个值,因为-1代表最后一个索引,-2代表倒数第二个,依此类推。

答案 1 :(得分:0)

根据您的评论,我想如果要映射产品名称和产品价格,可以使用词典而不是列表。因此,代码如下所示

employees = []
products = {}
menu = 1


while menu > 0:
    print("1. Add employee.")
    print("2. Add a product.")
    print("3. Add a sale")
    print("4. quit")
    action = int(input("what would you like to do? Select a number: "))
    if action == 1:
        name = input("Employee name: ")
        employees.append(name)
    elif action == 2:
        product_name = input("Select the name of the product: ")
        product_price = int(input("What is the price of the product: "))
        products[product_name] = product_price
    elif action == 4:
        menu = -1

然后在您的代码后面,您可以简单地这样做。

sales = products['apples'] * 100

sales = products.get('apples', 0) * 100

希望这会有所帮助!