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

Python终端Madlib程序求助:输入的动词/形容词未替换到文本

问题分析与修复方案

你的代码存在三个关键问题,导致变量无法替换:

  1. 使用中文引号:代码里的“”是中文全角引号,Python仅支持英文半角引号""或'',这会引发语法问题(即使程序能启动,也会影响字符串解析)。
  2. 未使用字符串格式化语法:直接在字符串里写{verb}和{adj}不会自动替换变量值,需要用Python的字符串格式化机制。
  3. 函数名大小写错误:Python内置打印函数是print(),而非大写的Print(),大写会被识别为未定义的变量。

修复后的代码(推荐用f-string,Python3.6+支持)

adj = input("adjective: ")
verb = input("verb: ")
madlib = f"I love to {verb} code, it can become a {adj} skill"
print(madlib)

说明:

  • 替换所有中文引号为英文引号,确保语法合法。
  • 在字符串前添加f前缀,创建f-string:这种语法会自动将{}内的变量名替换为对应变量的实际值,是Python中最简洁的字符串插值方式。
  • 把Print改为小写的print,符合Python的命名规范。

兼容旧版本Python的方案(用str.format())

如果你的Python版本低于3.6,可以用format()方法实现变量替换:

adj = input("adjective: ")
verb = input("verb: ")
# 方式1:按位置匹配
madlib = "I love to {} code, it can become a {} skill".format(verb, adj)
# 方式2:按变量名匹配(更清晰)
# madlib = "I love to {verb} code, it can become a {adj} skill".format(verb=verb, adj=adj)
print(madlib)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 14:34:53