无法将我的列表合并到我的代码的特定部分(python 3.3)

时间:2014-06-23 09:15:36

标签: python python-3.x

我无法弄清楚如何创建一个tupil / list这样当我选择比萨饼时,我喜欢它打印出来,“你选择了比萨饼,x,x,x,x”我已经尝试了多次使用tupil或list + for loop。

我用过这个,

selected_premium_pizzas = []; # list
selected_premium_pizzas.append( x ); # x being the pizza's numeric value

我只是无法弄清楚如何让它循环遍历您的数据并根据披萨值指定披萨类型。

for int i in range(0,len(selected_premium_pizzas)):
print( 'Premium Pizza, "' + premium_pizzas[selected_premium_pizzas[i]-1] + '", selected.' ); 

这里的代码,

num_pizzas = -1
    while( num_pizzas <= 0 ) or ( num_pizzas > 5 ):
        try:
            num_pizzas = int( input( 'How many pizzas would you like (max of 5):'))
            if num_pizzas =="":
                print("Error cannot be more than 5")
        except:
            print('Invalid Input')

    pizza_dict = {"premium_pizza_price":8.50, "gourmet_pizza_price":13.50, "selected_pizzas":0, "num_premium_pizzas":0, "num_gourmet_pizzas":0}
    print('\n==Premium Pizzas==\n')
    for i in range (0,len(premium_pizzas)):
        print (str(i+1) + '. ' + premium_pizzas[i])
    print('\n==Gourmet Pizzas==\n')
    for i in range (0,len(gourmet_pizzas)):
        print (str(i+1) + '. ' + gourmet_pizzas[i])

    print('\nEnter "next" to move on.\n')

    while(True):
        if( num_pizzas == 0 ):
            break;
        try:
            selected = input('Select Your Premium Pizza: ')
            if(selected == 'next'):
                break;
            else:
                selected = int(selected)
            if(selected<=0) or (selected > len(premium_pizzas)):
                print("Invalid Input")
            else:
                pizza_dict['num_premium_pizzas'] +=1
                num_pizzas -=1
        except:
            print("Invalid Input")

        print(' ')

    while(True):
        if( num_pizzas == 0 ):
            break;
        try:
            selected = input("Select Your Gourmet Pizza: ")
            if(selected == "next"):
                break;
            else:
                selected = int(selected)
            if(selected<=0) or (selected > len(gourmet_pizzas)):
                print('Invalid Input')
            else:
                pizza_dict['num_gourmet_pizzas']+=1
                num_pizzas -=1
        except:
            print('Invalid Input')

1 个答案:

答案 0 :(得分:0)

你没有写出你得到的确切错误,但问题很可能在

premium_pizzas[selected_premium_pizzas[i]-1]

一部分。 premium_pizzas变量未在您列出的代码部分中声明,因此我无法确定错误是什么。

但是,目前尚不清楚您要实现的目标,因此我列出了最可能的选项。如果您想选择特定值范围内的比萨饼

selected = [pizza for pizza in pizzas_dict if pizzas_dict[pizza] >= price_min and pizzas_dict[pizza] <= price_max]

以类似方式,如果您想通过名称的某个部分选择披萨(&#39;说明&#39;)

selected = [pizza for pizza in pizzas_dict if description in pizza]

如果您希望用户选择pizzas 1,3,4并返回值,则字典不是正确的结构,因为它没有排序,您应该使用列表。但是,做这样的事情确实没有意义。用户应该通过某种特定标准进行选择,而不是通过任意索引号进行选择。