Python 2中使用input()获取字符串输入触发NameError问题求助
问题分析与解决办法
嘿,别担心,新手刚接触Python和社区时遇到问题太正常啦!我来帮你拆解一下这个错误~
问题根源
你现在用的是Python 2,这个版本里的input()函数会把用户输入的内容直接当作Python代码去执行。当你输入cheese作为食物名称时,它会试图寻找一个名为cheese的变量,但你根本没定义过这个变量,所以就抛出了NameError: name 'cheese' is not defined的错误。
两种解决办法
1. 继续使用Python 2的话,替换input()为raw_input()
Python 2里的raw_input()才是专门用来获取用户输入的字符串内容的,它不会把输入当成代码解析。修正后的代码如下:
foodname = raw_input('please enter food name.') # 获取食物名称字符串 foodcost = raw_input('please enter food cost.') # 获取食物成本字符串 print foodname, foodcost # 打印两个输入内容
2. 切换到Python 3(推荐)
Python 3已经把input()的行为改成了Python 2中raw_input()的样子,直接获取字符串。不过要注意Python 3里print是函数,需要加括号:
foodname = input('please enter food name.') foodcost = input('please enter food cost.') print(foodname, foodcost)
这样修改后,你输入任何食物名称(比如cheese)都不会再报错啦!
内容的提问来源于stack exchange,提问作者Ali
相关产品推荐
相关产品推荐

