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

Python新手使用format()函数时遭遇KeyError错误求助

解决Python format()的KeyError问题

嘿,我来帮你揪出这个错误的根源~你的代码里有两个小问题导致了KeyError:

1. 占位符里多余的空格

你字符串里写的是{ age }(注意age前后的空格),Python的format()会把这个带空格的' age '当作一个键名来找对应的参数,但你传的是变量age,两者完全不匹配,自然就抛出KeyError了。

2. 占位符类型和传参方式不匹配

就算你把空格去掉写成{age},直接用format(age)还是会有问题——因为{age}是命名占位符,需要用关键字参数传递,比如format(age=age);而format(age)这种是位置传参,对应的占位符应该是{0}(第一个位置的参数)。

给你几种正确的写法:

写法一:用命名占位符+关键字参数

def hello( name="Sean", age=0 ):
    return 'Hello, ' + name + " you are {age} years old".format(age=age)
sentence1 = hello( 'Mark', 17 )

写法二:用位置占位符+位置传参

def hello( name="Sean", age=0 ):
    return 'Hello, ' + name + " you are {0} years old".format(age)
sentence1 = hello( 'Mark', 17 )

写法三:用更简洁的f-string(Python 3.6+支持)

这是现在最推荐的写法,代码更直观,不容易出错:

def hello( name="Sean", age=0 ):
    return f'Hello, {name} you are {age} years old'
sentence1 = hello( 'Mark', 17 )

这样修改后,代码就能正常运行啦~

内容的提问来源于stack exchange,提问作者GTS Joe

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 23:02:28