簡體   English   中英

如何使用 while 循環將值存儲在字典中並將它們顯示為 python 3.0 中的表?

[英]How can I store values in a dictionary with a while loop and show them as a table in python 3.0?

所以我現在正在做的代碼是為了創建一個目錄,所以首先它詢問用戶他想添加多少項目到目錄中,並為這個項目引入 7 個屬性,即名稱、類型、顏色、功率、燈的類型、價格和單位。 除此之外,我還存儲了 id(第一項是 1,第二項是 2,等等)和價格 + 稅金。

lee_entero 是一個 function,它確保引入的數字是正數,一個 integer。

為此,我執行以下操作:

prod={}

l=[]

n= lee_entero("how many items? ")
        
        for i in range(1,n+1):
        
            p_nombre = input("Name: ")
            p_tipo = input("Type: ")
            p_color = lee_color("Color: ")
            p_potencia = lee_RealPositivo("Power(K): ")
            p_tipoLuz = lee_luz("Light type (amarillo, azul o blanco): ")
            p_precio = lee_RealPositivo("Price without taxes: ")
            if (p_precio <= 50):
             print("Low price ")
            elif (p_precio <= 100):
             print("Medium Price ")
            else:
             print("High price ")
            p_total = p_precio + p_precio*IVA/100
            p_unidades = lee_entero("Units: ")
            ids=i
           
            prod={"Product nº":ids, "name": p_nombre, "type": p_tipo, "color": p_color, "power": p_potencia, "light type": p_tipoLuz, "price": p_precio, "total": p_total, "units": p_unidades  }
            l.append(prod)
            i=i+1

然后我希望將其顯示為我嘗試過的表格:

print("{:<15} {:<15} {:<15} {:<15} {:<15} {:<15} {:<15} {:<15} {:<15}".format("id", "Nombre", "Tipo", "Color", "Potencia", "Tipo Luz", "Precio", "Precio IVA", "Unidades"))
           print("*******************************************************************************************************************************************************")

   for key, value in prod.items():

       elid, nombre, tipo, color, potencia, tipoluz, precio, precioiva, unidades = value

       print("{:<15} {:<15} {:<15} {:<15} {:<15} {:<15} {:<15} {:<15} {:<15}".format(elid, nombre, tipo, color, potencia, tipoluz, precio, precioiva, unidades))

但這不起作用。

總的來說,我正在尋找一種方法來存儲每個產品的值,然后在不導入任何庫的情況下將它們顯示為表格,但現在給了我 TypeError: cannot unpack non-iterable int object 並且我無法制作它工作,所以任何幫助表示贊賞。

你正在迭代一個字典,所以使用

for key, value in prod.items():

將生成對

key == "Product nº"
value == ids

在第一次迭代中。 因此,您正在嘗試解壓縮值,即 int。 要實現您想要的,可以執行以下操作:

for value in prod.values():
    print("{:<15}".format(value),end=" ")
print()

這將打印字典中的所有值而無需換行,然后在末尾添加新行

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM