当前位置:  开发笔记 > 编程语言 > 正文

Python:我错过了什么吗?

如何解决《Python:我错过了什么吗?》经验,为你挑选了6个好方法。

我正在学习Python,同时实现构建脚本等.目前一切都运行良好,因为脚本做了他们需要做的事情.但我一直觉得我错过了一些东西,比如"The Python Way".我知道构建脚本和胶水脚本并不是最令人兴奋的开发工作,可能很难成为揭示Python真正力量的候选者,但我仍然希望有机会让我的思绪受到重创.我主要用C#开发,我发现我的Python代码在结构和样式上看起来与我的很多C#代码非常相似.换句话说,我觉得我在用C#思考,但用Python编写.

我真的错过了什么吗?

(注意:我意识到这不是一个编程问题而且它是相当广泛的,并且可能没有明确的答案,所以如果必须的话,请将其归结为遗忘.)



1> Baishampayan..:

我建议你读了发电机,迭代器,itertools以及上述所有列表综合.

这些是Pythonic的支柱.而对于其他一切,还有PEP-8.

阅读这些概念并尝试在适当的地方使用它们.祝一切顺利!

PS:别忘了import this;)

附录:我也会在这个帖子中汇总其他人给出的一些很好的建议:

阅读代码像Pythonista:惯用Python(来自David Grant)

解决Project Euler的问题是一个好主意(来自Nick Fortescue)

David Beazley(来自André)对发生器和迭代器的精彩演示

了解使用SCons(从久负盛名的美国洛特)


不要忘记,在生成器,迭代器,itertools,列表推导甚至PEPS存在之前,python已经是一种非常有用的语言!

2> Andrew Hare..:

不 - 对于那些从其他类C语言迁移到Python的人来说,这是很常见的.我相信你所寻找的是使你的代码更"Pythonic"的方法.好消息是你编写的Python越多,你的代码就会变得越Pythonic.这是"我怎样才能更简单地"这种态度的自然溢出.

另一个值得关注的好地方是The Zen of Python.这些对Python开发的态度也会对您有所帮助.



3> 小智..:

到目前为止,你已经得到了很好的建议.我只会将Dive添加到Python中.

编辑:截至2011年10月4日,这项工作可以在这里找到. 在这里深入Python 3. "为什么"这是:看到这里,这里和这里.



4> André..:

当你开始用python进行系统编程时,你一定要看一下这个话题:http://www.dabeaz.com/generators/



5> Nick Fortesc..:

最近我通过解决python中的Project Euler问题来学习/改进我的python.这对我来说非常有效,因为:

    它既有趣又有竞争力,所以我有动力继续前进

    它迫使我以一种非常自然的方式使用python数据结构来获得我需要的性能,所以它教会了我很多关于列表,集合,字符串,迭代等的知识.

    大多数问题只需要一页代码就可以解决,所以你有更多时间以更优雅的方式考虑抛光或重写

    Python非常容易处理大整数,所以它就像使用正确的语言一样

我完全推荐这个.



6> Thomas L Hol..:

你在读Python还没写吗?

这是Python 2.6.1发行版中删除.pyc和.pyo文件的脚本.

#!/usr/local/bin/python
"""Recursively zap all .pyc and .pyo files"""
import os
import sys

# set doit true to actually delete files
# set doit false to just print what would be deleted
doit = 1

def main():
    if not sys.argv[1:]:
        if os.name == 'mac':
            import EasyDialogs
            dir = EasyDialogs.AskFolder(message='Directory to zap pyc files in')
            if not dir:
                sys.exit(0)
            zappyc(dir)
        else:
            print 'Usage: zappyc dir ...'
            sys.exit(1)
    for dir in sys.argv[1:]:
        zappyc(dir)

def zappyc(dir):
    os.path.walk(dir, walker, None)

def walker(dummy, top, names):
    for name in names:
        if name[-4:] in ('.pyc', '.pyo'):
            path = os.path.join(top, name)
            print 'Zapping', path
            if doit:
                os.unlink(path)

if __name__ == '__main__':
    main()

你能找到多少Python成语?

推荐阅读
赛亚兔备_393
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有