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
samui
V2EX  ›  Python

拿到一个缩进乱掉且无从整理起的Py脚本,有什么自动化的方法可以统一好缩进呢

  •  
  •   samui · 2013-09-24 13:56:41 +08:00 · 5701 次点击
    这是一个创建于 4084 天前的主题,其中的信息可能已经有所发展或是发生改变。
    看起来都对的,但是就是运行不了,提示明显就是缩进没有对,改了提示缩进有误的地方还是不行,第一次感觉Python的缩进好头疼啊...
    24 条回复    1970-01-01 08:00:00 +08:00
    julyclyde
        1
    julyclyde  
       2013-09-24 14:06:05 +08:00   ❤️ 1
    这个没戏
    只能人肉读了
    ericls
        2
    ericls  
       2013-09-24 14:07:15 +08:00 via Android
    是不是tab和space混写了?
    9hills
        3
    9hills  
       2013-09-24 14:09:02 +08:00   ❤️ 1
    autopep8 -i xxxx.py

    能搞定很多问题
    iscraft
        4
    iscraft  
       2013-09-24 15:10:38 +08:00
    作为一个三脚猫不入流的伪程序员用的是php.不可否认python的热度和各种便利.一直想学习.但想到py的版本兼容性就没了兴趣.最大的问题是感觉靠缩进和回车来控制结构与运行的程序语言纯属二逼行为.个人偏激观点.
    lio
        5
    lio  
       2013-09-24 16:20:35 +08:00
    用过后,就会习惯了。然后你用什么语言都会加上编进了。
    immjun
        6
    immjun  
       2013-09-24 16:58:47 +08:00
    试试这个吧~ http://jsbeautifier.org/
    zhoubo
        7
    zhoubo  
       2013-09-24 20:19:52 +08:00
    vim可以自动对代码做排版。选中所有代码,然后按“等号”键即可。
    Golevka
        8
    Golevka  
       2013-09-24 20:20:12 +08:00
    不存在适用于python的pretty printer
    lk09364
        9
    lk09364  
       2013-09-24 22:40:34 +08:00
    @immjun 不,这个是javascript 的吧,感觉用于python 的自动缩进工具会有很多错误 ——
    dingyaguang117
        10
    dingyaguang117  
       2013-09-24 23:17:36 +08:00
    @iscraft 其实如果缩进习惯良好 应该是没有障碍的
    ushuz
        11
    ushuz  
       2013-09-24 23:57:51 +08:00 via iPhone
    如果看起来都对但提示缩进错误,tab sapce混写可能性比较大。
    ushuz
        12
    ushuz  
       2013-09-24 23:58:27 +08:00 via iPhone
    @iscraft 哪种语言不得缩进?
    pycq2002
        13
    pycq2002  
       2013-09-25 00:14:17 +08:00
    @zhoubo 这个vim应该也是搞不定的把,因为python的缩进中包含了语义,vim无法判断究竟该把一句话放到哪个块里面好。
    iscraft
        14
    iscraft  
       2013-09-25 00:31:45 +08:00
    @ushuz 我的意思是用缩进来控制程序本身.而不是合理和可读性.非质疑python的强大.
    <?$d=date("D");if ($d=="Fri") echo "Have a nice weekend!"; else echo "Have a nice day!"; ?>
    上面这些无缩进无换行.但有正确结果.并且不会报错.
    xingzhi
        15
    xingzhi  
       2013-09-25 00:33:51 +08:00   ❤️ 1
    @iscraft
    强制缩进最重要一点是保证代码可读性,减少「个人风格」,读别人的代码也能得心应手。
    控制「控制结构与运行」并不是初衷与目的。

    另外,版本兼容并不是一个很大的问题,现在大部分开发者都在用2.7版本;选定了一个版本后,我几乎就已经忽略了python3了
    yakczh
        16
    yakczh  
       2013-09-25 07:39:42 +08:00
    强制缩进导致python变成一种小众语言,"保证代码可读性,减小[个人风格]"的想法,就象每个人都用水果手机一样的界面,这样用别人的水果的时候也能得心应手" 可是减小个人风格不一定让大多数开发者都能认同
    hanf
        17
    hanf  
       2013-09-25 08:37:12 +08:00
    没戏,因为python里面缩进是逻辑的一部分,丢失了缩进,等同于丢失了逻辑
    jybox
        18
    jybox  
       2013-09-25 08:57:23 +08:00
    如果拿到一份没有花括号的 C 代码的话......
    mengzhuo
        19
    mengzhuo  
       2013-09-25 09:04:31 +08:00   ❤️ 6
    LS的亲们因为缩进就吐槽Python,你们的代码是有多难看啊
    wesley
        20
    wesley  
       2013-09-25 10:25:21 +08:00
    作为一个phper,我不认为强制缩进是一个问题
    相反,我认为写任何代码都需要尽量严谨地缩紧,包括html
    shiny
        21
    shiny  
       2013-09-25 10:54:05 +08:00
    @wesley 我也是这么认为的。如果 html 不按规则缩进,后期修改会很麻烦,一不小心就会不闭合标签。
    likexian
        22
    likexian  
       2013-09-25 23:38:51 +08:00
    @iscraft 你以为python就不行了吗?

    同样一行:import datetime;print 'Have a nice weekend!' if datetime.datetime.now().weekday() == 4 else 'Have a nice day!'
    kamushin
        23
    kamushin  
       2013-10-05 11:57:30 +08:00
    这不是python的问题,而是复制黏贴等等的问题
    davidli
        24
    davidli  
       2013-10-07 20:04:55 +08:00
    只能通过自己的猜测来改缩进了。
    python里的缩进就相当于JAVA里的大括号。 你大括号都放错位置了,再智能的插件也没用。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3665 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 10:30 · PVG 18:30 · LAX 02:30 · JFK 05:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.