1989年,Guido(龟叔)为ABC 语言写的一个插件。因Monty Python的喜剧团体的原因,故给这个语言起名python。linux也是1989年诞生的,1991年正式发布linux1.0内核;1990年, 发布python的第一个版本;2001年发布python2.0版本;2010年获年度Tiobe编程语言大奖,TIOBE网站;TIOBE 编程语言社区排行榜是编程语言流行趋势的一个指标,每月更新,这份排行榜排名基于互联网上有经验的程序员、课程和第三方厂商的数量。排名使用著名的搜索引擎(诸如 Google、MSN、Yahoo!、Wikipedia、YouTube 以及 Baidu 等)进行计算。请注意这个排行榜只是反映某个编程语言的热门程度,并不能说明一门编程语言好不好,或者一门语言所编写的代码数量多少。2013年发布python3.x版本;python为什么这么火?早期的国外互联网公司很多网站就是用python开发,google中国将python编程带到中国,后面有豆瓣网站Youtube,雅虎,google(现在主推Go语言),NASA用python编程,2010年之后,移动互联网的兴起,项目开发周期短的语言越来越火,在运维圈,有很多优秀的第三方库,便于开发,移植性很强。
3. python的优点
创始人评价:简单、优雅、明确4. python的缺点
代码执行速度慢,相比C语言,不过现在python的异步并发框架导致执行速度慢;5. python的应用
软件开发游戏后台、搜索、图形界面IT自动化工具
6. python的安装
访问python官网,下载不同平台下的python软件;
Linux操作系统上一般iso镜像里面自带,直接通过yum安装;
注意点:
python2.6是一个过渡版本,既可以执行,又包含python3.0的新特性;
现在企业实战应用python版本为2.7版本;
python2.7是python2.x系列最后一个版本,不会再有python3.0;
查看python版本:
当在shell命令行输入python命令会进入一个交互式的python编程环境;
python沿袭了C语言的很多用法,输出一字符串,使用print;
退出python的交互式环境通过快捷键ctrl+d或者使用exit()函数;
python脚本文件
在python交互式环境中,我定义一个变量 a=1 ,存放在内存中.。如果没有退出交互式环境,可通过 print a 打印出a的指,如
果退出此次交互式环境, a 变量存的值 1 已经被内存释放了。因此怎么在下次使用时,依旧可以查看到a变量的值呢?当然是把原先存放在内存的,存放在硬盘上即可。
关于python脚本中的第一行内容 :
#!/usr/bin/python 这种写法表示直接引用系统的默认的 Python 版本,这样的话
python 程序移植到其他机器上可能运行的时候有问题,因为别人系统默认的 Python
版本与你预期的并不一致。
#!/usr/bin/env python 这种写法表示,引用环境变量里面自定义的 Python 版本, 具有较强的可移植性,推荐这种写法。
国际通用的编码格式utf-8,数据库Mysql里面也常常要注意编码格式的问题。指定编码格式的方法有很多种,这里就列举几个吧:
#coding:utf-8
#coding=utf-8
#encoding:utf-8
#encoding=utf-8
我是中国人切记:绝对不能使用 word (不是纯文本文件)和 windows 自带的记事本(在文件开始的地方加特殊字符 0xefbbbf<16进制>UTF-8BOM ,有了前缀,程序自动判断它为 utf-8 格式,并按 utf-8 格式解析文本或字符串,否则,需要按照字符编码格式一个个去验证。
Python解释器
cpython
ipython :基于 cpython ,交互方式有所增强
pypy : 对代码进行动态编译, JIT 技术( just-in-time compiler ,即时编译器),显著提高代码执行速度。
Jpython :java 平台上的 python 解释器,将 python 代码编译成 java`字节码执行。
IronPython : 直接将 python 代码编译成 .net 的字节码
ipython
从网上下载软件ipython
shell终端中执行命令 ipython 试试效果;
Pycharm
访问pycharm官网,或者点击百度云共享链接安装;
下载pychrm社区版本,安装使用,后面我们专门写一个章节,来描述pycharm常用的操作、设置以及快捷键。
python编程风格
python简洁明了的编程格式,如果不按照python既定的格式进行编写程序,直接报错,所以说,刚开始编写python代码会常常报错。这里我就用C语言和python语言做简单的比较。
C语言显示 hello world:
#include
void hello()
{
printf("hello!\n");
}
void main()
{
hello();
}
从上面的代码我们会发现,C代码块是通过花括号 {} 做以区别。
python显示 hello world
#!/usr/bin/env python
def hello():
print "hello world"
def main():
hello()
main()根据上面的两个不同编程语言实现同一功能的分析,总结python编程初级要掌握的编程风格如下:
不要在行尾加分号;每行不超过80个字符;Python语言利用缩进表示语句块的开始和退出(Off-side规则),而非使用花括号或者某种关键字。
增加缩进表示语句块的开始,而减少缩进则表示语句块的退出。缩进成为了语法的一部分。
python注释
单行注释: # 常被用作单行注释符号, # 开头的行,其右边的任何数据都会被忽略,当做是注释。
块注释: 需要批量文本或代码时,使用三引号 ''' ''' .,当然三引号也可以实现多行文本格式化打印。
理解字符编码
ASCII:美国人发明了计算机,用二进制存储数据,英文字母加各个字符一共128个,每8位存储一个字符,2^8=256,可通过 ord() 函数去查看字符对应的ASCII码。
Unicode和UTF-8的区别:
Unicode:但是ASCII码忽略了中文,韩文,日文等其他国家的文字,这个时候256个字符的对应关系明显是不够用的,这时候就用两个字节对应一个文字,2**16=65536.
UTF-8:英文字符明明可以通过一个字节存储,Unicode却需要2个字节来存储,对于存储比较小的计算机来说,是浪费很多不必要占用的空间,这个时候就出现utf-8。那么什么是utf-8呢?简单来说就是可变长度编码格式,英文字符用ASCII码来存,而中文呢,就用utf-8来存,这个时候中文就不是两个字节存储,而是三个字节来存。
而python编程有个要注意的问题,当python90年代还没有出现Unicode,使用时需要手动指定Unicode格式。
字符的编码与解码:
当存储数据到硬盘,需要考虑到节省空间的问题,所以采用utf-8格式进行存储;
当将数据读入内存时,统一一个编码格式便于操作,采用unicode编码格式;
因此字符的编码与解码一定要熟练操作。
# 定义一变量,编码格式为unicode:
# 字符的编码,从unicode到utf-8格式:
# 字符的解码操作,从utf-8解码到unicode编码格式
输入与输出
输出: 告诉用户程序执行的结果
# print + 字符串... //字符串可为多个,逗号隔开
# print + 数字|表达式
输入: 告诉计算机程序所需的信息
# raw_input写入的内容赋值给变量name,输入的内容为字符类型
# input写入的内容赋值给变量age,输入的内容为数值类型
变量
变量是内存中的一块区域。
变量的命名: 变量名由字母,数字,下划线组成。
>>> a=1
>>> print a
1
>>> a_1 = 111
>>> _a = 222
>>> print _a
222
>>> 1a = 111
File "
1a = 111
^
SyntaxError: invalid syntax //指语法错误,无效的语法
>>> a = 5
>>> b = 3>>> print a + b
8
>>> print a + b +c
Traceback (most recent call last):
File "
NameError: name 'c' is not defined //名称错误
变量的特性:
实际存储在内存上;
变量名最好见名知意;
变量可重新赋值;
>>> number1 = 1
>>> number2 = 2
>>> number1 + number2
3
python中地址变量与c语言刚好相反,一条数据包含包含多个标签;
>>> a = 1
>>> b = 1
>>> id(a)
10812520
>>> id(b)
10812520
面试题常见问题:简要描述Python的垃圾回收机制(garbage collection)。
Python在内存中存储了每个对象的引用计数(reference count)。如果计数值变成0,那么相应的对象就会消失,分配给该对象的内存就会释放出来用作他用。
PyObject是每个对象必有的内容,其中ob_refcnt就是做为引用计数。当一个对象有新的引用时,它的ob_refcnt就会增加,当引用
它的对象被删除,它的ob_refcnt就会减少.引用计数为0时,该对象生命就结束了。运算符与表达式
赋值运算符:=, +=, -=, /=, *=, %=
算术运算符:+, -, , /, //, %, *
>>> 1 + 1
2
>>> 1 - 1
0
>>> 1 * 3
3
>>> 1 / 2
0
>>> 1.0 / 2
0.5
>>> 1.0 // 2
0.0
>>> 1 % 2
1
>>> 2 ** 3
8
>>> a33 = 3 ** 3
>>> print a33
27
>>> print "a33=",a33
a33= 27
>>> print "a33 =",a33
a33 = 27
关系运算符: >, >=, <, <=, !=, ==
布尔值:1 < 2,返回一个布尔类型的结果
>>> 1 < 2
True
>>> 1 > 2False
逻辑运算符:逻辑与and, 逻辑或or, 逻辑非not.
练习:
编写一四则表达式,(if语句实现)
(1)脚本:
(2)测试:
作业:
创建一个python脚本,实现下面功能:
- 要求用户输入用户名和密码;
- 如果用户名和密码均正确时,显示“welcome to user manage system”;
- 如果用户名和密码不正确时,重新输入,最多有三次机会;
- 用户输入超三次机会后,报错“你已经登陆过三次,请10min以后再登陆”。
脚本如下:
(1)成功登录:
(2)登录失败: