You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Python中的f-strings转换为format()方法?

替换f-strings为format()方法的实现方案

首先要纠正你代码里的一个逻辑错误:原条件if 'fruit' and 'juice' in kwargs:写法有误,它实际只会判断'juice' in kwargs(非空字符串'fruit'本身会被视为True),正确写法应该是if 'fruit' in kwargs and 'juice' in kwargs:,这样才能确保两个参数都存在于kwargs中。

下面提供两种将f-strings替换为format()方法的实现方式:

1. 位置参数形式

按顺序传入需要填充的值,适合参数较少的场景:

def myfunc(*args, **kwargs):
    if 'fruit' in kwargs 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')

2. 命名参数形式

使用命名占位符,代码可读性更强,尤其参数较多时更清晰:

def myfunc(*args, **kwargs):
    if 'fruit' in kwargs and 'juice' in kwargs:
        print("I like {items} and my favorite fruit is {fruit}".format(
            items=' and '.join(args),
            fruit=kwargs['fruit']
        ))
        print("May I have some {juice} juice?".format(juice=kwargs['juice']))
    else:
        pass
        
myfunc('eggs','spam',fruit='cherries',juice='orange')

两种写法运行结果与原代码完全一致,输出内容为:

I like eggs and spam and my favorite fruit is cherries
May I have some orange juice?

内容的提问来源于stack exchange,提问作者Ngọc Yến

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 03:12:06