【问题】
参考:
在python中使用如下代码:
inputCode = input("The captcha (verify code) is ?"); print "inputCode=",inputCode;
结果输入字符串rdrk后,出现NameError的错误:
The captcha (verify code) is ?rdrk LINE 1629 : ERROR Unknown Error ! Traceback (most recent call last): File "D:\tmp\WordPress\Others\to_wp\BlogsToWordpress\BlogsToWordpress\BlogsToWordpress.py", line 1627, in <module> main(); File "D:\tmp\WordPress\Others\to_wp\BlogsToWordpress\BlogsToWordpress\BlogsToWordpress.py", line 1432, in main processSinglePost(infoDict); File "D:\tmp\WordPress\Others\to_wp\BlogsToWordpress\BlogsToWordpress\BlogsToWordpress.py", line 625, in processSinglePost (modifyOk, errInfo) = modifySinglePost(newPostContentUni, infoDict, gCfg); File "D:\tmp\WordPress\Others\to_wp\BlogsToWordpress\BlogsToWordpress\BlogsToWordpress.py", line 1603, in modifySinglePost return callBlogFunc(modifySinglePost, newPostContentUni, infoDict, inputCfg); File "D:\tmp\WordPress\Others\to_wp\BlogsToWordpress\BlogsToWordpress\BlogsToWordpress.py", line 1496, in callBlogFunc return trueFunc(paraList[0], paraList[1], paraList[2]); File "D:\tmp\WordPress\Others\to_wp\BlogsToWordpress\BlogsToWordpress\BlogNetease.py", line 1311, in modifySinglePost inputCode = input("The captcha (verify code) is ?"); File "<string>", line 1, in <module> NameError: name 'rdrk' is not defined
【解决过程】
1.后来参考:Python raw_input 读取输入值去改为:
inputCode = str(input("The captcha (verify code) is ?"));
问题依旧。
2.后来也看到了:python input()和raw_input()中的关于raw_input和input的区别,即对于input的话,如果需要输入字符串,应该加上引号,而raw_input则不需要,可以直接输入字符串,即可。
但是此处我就是用的raw_input的话,结果还是出现了和
使用input字符串没加引号而出现的NameError的错误
然后试了试:
inputCode = ''; inputCode = input("The captcha (verify code) is ?"); #inputCode = str(input("The captcha (verify code) is ?"));
问题依旧。
3. 又试了:
inputCode = ''; #inputCode = input("The captcha (verify code) is ?"); inputCode = str(input("The captcha (verify code) is ?"));
问题依旧。
4.刚刚发现,原来是自己脑子不好使,没看清自己其实就是用的input,而不是raw_input,因此导致上面的错误的。。。
改为raw_input,就可以了:
#inputCode = input("The captcha (verify code) is ?"); inputCode = raw_input("The captcha (verify code) is ?"); print "inputCode=",inputCode;
正常输出为:
The captcha (verify code) is ?askdg inputCode= askdg
【总结】
Python中的
raw_input:只保留原始的输入,不作其他(特殊)处理,所以所得到的输入,都是字符串
input:会去做额外的处理,比如 1 + 2,其会帮你去计算为3,而不是字符串本身的“1 + 2”。对应的,想要输入字符串的话,也就要自己加上对应的引号,表示所输入的是字符串类型的值了。
转载请注明:在路上 » 【已解决】Python中使用raw_input,结果出现NameError错误 + raw_input和input之间的区别