1991年,第一个Python编译器(同时也是解释器)诞生。它是荷兰人Guido von Rossum 用C语言实现的,并能够调用C库(.so文件)。从一出生,Python已经具有了:类(class),函数(function),异常处理(exception),包括表(list)和词典(dictionary)在内的核心数据类型,以及模块(module)为基础的拓展系统。 近几年,python已经发展成为世界上最流行的的几种语言之一。 有些人喜欢用胶水语言来形容Python,是因为它可以很轻松的把许多其它语言编写的模块结合在一起,国内外的许多高校也把python语言做为必修课来学习,并且国内的使用Python语言来工作的单位数量也在增加,如:Youtube、Dropbox、BT、Quora(中国知乎)、豆瓣、知乎、Google、Yahoo!、Facebook、NASA、百度、腾讯、汽车之家、美团等。 Python语言最基本语法有:缩进、控制语句、表达式、函数、对象方法、类型和数学运算。只有学习了python基础的语法之后,才可以开始正式应用的学习,如:图形处理、数学处理、文本处理、数据库、WEB编程、爬虫等等的实际应用。
python是一种解释型语言 编译型 优点:编译器一般会有预编译的过程对代码进行优化。因为编译只做一次,运行时不需要编译,所以编译型语言的程序执行效率高。可以脱离语言环境独立运行。 缺点:编译之后如果需要修改就需要整个模块重新编译。编译的时候根据对应的运行环境生成机器码,不同的操作系统之间移植就会有问题,需要根据运行的操作系统环境编译不同的可执行文件。 解释型 优点:有良好的平台兼容性,在任何环境中都可以运行,前提是安装了解释器(虚拟机)。灵活,修改代码的时候直接修改就可以,可以快速部署,不用停机维护。 缺点:每次运行的时候都要解释一遍,性能上不如编译型语言。 注:java代码号称一次编译到处运行,因为java代理需要先编译成字节码(一种中间格式的代码),然后拿着字节码到处运行,每次运行都需要交给jvm去编译成机器指令后才能执行,因而java是混合型 而python代码也是先编译成字节码然后交给python解释器去执行,难道python也是混合型吗?当然不是。 (1) 首先需要知道,只有在import导入py文件时,才会产生pyc字节码文件,该字节码文件是可以代替源文件而直接执行的。 (2) 其次每次执行py文件,产生的字节码并不会保留下来,也就是说,每次执行py文件,都是要重新经历一遍:py文件->字节码–>python解释器–>机器码,每次都是一个重新解释执行的过程。
(1) windows下: a.下载python3.6.1 Windows x86-64 executable installer b.安装 c.设置PATH: 此电脑–>属性–>高级系统设置–>高级–>环境变量–>系统变量–>PATH–>编辑–>新建 C:\Python36\ C:\Python36\Scripts\ (2)linux下: linux环境下默认安装了python2.7,无需再安装python环境 若要安装python3.6,可以用yum安装,或者源码安装 注:若要使用新装的python,注意修改/usr/bin/yum中的python路径。
(1)解释器:即时调试代码,代码无法永久保存 (2)文件:永久保存代码 print (‘Hello world!’) 若是用解释器执行,则直接输入命令即可,若用写在文件中,则在cmd中输入:python3 路径 来执行 python内部执行过程如下:
若要在linux终端中运行python文件,则需要在python文件头加上下述两句代码: #!/usr/bin/env python #coding:utf-8
python文件中的注释用#(单行注释)和’’’ ‘’’(多行注释)
变量的产生包括变量名、赋值号和变量值,引用变量时直接用变量名即可。 变量名命名规则: (1) 变量名只能是 字母、数字或下划线的任意组合 (2) 变量名的第一个字符不能是数字 (3) 以下关键字不能声明为变量名 [‘and’, ‘as’, ‘assert’, ‘break’, ‘class’, ‘continue’, ‘def’, ‘del’, ‘elif’, ‘else’, ‘except’, ‘exec’, ‘finally’, ‘for’, ‘from’, ‘global’, ‘if’, ‘import’, ‘in’, ‘is’, ‘lambda’, ‘not’, ‘or’, ‘pass’, ‘print’, ‘raise’, ‘return’, ‘try’, ‘while’, ‘with’, ‘yield’] 注:(1)若a和b被独立地赋予两个相同的值,若值长度较小,a和b指向相同的地址,若值长度较大,则a和b指向不同的地址 (2)若a和b被赋予相同的值(a=…,b=a),则a和b指向相同的地址
python2中有raw_input和input来接收用户输入,python3中只有input。 python2中的raw_input与python3中的input是一个意思,特点是:把所有用户的输入都转成字符串类型。 python2中的input特点是:用户输入什么类型,就存为什么类型。 输入密码时,如果想要不可见,需要利用getpass 模块中的 getpass方法,即: Password=getpass.getpass(‘请输入密码: ‘) 注:在pycharm中无法使用。
(1)if语句
if 条件: 动作 elif 条件: 动作 else: 动作(2)while循环
while 条件: 动作(3)for循环
for i in 列表: 动作(4)特殊语句: break: 跳出本层循环 continue: 跳出本次循环