学习python
接触的语言越多,对语言的偏执就越少,越来越明白语言只是一种解决问题的工具 - 核心永远是问题与解决问题的思路。
我的体验,从简练程度上来讲,shell脚本优于perl/python/lua,perl/python优于java/C++,所以能用前者解决的问题,就别用后者。
项目中用到python,前段时间就“系统”的学了下python - 主要也就是把官方的tutorial过了一遍,从学习python的资料来看,我的评价是:
- Python Tutorial(http://docs.python.org/2/tutorial/), 简洁而重点突出,绝对是上品,把这个快速的过一篇,例子全部敲一遍,想说没入门都难。另外这里(http://docs.python.org/2/download.html)download下来的,还有关于函数式编程,网络编程,argparse的专题,都是10来页的,读读挺不错
- Learn python the hard way,这个去年过年的时候拷到ipad上读过几页,绝对是给没有编程经验的人看的,如果你是个程序员,相信全篇读下来你会被啰嗦死的 - 别降格去读这个了。
- Learn Python,上千页的大部头,看着就有压力,要是没事就别浪费时间读了,边做边查reference吧。
另外,python提供了绝佳的交互式环境:
$ python Python 2.7.3 (default, Apr 10 2012, 23:31:26) [MSC v.1500 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> import os >>> dir(os) ['F_OK', 'O_APPEND', 'O_BINARY', 'O_CREAT', 'O_EXCL', 'O_NOINHERIT', 'O_RANDOM', 'O_RDONLY', 'O_RDWR', 'O_SEQUENTIA L', 'O_SHORT_LIVED', 'O_TEMPORARY', 'O_TEXT', 'O_TRUNC', 'O_WRONLY', 'P_DETACH', 'P_NOWAIT', 'P_NOWAITO', 'P_OVERLA Y', 'P_WAIT', 'R_OK', 'SEEK_CUR', 'SEEK_END', 'SEEK_SET', 'TMP_MAX', 'UserDict', 'W_OK', 'X_OK', '_Environ', '__all __', '__builtins__', '__doc__', '__file__', '__name__', '__package__', '_copy_reg', '_execvpe', '_exists', '_exit', '_get_exports_list', '_make_stat_result', '_make_statvfs_result', '_pickle_stat_result', '_pickle_statvfs_result', 'abort', 'access', 'altsep', 'chdir', 'chmod', 'close', 'closerange', 'curdir', 'defpath', 'devnull', 'dup', 'dup2 ', 'environ', 'errno', 'error', 'execl', 'execle', 'execlp', 'execlpe', 'execv', 'execve', 'execvp', 'execvpe', 'ex tsep', 'fdopen', 'fstat', 'fsync', 'getcwd', 'getcwdu', 'getenv', 'getpid', 'isatty', 'kill', 'linesep', 'listdir', 'lseek', 'lstat', 'makedirs', 'mkdir', 'name', 'open', 'pardir', 'path', 'pathsep', 'pipe', 'popen', 'popen2', 'po pen3', 'popen4', 'putenv', 'read', 'remove', 'removedirs', 'rename', 'renames', 'rmdir', 'sep', 'spawnl', 'spawnle' , 'spawnv', 'spawnve', 'startfile', 'stat', 'stat_float_times', 'stat_result', 'statvfs_result', 'strerror', 'sys', 'system', 'tempnam', 'times', 'tmpfile', 'tmpnam', 'umask', 'unlink', 'unsetenv', 'urandom', 'utime', 'waitpid', ' walk', 'write'] >>> help(os.tmpfile) Help on built-in function tmpfile in module nt: tmpfile(...) tmpfile() -> file object Create a temporary file with no directory entries. >>> print os.tmpfile() <open file '<tmpfile>', mode 'w+b' at 0x02580CD8>
在python交互环境中,dir查找成员,help看成员的帮助文档,然是直接在命令行测试这个api ---- 一气呵成!
下面谈谈就根据我对python粗浅的了解,所感受到的其亮点:
- 极佳的命令行交互体验,实时测试:见上
- 函数式编程的工具:filter + map + reduce: filter(lambda x: x > 10, range(1,20))
- list comprehension:[x for x in range(1,10) if x % 2 == 0]
- 多变量赋值:a, b = b, a
- lambda: lambda x: x > 10
- for和try的else支持 - 在其他语言里这个都得另外加flag实现,相当不便。
- 内置的documentation strings支持: """ This is a documentation string """
- generator-pull模式:需要时才产生: xrange()
- chained comparation: a < b == c
- 模块机制:module - package
- 标准的异常机制:try-except-finally; with statement
- 内置的强大集合类:list, tuple, set, dict
- 完善的标准库
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· 展开说说关于C#中ORM框架的用法!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?