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

Python中inputWithDefault函数的f-string语法错误排查求助

问题分析与修正

错误原因

你的代码里f-string的引号使用冲突了:外层用双引号包裹f-string,但内部直接写了" ",Python解析时会把这个内部的双引号当成f-string的结束标记,导致后续的{}无法被正确识别,从而抛出语法错误。

修正后的代码

def inputWithDefault(text: str, default):
    # 用单引号定义内部空格字符串,避免和外层双引号冲突
    result = input(f"{' ' * len(text)}{default}\r{text}")
    # 用isinstance做类型判断,这是Python的标准写法
    return default if not isinstance(result, type(default)) else result

关键修改点

  • 引号冲突修复:将f-string内部的空格字符串从" "改为' ',这样外层双引号和内层单引号互不干扰,Python能正确解析所有f-string占位符。
  • 类型判断优化:把result is type(default)替换为isinstance(result, type(default)),is用于判断对象身份,而isinstance才是判断对象类型的正确方式,能覆盖更多合法的类型匹配场景。
  • 额外优化:int(len(text))可以直接简化为len(text),因为len()返回的本身就是整数,无需强制转换。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 15:22:06