pythonturtle绘图代码 独角兽_Python刮擦给了独角兽

你是正确的,这与Unicode有关,而且本质上,这意味着它不能直接打印出一些字符到命令行,因为字符'\xa0',这显然是拉丁的不间断空格。要解决此特定问题,请参见this link。在

编辑:有关打印模块的详细信息,以及可能导致问题的更全面和完整的描述,请参阅下面的注释。在

Edit:This link提到了相同的错误,在一条注释中提到了'ascii' codec错误是python2.x特有的,来自请求和其他urllib模块。这证实了我以前的说法,尽管没有详尽的记录。在

现在来听听一些不请自来的建议:

如果这涉及到的程序很小,没有很多依赖关系,或者使用的库只存在于Python 2中,使用Python 3。我在今年夏天早些时候开始编写一个web抓取项目,并开始用Python 2.7编写,最终遇到了几个涉及Unicode解码的错误,最终我无法解决,即使我用了字符串本身的解码模块。在

然后我偶然发现Python3实际上是专门为修复Guido van Rossum自己所说的“破坏Python”而设计的——一劳永逸地将Unicode和字符串结合起来。在

我问你的代码是否比较小-我实际上在几分钟内将我的整个脚本(大约400行)升级到Python3-特别是因为我有一个很好的解释器,它告诉了我可能出现的语法问题。有一些不同,但不是很多,你会很高兴你这样做。在

短期修复:使用python2对Unicode的(有限)支持。在

长期修复:找到一种方法来移植到Python3。在

编辑:因为这段代码专门引用了print模块,所以我收回了我的语句,因为我在print模块方面没有足够的经验,无法在python2.x和3.x中创建测试用例,并声明切换到python3将必然解决这个问题。

不过,值得一个OP的答复,看看这个问题是否得到解决。在

编辑2:为了进一步让事情变得更不确定,我尝试了Python2.7和Python3.4中的以下代码:

Python 2.7:from bs4 import BeautifulSoup

soup = BeautifulSoup(u'string with "\xa0" character')

print soup.prettify()

Python 3.4:

^{pr2}$

两种方法都返回相同的预期答案。即使从字符串中删除Unicode分类器也不会影响Python2.7的输出。需要进一步调查。在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值