一直喜欢编程,最近决定潜心入坑。起初一直在研究要学什么语言,想过c语言,学过VB(两天。。。),后来听说了python,功能强大,并且适合小白入手。文笔不行,但还是申请了博客号,以便记录、发表自己的所想所悟,希望往后的日子能坚持现在的这份热忱,达到自己想要达到的高度。加油!

————————————————————————————————————————————————————

关于python

简介:

Python是一种面向对象的解释型、动态的高级计算机程序设计语言,有荷兰人Guido van Rossum于1989年发明,第一个公开发行版发行于1991年。

Python是纯粹的自由软件,源代码和解释器CPython遵循GPL协议。Python语法简洁清晰,特色之一是强制用空白符做语句缩进。

Python具有丰富和强大的库。它常被昵称为胶水语言,能够将其他语言制作的各种模块(尤其是c/c++)联结在一起。常见的一种应用情形是,使用Python快速生成程序的原型,如果有其他特别要求的部分,可以用其他语言改写。

2018年发布版本3.x,于3月,官方宣布Python2.7将于2020年1月1日终止支持。用户如果想要在这个日期之后继续得到与Python2.7有关的支持,则需要付费给商业供应商。

特点:

优点

简单:Python是一种代表简单主义思想的语言。阅读一个良好的Python程序就感觉像是在读英语一样。它使你能够专注于解决问题而不是去搞明白语言本身。

易学:Python极其容易上手,因为Python有极其简单的说明文档。

速度快:Python 的底层是用 C 语言写的,很多标准库和第三方库也都是用 C 写的,运行速度非常快。

免费、开源:Python是FLOSS(自由/开放源码软件)之一。使用者可以自由地发布这个软件的拷贝、阅读它的源代码、对它做改动、把它的一部分用于新的自由软件中。FLOSS是基于一个团体分享知识的概念。

高层语言:用Python语言编写程序的时候无需考虑诸如如何管理你的程序使用的内存一类的底层细节。

可移植性:由于它的开源本质,Python已经被移植在许多平台上(经过改动使它能够工作在不同平台上)。这些平台包括Linux、Windows、FreeBSD、Macintosh、Solaris、OS/2、Amiga、AROS、AS/400、BeOS、OS/390、z/OS、Palm OS、QNX、VMS、Psion、Acom RISC OS、VxWorks、PlayStation、Sharp Zaurus、Windows CE、PocketPC、Symbian以及Google基于linux开发的android平台。

解释性:一个用编译性语言比如C或C++写的程序可以从源文件(即C或C++语言)转换到一个你的计算机使用的语言(二进制代码,即0和1)。这个过程通过编译器和不同的标记、选项完成。运行程序的时候,连接/转载器软件把你的程序从硬盘复制到内存中并且运行。而Python语言写的程序不需要编译成二进制代码。你可以直接从源代码运行 程序。在计算机内部,Python编译器把源代码转换成称为字节码的中间形式,然后再把它翻译成计算机使用的机器语言并运行。这使得使用Python更加简单。也使得Python程序更加易于移植。

面向对象:Python既支持面向过程的编程也支持面向对象的编程。在"面向过程"的语言中,程序是由过程或仅仅是可重用代码的函数构建起来的。在"面向对象"的语言中,程序是由数据和功能组合而成的对象构建起来的。

可扩展性:如果需要一段关键代码运行得更快或者希望某些算法不公开,可以部分程序用C或C++编写,然后在Python程序中使用它们。

可嵌入性:可以把Python嵌入C/C++程序,从而向程序用户提供脚本功能。

丰富的库:Python标准库确实很庞大。它可以帮助处理各种工作,包括正则表达式、文档生成、单元测试、线程、数据库、网页浏览器、CGI、FTP、电子邮件、XML、XML-RPC、HTML、WAV文件、密码系统、GUI(图形用户界面)、Tk和其他与系统有关的操作。这被称作Python的"功能齐全"理念。除了标准库以外,还有许多其他高质量的库,如wxPython、Twisted和Python图像库等等。

规范的代码:Python采用强制缩进的方式使得代码具有较好可读性。而Python语言写的程序不需要编译成二进制代码。

缺点

单行语句和命令行输出问题:很多时候不能将程序连写成一行,如import sys;for i in sys.path:print i。而perl和awk就无此限制,可以较为方便的在shell下完成简单程序,不需要如Python一样,必须将程序写入一个.py文件。

独特的语法:这也许不应该被称为局限,但是它用缩进来区分语句关系的方式还是给很多初学者带来了困惑。即便是很有经验的Python程序员,也可能陷入陷阱当中。

运行速度慢:这里是指与C和C++相比。

应用

系统编程:提供API(Application Programming Interface应用程序编程接口),能方便进行系统维护和管理,Linux下标志性语言之一,是很多系统管理员理想的编程工具 。

图形处理:有PIL、Tkinter等图形库支持,能方便进行图形处理。

数学处理:NumPy扩展提供大量与许多标准数学库的接口。

文本处理:python提供的re模块能支持正则表达式,还提供SGML,XML分析模块,许多程序员利用python进行XML程序的开发。

数据库编程:程序员可通过遵循Python DB-API(数据库应用程序编程接口)规范的模块与Microsoft SQL Server,Oracle,Sybase,DB2,MySQL、SQLite等数据库通信。python自带有一个Gadfly模块,提供了一个完整的SQL环境。

网络编程:提供丰富的模块支持sockets编程,能方便快速地开发分布式应用程序。很多大规模软件开发计划例如Zope,Mnet 及Bit Tottent. Google都在广泛地使用它。

Web编程:应用的开发语言,支持最新的XML技术。

多媒体应用:Python的PyOpenGL模块封装了"OpenGL应用程序编程接口",能进行二维和三维图像处理。PyGame模块可用于编写游戏软件。

pymo引擎:PYMO全称为python memories off,是一款运行于Symbian S60V3,Symbian3,S60V5, Symbian3, Android系统上的AVG游戏引擎。因其基于python2.0平台开发,并且适用于创建秋之回忆(memories off)风格的AVG游戏,故命名为PYMO。

黑客编程:python有一个hack的库,内置了你熟悉的或不熟悉的函数,但是缺少成就感。

用Python写简单爬虫:首先,要通过urllib2这个Module获得对应的HTML源码。(PS:在python3.3之后urllib2已经不能再用,代之以urllib)通过上面这三句就可以将URL的源码存在content变量中,其类型为字符型。接下来是要从这堆HTML源码中提取我们需要的内容。用Chrome查看一下对应的内容的代码(也可以用Firefox的Firebug)。可以看到url的信息存储在span标签中,要获取其中的信息可以用正则式。

———扩展:

编译型语言&解释型语言

计算机是不能识别高级语言的,当我们在运行高级语言的时候,需要一个翻译机来把高级语言转变为计算机能够读懂的机器语言,其中,有两种实现方式:

一种是编译,另一种是解释。

编译型语言:在程序执行之前,有一个单独的编译过程,将程序翻译成机器语言,以后执行这个程序的时候,就不用再翻译了。

解释型语言:在运行的时候将程序翻译成机器语言,所以运行速度相对于编译型语言要慢。

前者是一次把所有的代码转换成机器语言,然后写成可执行文件。后者是再程序运行的前一刻,还只有源程序而没有可执行程序;当程序每执行到源程序的某一条指令,则会有一个称之为解释程序的外壳程序将源代码转换成二进制代码以供执行,总而言之,就是不断解释、执行、解释、执行......因此,解释型程序离不开解释程序的。

其实,两者各有优劣,前者由于程序执行速度快,同等条件下对系统要求较高,因此像开发操作系统、大型应用程序、数据库系统等,便采用编译语言(c/c++、pascal/object、Pascal(Delphi)、VB等)。而一些网页脚本、服务器脚本及辅助开发接口此类对速度要求不高、对不同系统平台键的兼容性有一定要求的程序则采用解释型语言(Java、JavaScript、VBScript、Perl、Python等)。

当下,由于两者间优劣大致互补,并且随着设计技术与硬件的不断发展,编译型与解释型两种方式的界限正在不断变得模糊。例如Java虽属于解释型语言,但在执行之前已经预先进行一次预编译,生成的代码是介于机器码和Java源代码之间的中介代码,运行的时候则由JVM(Java的虚拟机平台,可视为解释器)解释执行。它既保留了源代码的高抽象、可移植的特点,又已经完成了对源代码的大部分预编译工作,所以执行起来比“纯解释型”程序要快许多。

动态型语言&静态型语言

动态型语言:在运行时才确定数据类型的语言。变量使用之前不需要类型声明,通常变量的类型是被赋值的那个值的类型。例如:Python、Ruby、Perl等。

静态型语言:在编译时变量的数据类型就被定义,多数静态类型语言要求在使用变量之前必须声明数据类型。例如:C++、Java、Delphi、C#等

(ps:部分内容摘抄、改写于网络,由于涉水未深,按个人理解角度敲字,部分内容不免有错,望谅之!)

python语言的使用不需要付费_人生不值得,我在用python.1_关于python相关推荐

  1. 属于python语言中合法的二进制整数是_以下选项属于 Python 整数类型的是( )

    [单选题]3*1**3 表达式输出结果为________ [多选题]以下的布尔代数运算正确的是( ) [单选题]下列________不是Python的数据类型. [单选题]下列不是Python语言关键 ...

  2. python语言变量命名规则有什-以下选项中,符合Python语言变量命名规则的是_学小易找答案...

    [填空题]与文件系统相比,数据库系统的数据冗余度___________,数据共享性___________. [填空题]在数据库体系结构中,两级数据映象分别是指___________之间的数据映象与__ ...

  3. python语言有几种编程方式_零基础自学python语言,有哪几种方法?龟叔说:这套教程带你入门...

    第一我要说的是:你应该先了解python语言的起源,这句话对于自学python的小白来说,本身就是耍流氓. 我们从根源上分析这个问题,这个问题是(从零基础如何自学python编程)? 我的提取关键字: ...

  4. python语言程序设计计算机二级难不难_全国计算机二级的难度有多大?

    计算机二级任选一科目考试及格即可获取计算机二级证书.自2019年3月考试起,二级语言类及数据库类科目(即除MS Office高级应用外的其他二级科目)调整获证条件为:总分达到60分且选择题得分达到50 ...

  5. 简述python语言的主要功能和特点_计算机考试简答题

    1.简述python的特点: Python具有简单易学,免费.开源,可扩展性.可嵌人性和可移植性强,代码规范.代 码具有较好可读性,Python标准库很丰富,支持命令式编程.面向对象程序设计.图效式 ...

  6. 哪些不符合python语言变量名_以下选项中不符合 Python 语言变量命名规则的是( )_学小易找答案...

    [单选题]下列各项中,关于银行存款业务的表述中正确的是( ).(2012年) [单选题]下列各项中,关于企业无法查明原因的现金溢余,经批准后应贷记的会计科目是( ). [多选题]计价软件中,在人材机汇 ...

  7. python语言的变量随时命名随时_计算机二级

    编程题较难,比考试难度高.能看懂就可以. 1. 按照"后进先出"原则组织数据的数据结构是____ A.双向链表 B.队列 C.栈 D.二叉树 2. 以下选项的叙述中,正确的是 A. ...

  8. python语言的变量随时命名随时_模拟试卷C

    一.单项选择题 1. 按照"后进先出"原则组织数据的数据结构是____ 队列 栈 双向链表 二叉树 2. 以下选项的叙述中,正确的是 循环队列有队头和队尾两个指针,因此,循环队列是 ...

  9. python语言特点以下错误的是_关于Python语言的特点,以下选项中描述错误的是( )。_学小易找答案...

    [其它]制作空间感雨幕效果 素材图如下: [单选题]1332 .定向井分为常规定向井.大斜度定向井和( A )三种类型. [填空题]用来设置表格边线粗细的属性是( ) [单选题]1320 .井下动力钻 ...

最新文章

  1. mysql submission_date_UiPath如何连接MySQL
  2. HDU2023 求平均成绩
  3. 三种活体检测方式分析
  4. 大学用编程每月多赚2000块,是种什么体验?
  5. 微软五月份安全补丁发布
  6. java 导出文件编码,java 导出文件编码问题
  7. SAP License:SAP 移动类型详解
  8. IIS6 JQuery 未定义 解决办法
  9. 阮一峰ES6学习笔记(1)
  10. 使用 selenium 下载小视频
  11. oppo强制升级android版本,OPPO R17升级更新安卓9.0固件rom刷机包:正式版本-C.10
  12. Redis(九)-Redis的常用数据类型之Hash表
  13. jsp综合开发实例——夏日九宫格日记网
  14. 波段高低点指标公式 k线高低点 大盘主图公式源码
  15. No4.搭建基本的授权码模式请求token(一):实现授权服务端的授权码模式操作
  16. Caffe windows下安装攻略
  17. 微信小程序之 获取input框输入值
  18. Eclipse插件2
  19. JAVA之迷你DVD管理器
  20. java mysql 生僻字 乱码_JAVA生僻字乱码问题

热门文章

  1. Freemarker解决Html代码和 JS代码中单引号和双引号转义问题。
  2. 谷歌云请更正这张卡片的信息_如何在Android的Google键盘上改进自动更正
  3. 利用Ginkgo USB-ADC和心率传感器实现一个心率测试仪,带Android端APP源码
  4. jeesite 登录模块
  5. springData中的@Query和@Modifying
  6. 物联网卡的这些使用误区,千万别中招了!
  7. 关于javascript的12种淫思巧技(一)
  8. 知云文献翻译打不开_软件推荐 | 知云文献翻译
  9. Linux内核数据调用,Linux内核分析 - 网络[一]:收发数据包的调用
  10. vue使用aliplay避雷篇