【问题】
参考:
在python中使用如下代码:
1 2 | inputCode = input ( "The captcha (verify code) is ?" ); print "inputCode=" ,inputCode; |
结果输入字符串rdrk后,出现NameError的错误:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | 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 读取输入值去改为:
1 | inputCode = str ( input ( "The captcha (verify code) is ?" )); |
问题依旧。
2.后来也看到了:python input()和raw_input()中的关于raw_input和input的区别,即对于input的话,如果需要输入字符串,应该加上引号,而raw_input则不需要,可以直接输入字符串,即可。
但是此处我就是用的raw_input的话,结果还是出现了和
使用input字符串没加引号而出现的NameError的错误
然后试了试:
1 2 3 | inputCode = ''; inputCode = input ( "The captcha (verify code) is ?" ); #inputCode = str(input("The captcha (verify code) is ?")); |
问题依旧。
3. 又试了:
1 2 3 | inputCode = ''; #inputCode = input("The captcha (verify code) is ?"); inputCode = str ( input ( "The captcha (verify code) is ?" )); |
问题依旧。
4.刚刚发现,原来是自己脑子不好使,没看清自己其实就是用的input,而不是raw_input,因此导致上面的错误的。。。
改为raw_input,就可以了:
1 2 3 | #inputCode = input("The captcha (verify code) is ?"); inputCode = raw_input ( "The captcha (verify code) is ?" ); print "inputCode=" ,inputCode; |
正常输出为:
1 2 | The captcha (verify code) is ?askdg inputCode= askdg |
【总结】
Python中的
raw_input:只保留原始的输入,不作其他(特殊)处理,所以所得到的输入,都是字符串
input:会去做额外的处理,比如 1 + 2,其会帮你去计算为3,而不是字符串本身的“1 + 2”。对应的,想要输入字符串的话,也就要自己加上对应的引号,表示所输入的是字符串类型的值了。
转载请注明:在路上 » 【已解决】Python中使用raw_input,结果出现NameError错误 + raw_input和input之间的区别