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

Python f-string如何区分整数与字符串输出不同格式结果

问题原因

默认情况下f-string会对占位符里的值调用str()做类型转换,整数1和字符串'1'转成字符串后内容都是1,所以两段代码输出完全一致,无法区分原始类型。

解决方法

在占位符中使用!r转换标记即可,写法为f"{x!r}",实际运行效果:

# 整数场景
x = 1
print(f"{x!r}")
# 输出:1

# 字符串场景
x = '1'
print(f"{x!r}")
# 输出:'1'

实现原理

!r标记会让f-string调用值的__repr__方法生成输出:

  • 整数的__repr__返回值就是纯数字内容的字符串,没有额外包裹符号
  • 字符串的__repr__返回值会自动在外层包裹单引号,和Python代码里书写字符串字面量的格式一致,刚好满足区分类型输出的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 07:15:53