在 for 循环中打印 Kwargs
printing Kwargs in for loop
我一直在尝试执行此代码以打印出 for 循环中的关键字参数。我尝试同时使用 f 字符串文字和 .format() 方法,但它在 2 行中给出一次输出一个值。有人可以指出这段代码出了什么问题吗?
def myfunc(**kwargs):
print(kwargs)
for item in kwargs:
print(f"my fruit of choice is : {kwargs['fruit']} and my veggie is: {kwargs['veggie']}")
myfunc(fruit='Apple',veggie='Lettuce')
如评论中所述,不需要包含两个项目的循环,但这里是一个更正版本,其中包含一个适用于任意数量输入的循环:
def myfunc(**kwargs):
print(kwargs)
stringlist = []
for i, item in enumerate(kwargs):
if i == 0:
string = f"my {item} of choice is: {kwargs[item]}"
else:
string = f"my {item} is: {kwargs[item]}"
stringlist.append(string)
stringlist[-1] = "and " + stringlist[-1]
if len(kwargs) >= 3:
print(', '.join(stringlist)+'.')
else:
print(' '.join(stringlist)+'.')
myfunc(fruit='Apple',veggie='Lettuce')
我不会使用冒号,因为它们在语法上不正确,但我保留了它们以匹配您最初的预期输出。
我一直在尝试执行此代码以打印出 for 循环中的关键字参数。我尝试同时使用 f 字符串文字和 .format() 方法,但它在 2 行中给出一次输出一个值。有人可以指出这段代码出了什么问题吗?
def myfunc(**kwargs):
print(kwargs)
for item in kwargs:
print(f"my fruit of choice is : {kwargs['fruit']} and my veggie is: {kwargs['veggie']}")
myfunc(fruit='Apple',veggie='Lettuce')
如评论中所述,不需要包含两个项目的循环,但这里是一个更正版本,其中包含一个适用于任意数量输入的循环:
def myfunc(**kwargs):
print(kwargs)
stringlist = []
for i, item in enumerate(kwargs):
if i == 0:
string = f"my {item} of choice is: {kwargs[item]}"
else:
string = f"my {item} is: {kwargs[item]}"
stringlist.append(string)
stringlist[-1] = "and " + stringlist[-1]
if len(kwargs) >= 3:
print(', '.join(stringlist)+'.')
else:
print(' '.join(stringlist)+'.')
myfunc(fruit='Apple',veggie='Lettuce')
我不会使用冒号,因为它们在语法上不正确,但我保留了它们以匹配您最初的预期输出。