在 Python 3 中打印 kwargs
Printing kwargs in Python 3
我对 Python 比较陌生,最近遇到了 kwargs。我想我理解它们以及它们是如何工作的。但是,当我尝试使用 for 循环打印键和值时,会出现 ValueError: Too many values to unpack.
def shop(**kwargs):
sh = 1
print ("Welcome to the shop!")
for i, v in kwargs:
print (" ", i, ": ", v)
while sh == 1:
b = input ("What would you like to buy?").lower()
if b == i:
Player.gold -= v
Player.inv_plus(i)
elif b == "exit":
sh = 0
shop(Stone=5, Potion=10)
Player.gold 就是玩家拥有的金币数量,Player.inv_plus(i) 将玩家物品栏中的物品加 1。不过,这对我遇到的问题并不重要。
如果我在没有 for 循环的情况下打印 kwargs,它工作正常。但这不是我打印时想要的格式。
如果有人能解释我做错了什么,我将不胜感激,因为我很困惑为什么它不起作用。
kwargs 是一个字典,默认情况下只迭代它们 returns 键。你需要 kwargs.items()
.
for i, v in kwargs.items():
print (" ", i, ": ", v)
我对 Python 比较陌生,最近遇到了 kwargs。我想我理解它们以及它们是如何工作的。但是,当我尝试使用 for 循环打印键和值时,会出现 ValueError: Too many values to unpack.
def shop(**kwargs):
sh = 1
print ("Welcome to the shop!")
for i, v in kwargs:
print (" ", i, ": ", v)
while sh == 1:
b = input ("What would you like to buy?").lower()
if b == i:
Player.gold -= v
Player.inv_plus(i)
elif b == "exit":
sh = 0
shop(Stone=5, Potion=10)
Player.gold 就是玩家拥有的金币数量,Player.inv_plus(i) 将玩家物品栏中的物品加 1。不过,这对我遇到的问题并不重要。
如果我在没有 for 循环的情况下打印 kwargs,它工作正常。但这不是我打印时想要的格式。
如果有人能解释我做错了什么,我将不胜感激,因为我很困惑为什么它不起作用。
kwargs 是一个字典,默认情况下只迭代它们 returns 键。你需要 kwargs.items()
.
for i, v in kwargs.items():
print (" ", i, ": ", v)