鱼C论坛

 找回密码
 立即注册
查看: 70|回复: 6

[已解决]我的python版本是3.12为什么不支持关键字参数啊

[复制链接]
发表于 昨天 15:07 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
比如说以下代码
  1. x = "伍六七"
  2. x.center(9,fillchar = "&")
复制代码

运行后会报错,错误提示
str().center() takes no keyword arguments
请问各位大佬这是什么情况
最佳答案
昨天 15:09
你的问题在于Python内置的字符串方法 `center()` 不支持关键字参数。这是Python设计上的限制,与版本无关(包括Python 3.12)。你需要用位置参数传递值:

正确写法:

  1. x = "伍六七"
  2. result = x.center(9, "&")  # 不要写 fillchar="&"
  3. print(result)
复制代码


错误原因:
  • `str.center()` 是Python内置方法,底层由C语言实现
  • 这类方法通常不接受关键字参数(如 `fillchar="&"`),只支持位置参数
  • 错误提示 `takes no keyword arguments` 明确指出了这一点


其他替代方案:
如果一定要用关键字参数,可以封装成函数:

  1. def my_center(s, width, fillchar=" "):
  2.     return s.center(width, fillchar)

  3. result = my_center(x, 9, fillchar="&")
复制代码


注意:所有字符串方法(如 `strip()`, `replace()` 等)都存在此限制,使用时都需用位置参数。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 昨天 15:09 | 显示全部楼层    本楼为最佳答案   
你的问题在于Python内置的字符串方法 `center()` 不支持关键字参数。这是Python设计上的限制,与版本无关(包括Python 3.12)。你需要用位置参数传递值:

正确写法:

  1. x = "伍六七"
  2. result = x.center(9, "&")  # 不要写 fillchar="&"
  3. print(result)
复制代码


错误原因:
  • `str.center()` 是Python内置方法,底层由C语言实现
  • 这类方法通常不接受关键字参数(如 `fillchar="&"`),只支持位置参数
  • 错误提示 `takes no keyword arguments` 明确指出了这一点


其他替代方案:
如果一定要用关键字参数,可以封装成函数:

  1. def my_center(s, width, fillchar=" "):
  2.     return s.center(width, fillchar)

  3. result = my_center(x, 9, fillchar="&")
复制代码


注意:所有字符串方法(如 `strip()`, `replace()` 等)都存在此限制,使用时都需用位置参数。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 昨天 16:27 | 显示全部楼层

回帖奖励 +10 鱼币

因为有的函数本来就只能用位置参数,你也可以搜索学习如何写出
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 昨天 16:44 | 显示全部楼层
某一个“天” 发表于 2025-7-11 16:27
因为有的函数本来就只能用位置参数,你也可以搜索学习如何写出

好的,非常感谢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 昨天 23:34 | 显示全部楼层

回帖奖励 +10 鱼币

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 7 小时前 | 显示全部楼层

回帖奖励 +10 鱼币

看看
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 1 小时前 | 显示全部楼层
str.center() 方法在 Python 中用于将字符串居中,并使用指定的字符(默认为空格)填充至指定的总宽度。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-7-12 16:27

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表