我有这个函数,它使用 f 字符串来打印许多变量:
def myfunc(*args, **kwargs):
if 'fruit' and 'juice' in kwargs:
print(f"I like {' and '.join(args)} and my favorite fruit is {kwargs['fruit']}")
print(f"May I have some {kwargs['juice']} juice?")
else:
pass
myfunc('eggs','spam',fruit='cherries',juice='orange')
我想从 f 字符串更改为
format()
我怎样才能做到这一点?
当然,以下是使用
.format()
方法转换 f-string 的更新后的
myfunc
函数:
def myfunc(*args, **kwargs):
if 'fruit' and 'juice' in kwargs:
print("I like {} and my favorite fruit is {}".format(' and '.join(args), kwargs['fruit']))
print("May I have some {} juice?".format(kwargs['juice']))
else:
pass
myfunc('eggs','spam',fruit='cherries',juice='orange')
以下是进行的更改以及原因:
-
f 字符串被移除,大括号 (
{}
) 被保留。 在大括号内,我们添加了.format()
方法需要填写的变量或表达式。 -
format()
方法被添加到字符串的末尾。 此方法采用作为参数传递给它的值,并使用这些值替换字符串中的大括号。 -
大括号内的参数的顺序与希望它们在字符串中出现的顺序相同。
在第一个
print
语句中,' and '.join(args)
被放置在第一个大括号中,kwargs['fruit']
被放置在第二个大括号中。
此更新后的函数将产生与原始 f 字符串版本相同的输出。
标签:python From: 78827710