我在 Codecademy's Python lesson 上尝试了以下操作
hobbies = []
# Add your code below!
for i in range(3):
Hobby = str(raw_input("Enter a hobby:"))
hobbies.append(Hobby)
print hobbies
有了这个,它工作正常,但如果不是我尝试
Hobby = raw_input("Enter a hobby:")
我得到 [u'Hobby1', u'Hobby2', u'Hobby3']
。额外的 u
来自哪里?
最佳答案
问题的主题行可能有点误导:Python 2 的 raw_input()
通常返回字节字符串,而不是 Unicode 字符串。
但是,如果它或 sys.stdin
已被更改或替换(由应用程序或作为 Python 的替代实现的一部分),它可能返回一个 Unicode 字符串).
因此,我相信@ByteCommander 的评论是正确的:
Maybe this has something to do with the console it's running in?
Codecademy 使用的 Python 表面上是 2.7,但 (a) 它是通过使用 Emscripten 将 Python 解释器编译为 JavaScript 来实现的(b) 它在浏览器中运行;所以在这些因素之间,很可能有一些由 Codecademy 注入(inject)的字符串编码和解码,这在普通的 CPython 中是不存在的。
注意:我自己没有使用过 Codecademy,也不了解其内部工作原理。
关于python - 为什么 Python 2 的 raw_input 输出 unicode 字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36855896/