Python基础变量未按预期生效 赋值顺序问题排查与解决
问题原因
Python是逐行从上到下执行的解释型语言,变量必须先定义赋值,再调用使用。
你给出的代码里,boy_name = "Bobby"的赋值语句写在了第一行print调用boy_name变量的后面:执行到第一行print时,解释器还没读取到boy_name的赋值,要么直接抛出NameError: name 'boy_name' is not defined的命名错误,要么受之前运行的同名变量残留值影响,绝对不会读取到后面才赋值的"Bobby",自然达不到预期的替换效果。
修正方案
把boy_name的赋值语句移动到第一次调用该变量的代码前面即可,修正后可正常运行的代码如下:
boy_name = "Bobby" print("there was a boy named " + boy_name + " ") print("there is a boy named timmy")
运行后第一行会正常输出there was a boy named Bobby ,实现变量替换的预期效果。
内容的提问来源于stack exchange,提问作者Omega128
相关产品推荐
相关产品推荐

