V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
reloop
V2EX  ›  Python

两个 print 调个顺序就出错 , 是什么原因?

  •  
  •   reloop · 2013-11-07 17:52:21 +08:00 · 4599 次点击
    这是一个创建于 4041 天前的主题,其中的信息可能已经有所发展或是发生改变。
    #--coding:utf-8--
    print "人人人"
    print "xxx"

    #--coding:utf-8--
    print "人人人"
    print "xxx"


    为什么第一个是错误的 , 第二个就正确了?

    [Decode error - output not utf-8]
    [Decode error - output not utf-8]
    [Finished in 0.1s]

    PS: 刚开始看 << 笨办法学 python >> 看到 打印打印打印...
    第 1 条附言  ·  2013-11-08 10:28:02 +08:00
    谢谢大家

    编码我用 notepad++ 看 , 确定是 UTF-8


    如果是编码错误 , 怎么理解调换一下顺序就不出错了?
    (不过在 notepad++ 调换顺序也没用)


    网上查的方法 就像 @VYSE 说的我试了 , 木有效果


    其他都是说 sublime text 2 下的方法 , 在 3 没找到他们说的文件
    20 条回复    1970-01-01 08:00:00 +08:00
    lifanxi
        1
    lifanxi  
       2013-11-07 17:59:01 +08:00
    没看出你的两段代码有什么差别。试着跑了一下,包括交换两个print的顺序,没有重现你的问题。

    另外,你确认下你的代码文件确实是用UTF-8编码存的吗?
    nodejx
        2
    nodejx  
       2013-11-07 18:11:10 +08:00
    楼主最好把运行方式详细表述下???
    截个图比较好。
    reloop
        3
    reloop  
    OP
       2013-11-07 18:15:17 +08:00
    @lifanxi
    是 UTF-8 编码的
    我这怎么弄都能重现
    难道是编辑器的原因? 用的 sublime
    文件 > 新建 > 保存 > k.py > 输入 > ctrl + B
    然后就出现了
    不经意发现的 , 其他的练习都没出怪问题
    reloop
        4
    reloop  
    OP
       2013-11-07 19:42:42 +08:00
    nodejx
        6
    nodejx  
       2013-11-07 19:48:01 +08:00
    403 Forbidden
    reloop
        7
    reloop  
    OP
       2013-11-07 20:09:27 +08:00
    ww2.sinaimg.cn/large/8b5ac20ejw1eacpoyb12jj211y0j275m.jpg
    @nodejx
    贴图好麻烦... 那个好图床一直上传不了..orz..
    reloop
        8
    reloop  
    OP
       2013-11-07 20:09:50 +08:00
    est
        9
    est  
       2013-11-07 20:13:10 +08:00
    print u"人人人"
    nodejx
        10
    nodejx  
       2013-11-07 20:13:36 +08:00
    nodejx
        11
    nodejx  
       2013-11-07 20:17:26 +08:00
    其实用自带IDLE还不错,至少我在winxp下没遇到这个问题。
    11138
        12
    11138  
       2013-11-07 20:18:54 +08:00
    google一下错误的信息“Decode error - output not utf-8”,这应该是一个不错的习惯。
    Kabie
        13
    Kabie  
       2013-11-07 20:38:07 +08:00
    ...windows下面就这样……换系统吧……
    EPr2hh6LADQWqRVH
        14
    EPr2hh6LADQWqRVH  
       2013-11-07 20:56:38 +08:00
    python3 就不会有这种问题,默认utf8的,你为什么拒绝升级
    clino
        15
    clino  
       2013-11-07 21:02:03 +08:00
    都告诉你不是utf8了你还不信...
    我记得ulipad对前面的#coding=utf-8好像有识别并处理,可以试试
    likuku
        16
    likuku  
       2013-11-07 21:04:50 +08:00
    保存的时候,最好是另存为,确保是用utf8保存。
    davepkxxx
        17
    davepkxxx  
       2013-11-07 21:14:01 +08:00
    只用过python3,从来没遇到这种问题。
    VYSE
        18
    VYSE  
       2013-11-07 23:43:15 +08:00
    是Sublime Text转换console输出遇到非utf-8字符了吧,你把PYTHONIOENCODING环境变量设为utf-8,print转换失败会告诉你UnicodeError
    reloop
        19
    reloop  
    OP
       2013-11-08 10:31:51 +08:00
    @nodejx
    @11138
    @clino
    @likuku
    @VYSE

    谢谢!!
    VYSE
        20
    VYSE  
       2013-11-08 22:42:35 +08:00   ❤️ 1
    @reloop

    看下
    import sys
    sys.stdout.encoding

    如果不是cp936(GBK),非unicode字符不可能在console显示出来,对sublime也同理。

    控制面板->语言啥的->administrative->language for non-unicode programs
    设为PRC
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2676 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 12:13 · PVG 20:13 · LAX 04:13 · JFK 07:13
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.