Ale*_*lli 57
我在1.5.2版本之前学习了Python,所以当时关键的东西可能不是今天的关键.
话虽这么说,我花了一点点关键的东西来实现,但我现在考虑的关键:多的功能,其他语言将使内在实际上是由标准库和内置插件提供.
语言本身是小而简单,但直到你熟悉的内置插件和标准库的"核心部分"(例如,时下,sys,itertools,collections,copy,...),你会被重新发明轮子一遍又一遍.因此,您投入熟悉这些部件的时间越多,您的进度就会越顺畅.每当你有一个你想做的任务时,这似乎没有语言直接支持,首先要问自己:标准库中的内置函数或模块将使任务更简单,甚至可以全部完成为了我?有时不会有任何,但通常情况下,你会通过这种思维方式找到出色的解决方案.
Ale*_*dru 33
Pau*_*jan 28
列表理解(清楚地列出清单):
[x for x in y if x > z]
Run Code Online (Sandbox Code Playgroud)
生成器扩展(与列表推导相同,但在使用之前不进行评估):
(x for x in y if x > z)
Run Code Online (Sandbox Code Playgroud)
S.L*_*ott 25
两个脑痉挛的事情.其中一个不适用于Python 3.
a = 095
Run Code Online (Sandbox Code Playgroud)
不行.为什么?前导零是八进制文字.9在八进制文字中无效.
def foo( bar=[] ):
bar.append( 1 )
return bar
Run Code Online (Sandbox Code Playgroud)
不行.为什么?可重用的默认对象被重用.
Rob*_*ney 20
enumerate是为了什么.seq = seq.append(item)并seq = seq.sort()都设置seq到None.set删除重复.itertools和collections模块.*和**前缀如何工作.f.func_defaults是).map和一起使用zip.__dict__在班级中的作用.import实际上做了什么.Bry*_*ock 17
学习如何使用 iPython 它有Tab完成.使用'whos'查看命名空间中的所有元素.
导入模块后,可以轻松查看代码:
>>> import os
>>> os?? # this display the actual source of the method
>>> help() # Python's interactive help. Fantastic!
Run Code Online (Sandbox Code Playgroud)
大多数Python模块都有详细记录; 从理论上讲,你可以学习iPython,你可以通过同一个工具学习其他你需要知道的知识.
iPython还有一个调试模式,pdb().最后,您甚至可以将iPython用作启用python的命令行.基本的UNIX命令用作%魔术方法.任何非魔术命令的命令都可以执行:
>>> os.system('cp file1 file2')
Run Code Online (Sandbox Code Playgroud)
help()在外壳上的任何对象,类或路径import code;
code.interact(local=locals())在代码中的任何位置运行它将在该确切点启动python shellpython -i yourscript.py在yourscript.py结束时启动一个shell单个项目的元组必须以逗号结尾,否则它不会被解释为元组.
pprint() 非常方便(是的,2 p)
reload() 当您在对依赖模块进行大量快速更改的同时重新测试模块时非常有用.
并尽可能多地学习常用的"成语",否则你会想到一个更好的做事方式,当成语真的被认为是最好的方式时(例如丑陋的表达方式' '.join(),或为什么那里有答案)是没有isInt(string)功能......答案是你可以用try来包装"可能"整数的用法:然后如果它不是有效的int就捕获异常.解决方案效果很好,但听起来像是一个可怕的答案当你第一次遇到它时,你可以浪费很多时间说服自己它真的是一个好方法.
这些是浪费我几个小时的时间来确定我的一些代码感觉错误的初稿,真的是可以接受的.
来自python.org的阅读材料:
http://wiki.python.org/moin/BeginnerErrorsWithPythonProgramming http://wiki.python.org/moin/PythonWarts
| 归档时间: |
|
| 查看次数: |
6517 次 |
| 最近记录: |