资料介绍
作为一个业余物理工作者以及入门计算机使用者, 选择一门称手的编程语言是非常重要的事。 从计算能带, 处理数据, 编写脚本到画图, 写个http 服务器分享文件( 看上去很专业,实际在Python 里只有一行), 做个网页, 几乎全部需要计算机完成。 但是为了这其中每个不同的目的单独去学一门语言成本简直过于高, 于是需要一个一般用途( general-purpose )的语言,处理所有的事是非常自然的事情。
编程语言的两极是Assembly 和Haskell, 一个接近硬件的本质, 一个接近计算的本质。 一个是地狱, 处理着最繁琐最耗神的事情: 内存分配, 系统调度, 硬件架构, 各种寄存器A1, B2.。.一个是天堂, 优美的写着递归, 高阶函数, lambda 表达式, 优美的并行计算( 完全不用考虑race condition)。 然而我们生活在人间, 所以大规模应用的语言不可能如此纯粹。 两端中间游离着很多general-purpose 的语言, C, C++, Java, Ruby, 几乎都能达到我们所有日常的要求。 只不过, 这些语言能做的Python 都能做, 而且Python 做得更好。接下来我说明为什么。
但是要说明本文的读者不包括写嵌入式, 写javascript 以及写大型项目对性能要求极高的人(即使是大型项目也可以80% 用python ,20% 用C),当然还有就是java 和C++ 的重度患者。(完全使用XX 工作意思不是“ 所有人都完全使用XX 工作”!显然只是部分人。更多的是,非专业编程但是想提高效率的人。比如之前有篇《 完全使用*nix 工作》 ,C# , ios 开发的人显然就一下也不能用。对于我, linux 再好我也只能装在老电脑上交交CS225的作业。当我把mint, opensuse, archlinux 装遍了,下一步就是gentoo 了的时候,否决它只有一条理由,我笔记本电池不经用,而桌面linux 的电源管理。..。.. 感谢我的cpu 风扇~! )首先,我想说的是,为什么不用下面这些大部分人很熟悉的语言:
1. C: 你难道指针扎得不疼么? 每天收垃圾很舒服? 键盘上P 右边两个键是不是已经按坏了?
2. C++: 学C++ 三年以内请不要说你会C++; 学了三年以上的人, 恭喜你们, 你过去几年浪费的时间我可以拿着香飘飘环绕地球一圈了。
3. Java: 不好意思, Java 的面向对象对我来说是原子弹打原子。而且Java7 才引进Lambda 表达式实在是太晚了, 即使java 以后会跟python 越来越像, 至于支持真正的函数式编程? 我希望下个末日之前可以实现。 而且有时候我确实需要单行执行的解释器而Java并没有。
4. Ruby: Ruby 很好,但是你为什么不直接说你只是为了用RoR?
5. Lisp: 如果你用lisp, 你平时肯定会用python 或者perl 写脚本。而且你会Lisp 不去拯救世界还来看这篇文章干什么?! 抽象语法树什么的最讨厌了。..。
6. Perl: 我第一次看Perl 的代码就感觉像用脚写的。 ” 为什么满屏的正则表达式? “!
7. C#, php, javascript :呵呵。
8. Shell: 这算语言么?
9. Matlab: 第一,我穷酸学生没钱每年买你的正版, 看到激活码就想吐。第二,我不想心血来潮画两个心形函数的时候用1mb 的窄带花两天下个的文件在我128Gb 的固态硬盘里装,然后用完两个小时就删,如此循环。第三,我会python 了不想再花时间学你的sb语法,熟悉你的.m 文件。第四,所有对windows 的垄断的血泪控诉都直接对mathwork 转过来吧~什么对开源,对自由,对的打击信仰~绝对适用~ 第五, python 大部分时候如果
不比你好用至少跟你一样好用,而这只是它不到10% 的功能,几个程序员业余时间写出来的库。真心请matlab 你这个没事发邮件“培训一个星期2000 刀打折700刀”的大公司滚粗。
10. Haskell: 每次想静下心来学haskell 都会情不自禁从范畴论看起。..。对于单纯程序语言的使用者来说,用途(内在逻辑) 大于一切不必要的语言细节。比如我就想建个数组放东西,为什么我要懂内存回收?!
所以在易用性方面, Python 相对于他们作了很大改进的部分。好吧,你会说Python 没有缺点么。确实有,而且很严重,那就是运行慢。而且是慢出风格,慢出自信。( Python 3 比Python 2 慢15% 以上, 这是一种什么风格! )相同的程序Python比C 慢几百倍很正常。这让Python 的发展受到很多限制。但是对于个人使用来说这个缺点完全不属于缺点。第一,这个年代谁没有奔腾酷睿2什么的。你手机的运行能力都可以几毫秒内把你在厕所拍的几千张自拍液化, 磨皮, 磨骨好几遍了。而且你觉得秒和秒的区别真的那么大么? 12 秒也不是很久啊。第二,很大程度上程序的慢更关乎于算法,比起O(n)和O( n^2) 的区别, 语言间的差异就显得很小了,第三,请注意,如果你使用过Python 而且真实的觉得Python 慢,那么情看下这个列表:
1. Google 创立前的第一个网络爬虫。
2. Quora ,美国最大在线知识问答平台,开复哥总是在上面拽文的。
3. Dropbox 。
4. Youtube
5. BT 。
6. 知乎,中国的Quora 。
7. 豆瓣,开创社交工具绿色系代表yp 的先河。你知道我要说什么了。。..。. 恩~他们有一个共同点~ ------------ 都是Python 写的! 如果tmd的Dropbox 没有觉得Python 慢,请你也有足够的信心不要觉得Python 慢。另外八卦一下,现在Python 之父前两天从google 去Dropbox 了,这是很值得自豪的事, 值得Dropbox 为之自豪。Python 是荷兰人van Rossum1991 年开发完成的脚本解释语言。起这个脑缺的名字是因为他是一个叫做Monty Python 的脑缺喜剧团体的脑残粉(BTW,Monty Python 出演的巨蟒与圣杯是英国电影史上跟大话西游同样地位的喜剧, 其中亚瑟王被黑成了炭, 里面圆桌骑士们拿着块石头敲来敲去各处蹦达着, 看影评我才知道这是表示他们在骑马%& 。.×( )。 于是人们知道以这么脑残的名字取的语言不是像brainfuck 语言一样是brainfucker ,那么就会像莫里盖尔曼以乔伊斯“芬尼根的守夜人”中虚构名词来命名的夸克一样, 成为一个一个不朽的新创造。Python 显然属于后者。接下来,说正题,为什么Python 如此先进(对于初学者) 。
代码简洁性和可读性写过hello world , hello android , hello ** 的人都知道,学语言最好的途径就是写和读(即使是学书面的自然语言) 。所以代码的可读性是选择学一门语言的关键因素,因为你代以后会花很多时间读别人的代码。可读性带来的影响是非常深远的。有种说法, 说在遥远的古代阿拉伯数字传入之前欧洲之前, 其数学发展几乎为0, 而造成这种缓慢的原因就是因为复杂的罗马数字的广泛使用。这表明很多时候即使我们不愿意承认, 往往是形式决定的内容。 比如罗马数字没有0, 自然很多数学概念就难以发展。 没有流形也不可能发展广义相对论一样。所以。..。..。..。.. 如果想以后从此过上幸福的生活, 请不要选用perl. 如果不幸选择了perl , 那么就君就一入侯门深似海, 从此萧郎是路人了。当以后你两行清泪的看着自己十天前写的不过10几行的楔形文字时, 你就会明白。而Python 的可读性是我见过最好的:
1. Python 的代码格式使用缩进而不是括号。首先节省了很多行数, 变得而为紧凑, 而美观。相传的俄罗斯人偷美国NASA 的C 代码那个段子满屏括号的情况是不可能出现Python 版本的。 第二,逻辑相当清晰。 循环的结束与开始一目了然。 第三, 屏幕右方得到充分利用。 比如使用24寸屏幕的人是不是感觉自己总是望着左边编程。..。. 和17 寸等高的屏幕区别不大, 很费右边的电。比如, 这是某个C 用来图像采样的算法的代码:
- 用Python学习科学编程 0次下载
- 用Python写网络爬虫 21次下载
- 如何完全使用python实现工作 9次下载
- python实现简单爬虫的资料说明 21次下载
- Python字符的实例详细说明 7次下载
- 使用文件保存游戏的python代码和资料说明 11次下载
- Python的单行命令实例说明 1次下载
- python的文件操作实例代码说明 11次下载
- Python的学习和使用经验说明 16次下载
- 如何使用Python绘制PDF文件教程详细说明 12次下载
- Python的基本知识和特点及功能详细说明 13次下载
- 如何学习Python?Python编程环境搭建详细说明 25次下载
- python数组的使用详细函数资料说明 15次下载
- python基础教程之如何使用python进行环境搭建 32次下载
- 完全自学指南Python爬虫BeautifulSoup详解 39次下载
- 用python写验证环境cocotb 279次阅读
- Python自动化测试框架及其应用 354次阅读
- 用Flet+Python写个美观的登录程序 4858次阅读
- 如何测试Python环境 4683次阅读
- 如何安装Python解释器 5202次阅读
- 用Python写个小工具网页 1083次阅读
- Python的下载与安装 1247次阅读
- Python类的属性和方法是什么 763次阅读
- python接口文件使用说明 1979次阅读
- Python语言在人工智能中的功能及优势 1.1w次阅读
- python适合做什么开发_python未来发展怎么样 8251次阅读
- 介绍Python 3 的功能 让人轻松地从Python 2迁移到Python 3 4392次阅读
- python串口编程实例 4.6w次阅读
- windows平台下python安装与配置 6355次阅读
- python2与python3问题的分析 994次阅读
下载排行
本周
- 1电子电路原理第七版PDF电子教材免费下载
- 0.00 MB | 1491次下载 | 免费
- 2单片机典型实例介绍
- 18.19 MB | 95次下载 | 1 积分
- 3S7-200PLC编程实例详细资料
- 1.17 MB | 27次下载 | 1 积分
- 4笔记本电脑主板的元件识别和讲解说明
- 4.28 MB | 18次下载 | 4 积分
- 5开关电源原理及各功能电路详解
- 0.38 MB | 11次下载 | 免费
- 6100W短波放大电路图
- 0.05 MB | 4次下载 | 3 积分
- 7基于单片机和 SG3525的程控开关电源设计
- 0.23 MB | 4次下载 | 免费
- 8基于AT89C2051/4051单片机编程器的实验
- 0.11 MB | 4次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234313次下载 | 免费
- 2PADS 9.0 2009最新版 -下载
- 0.00 MB | 66304次下载 | 免费
- 3protel99下载protel99软件下载(中文版)
- 0.00 MB | 51209次下载 | 免费
- 4LabView 8.0 专业版下载 (3CD完整版)
- 0.00 MB | 51043次下载 | 免费
- 5555集成电路应用800例(新编版)
- 0.00 MB | 33562次下载 | 免费
- 6接口电路图大全
- 未知 | 30320次下载 | 免费
- 7Multisim 10下载Multisim 10 中文版
- 0.00 MB | 28588次下载 | 免费
- 8开关电源设计实例指南
- 未知 | 21539次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935053次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537793次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420026次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234313次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191183次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183277次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138039次下载 | 免费
评论
查看更多