加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

为什么Python 2的raw_input输出unicode字符串?

发布时间:2020-12-20 12:33:10 所属栏目:Python 来源:网络整理
导读:我在 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
我在 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′].额外的我们来自哪里?

解决方法

问题的主题可能有点误导: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注入的一些字符串编码和解码很可能在普通CPython中不存在.

注意:我自己没有使用过Codecademy,也没有内部工作的内部知识.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读