V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
qweweretrt515
V2EX  ›  问与答

写代码的时候调试的用处究竟是什么?python 代码我平时都是 win 下面的 cmd 直接运行,print 查看错误的

  •  1
     
  •   qweweretrt515 · 2016-11-15 11:46:31 +08:00 · 1698 次点击
    这是一个创建于 2937 天前的主题,其中的信息可能已经有所发展或是发生改变。

    python 代码我平时都是 win 下面的 cmd 直接运行

    print 查看错误的

    如果 print 显示基本正常 ,然后就上线代码

    但是之前遇到一个编码错误,类似这个帖子 https://www.v2ex.com/t/320544 ,当时我认为这是 python3.5 的编码 bug

    但看了那个帖子发现,是 win cmd 的问题,我刚才也测试了,cmd 下运行会出现编码问题,用 ide 的 F5 运行,一切正常

    那么,从此以后,就不能信任 windows 的 cmd 了,不能用它来运行 python 脚本了

    但是,以后用什么来运行脚本呢?

    powerShell 吗,我那个乱码的脚本用 powershell 测试了,也运行不正常,提示编码问题

    我正在装 ubuntu on win ,不晓得这个能不能解决问题

    大家怎么看呢?

    4 条回复    2016-11-15 14:30:38 +08:00
    imn1
        1
    imn1  
       2016-11-15 11:59:50 +08:00   ❤️ 1
    关键是你还没了解编码,或者说乱码问题的本质

    本质就是,任何一个 IO 过程,前后编码不同就会产生乱码

    不要以为一个程序运行过程就是一个 IO 过程
    读写文件就是两个 IO 过程了,手动输入、数据库读写等等,从 stdout 到显示也是一个 IO 过程……

    所以解决乱码问题,就是解决所有,是所有, IO 过程前后编码的一致性
    imn1
        2
    imn1  
       2016-11-15 12:05:52 +08:00   ❤️ 1
    接 1L ,给你个作业,如果运行环境 linux 系统的 locale 是 zh-CN.gbk 而不是 zh-CN.utf-8 ,你想想你写的程序会如何?
    换一个问法,是否就是 win cmd 的锅?
    mooncakejs
        3
    mooncakejs  
       2016-11-15 12:35:31 +08:00
    chcp 65001
    iyaozhen
        4
    iyaozhen  
       2016-11-15 14:30:38 +08:00 via Android   ❤️ 1
    有些步骤比较复杂的,涉及算法的,不单步调试咋搞?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2684 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 10:15 · PVG 18:15 · LAX 02:15 · JFK 05:15
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.