Python新手求助:如何在文本中插入多个变量(MadLib开发)
解决Python MadLib游戏中print语句插入多变量的问题
嘿,作为编程新手能自己推进到输入部分已经超棒啦!你的问题其实是Python里很常见的字符串与变量拼接场景,现有代码的问题是字符串片段和变量之间缺少必要的分隔/连接方式,导致Python无法识别语法,下面给你几种简单好用的解决方案:
方法1:用逗号分隔(最直接的快速修复)
在每个字符串片段和变量之间加上逗号,Python会自动帮你用空格分隔各个元素,修改后的代码如下:
print("Suddenly he grabs me, tipping me across his", bodyPart1, adj1, "movement, he angles his", noun1, "so my", bodyPart2, "is resting on the", noun2, "beside him")
这种方式不需要改动太多原有代码,适合快速调整,但空格是固定的,如果需要自定义空格或特殊格式就不太灵活。
方法2:使用f-string(Python 3.6+最推荐的方式)
这是现在Python里最简洁直观的字符串格式化方式,在字符串开头加f,然后把变量直接放在{}里嵌入到句子中,完全符合我们正常写句子的逻辑:
print(f"Suddenly he grabs me, tipping me across his {bodyPart1} {adj1} movement, he angles his {noun1} so my {bodyPart2} is resting on the {noun2} beside him")
这种方式你可以精准控制每个变量的位置和周围的空格,代码可读性拉满,新手用这个以后写类似逻辑会越来越顺手。
方法3:字符串拼接(用+号,不推荐但了解即可)
把每个字符串片段和变量用+连接,但要注意如果变量不是字符串类型(比如数字)需要先转成str(),还要手动添加空格:
print("Suddenly he grabs me, tipping me across his " + bodyPart1 + " " + adj1 + " movement, he angles his " + noun1 + " so my " + bodyPart2 + " is resting on the " + noun2 + " beside him")
这种方式比较繁琐,容易漏加空格或者因类型不匹配报错,所以一般不推荐日常使用。
最后提醒下:确保bodyPart1、adj1这些变量都已经通过input()获取到用户输入的值哦,不然会出现变量未定义的错误~
内容的提问来源于stack exchange,提问作者Ryan
相关产品推荐
相关产品推荐

