Python是著名的"龟叔”Guido van Rossum在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言。

现在,全世界差不多有600多种编程语言,但流行的编程语言也就那么20来种。如果你听说过TIOBE排行榜,你就能知道编程语言的大致流行程度。这是最近10年最常用的10种编程语言的变化图:

总的来说,这几种编程语言各有千秋。C语言是可以用来编写操作系统的贴近硬件的语言,所以,C语言适合开发那些追求运行速度、充分发挥硬件性能的程序。而Python是用来编写应用程序的高级编程语言。

当你用一种语言开始作真正的软件开发时,你除了编写代码外,还需要很多基本的已经写好的现成的东西,来帮助你加快开发进度。比如说,要编写一个电子邮件客户端,如果先从最底层开始编写网络协议相关的代码,那估计一年半载也开发不出来。高级编程语言通常都会提供一个比较完善的基础代码库,让你能直接调用,比如,针对电子邮件协议的SMTP库,针对桌面环境的GUI库,在这些已有的代码库的基础上开发,一个电子邮件客户端几天就能开发出来。

Python就为我们提供了非常完善的基础代码库,覆盖了网络、文件、GUI、数据库、文本等大量内容,被形象地称作"内置电池(batteries included)”。用Python开发,许多功能不必从零编写,直接使用现成的即可。

除了内置的库外,Python还有大量的第三方库,也就是别人开发的,供你直接使用的东西。当然,如果你开发的代码通过很好的封装,也可以作为第三方库给别人使用。

许多大型网站就是用Python开发的,例如YouTube、Instagram,还有国内的豆瓣。很多大公司,包括Google、Yahoo等,甚至NASA(美国航空航天局)都大量地使用Python。

龟叔给Python的定位是"优雅”、"明确”、"简单”,所以Python程序看上去总是简单易懂,初学者学Python,不但入门容易,而且将来深入下去,可以编写那些非常非常复杂的程序。

总的来说,Python的哲学就是简单优雅,尽量写容易看明白的代码,尽量写少的代码。如果一个资深程序员向你炫耀他写的晦涩难懂、动不动就几万行的代码,你可以尽情地嘲笑他。

那Python适合开发哪些类型的应用呢?

首选是网络应用,包括网站、后台服务等等;

其次是许多日常需要的小工具,包括系统管理员需要的脚本任务等等;

另外就是把其他语言开发的程序再包装起来,方便使用。

最后说说Python的缺点。

任何编程语言都有缺点,Python也不例外。优点说过了,那Python有哪些缺点呢?

第一个缺点就是运行速度慢,和C程序相比非常慢,因为Python是解释型语言,你的代码在执行时会一行一行地翻译成CPU能理解的机器码,这个翻译过程非常耗时,所以很慢。而C程序是运行前直接编译成CPU能执行的机器码,所以非常快。

但是大量的应用程序不需要这么快的运行速度,因为用户根本感觉不出来。例如开发一个下载MP3的网络应用程序,C程序的运行时间需要0.001秒,而Python程序的运行时间需要0.1秒,慢了100倍,但由于网络更慢,需要等待1秒,你想,用户能感觉到1.001秒和1.1秒的区别吗?这就好比F1赛车和普通的出租车在北京三环路上行驶的道理一样,虽然F1赛车理论时速高达400公里,但由于三环路堵车的时速只有20公里,因此,作为乘客,你感觉的时速永远是20公里。

第二个缺点就是代码不能加密。如果要发布你的Python程序,实际上就是发布源代码,这一点跟C语言不同,C语言不用发布源代码,只需要把编译后的机器码(也就是你在Windows上常见的xxx.exe文件)发布出去。要从机器码反推出C代码是不可能的,所以,凡是编译型的语言,都没有这个问题,而解释型的语言,则必须把源码发布出去。

这个缺点仅限于你要编写的软件需要卖给别人挣钱的时候。好消息是目前的互联网时代,靠卖软件授权的商业模式越来越少了,靠网站和移动应用卖服务的模式越来越多了,后一种模式不需要把源码给别人。

再说了,现在如火如荼的开源运动和互联网自由开放的精神是一致的,互联网上有无数非常优秀的像Linux一样的开源代码,我们千万不要高估自己写的代码真的有非常大的"商业价值”。那些大公司的代码不愿意开放的更重要的原因是代码写得太烂了,一旦开源,就没人敢用他们的产品了。

当然,Python还有其他若干小缺点,请自行忽略,就不一一列举了。

廖雪峰python教程-Python简介相关推荐

  1. 据廖雪峰python3教程----python学习第二天

    输入和输出 用print()在括号中加上字符串,就可以向屏幕输出指定的字符 eg: 1 >>> print('hello, world') print()函数也可以接受多个字符串,字 ...

  2. 据廖雪峰python3教程----python学习第十三天

    在OOP程序设计中,当我们定义一个class的时候,可以从某个现有的class继承,新的class称为子类(Subclass),而被继承的class称为基类.父类或超类(Base class.Supe ...

  3. 据廖雪峰python3教程----python学习第八天

    函数的参数 定义函数的时候,我们把参数的名字和位置确定下来,函数的接口定义就完成了. python的函数除了正常的定义必选参数外,还可以使用默认参数,可变参数合关键字参数, 位置参数 定义一个计算x ...

  4. python 廖雪峰_据廖雪峰python3教程----python学习第十二天

    使用模块 Python本身就内置了很多非常有用的模块,只要安装安装完毕,这些模块就可以立刻使用. 我们以内建的 sys 模块为例,编写一个 hello 的模块:'a test module' # 一个 ...

  5. python商业爬虫教程_廖雪峰老师的Python商业爬虫课程 Python网络爬虫实战教程 体会不一样的Python爬虫课程...

    廖雪峰老师的Python商业爬虫课程 Python网络爬虫实战教程 体会不一样的Python爬虫课程 1.JPG (53.51 KB, 下载次数: 1) 2019-8-9 08:15 上传 2.JPG ...

  6. python课程开课吧怎么样-廖雪峰总结的Python商业爬虫教程,请查收!

    原标题:廖雪峰总结的Python商业爬虫教程,请查收! 2018 IEEE最热门48种编程语言榜,Python雄踞四项第一! 据介绍,IEEE Spectrum 的排序是综合 10 个精选线上数据源, ...

  7. python发送邮件廖雪峰_利用Python的smtplib和email发送邮件

    原理 网上已经有了很多的教程讲解相关的发送邮件的原理,在这里还是推荐一下廖雪峰老师的Python教程,讲解通俗易懂.简要来说,SMTP是发送邮件的协议,Python内置对SMTP的支持,可以发送纯文本 ...

  8. 【笔记】Python学习(廖雪峰)笔记①——Python基础知识

    Python学习(廖雪峰)笔记①--Python基础知识 Python 基础知识 字符串与编码 ASCII.Unicode.UTF-8 Python字符串 格式化 使用list和tuple list( ...

  9. 廖雪峰 php教程,获取廖雪峰老师的Python3教程的php脚本

    P.S. 2019年11月15日更新. 昨天一个朋友问我能否帮忙下载廖雪峰老师的python3教程,于是便写了这个php脚本. 在这里非常感谢廖雪峰老师的辛苦努力.<?php /** * 获取P ...

  10. 《廖雪峰Git教程》学习记录

    <廖雪峰Git教程>学习记录 作者:婷婷 摘要:这段时间学习了廖雪峰老师的Git教程,廖老师已经写得非常易懂了,本人在此处记录了学习到的在windows环境下Git的基本用法,写此博客,便 ...

最新文章

  1. 原创 | 安全生产事故如何防患于未然?监测与预警平台为安全和效益保驾护航...
  2. Visual Studio 11 Beta 带来新的Metro 应用开发体验
  3. 【联盛德W806上手笔记】一、开发环境和烧录程序
  4. iPhone失去反应咋办?
  5. 如何根据接口写一个客户端进行发单测试?
  6. 文字垂直居中,水平居中 a标签水平居中只要给他的父级设置text-align=center
  7. Tkinter注册界面判断用户名是否唯一的合法性验证(Python3.7)
  8. 开源数据库学习资料汇总
  9. 电脑、手机 自动化 键鼠操作( 类似按键精灵 )
  10. matlab乘方报错,Matlab精炼语法
  11. 产生式系统——动物识别系统
  12. 网课答案查题方法详细步骤
  13. 推荐一款高效的处理延迟任务神器
  14. C++ 多态性 (polymorphism)
  15. 桌面路径改到D盘的目录下
  16. C语言编程练习 念数字
  17. MaskFormer
  18. mcinabox运行库下载_MCinaBox运行库下载-MCinaBox启动器官网版下载v0.1.3- 游侠下载站...
  19. 为什么 Redis 不支持回滚(roll back)
  20. 案例分析|名创优品是如何通过精细化管理获得火速扩张的?

热门文章

  1. 机器学习代码实战——线性回归(多变量)(Linear Regression)
  2. Linux安装python3.8时,编译过程中报错Could not build the ssl module!
  3. 八皇后问题(经典回溯算法)
  4. 算法——分而治之及快速排序
  5. 前台传JSON到后台
  6. copy 浅复制 与深复制
  7. STM32 C++编程 004 Adc (数模转换)类
  8. group by 和count 联合使用问题
  9. redhat 6.5 【源码编译安装 mysql-5.5.47】
  10. css中float left与float right的使用说明