Python语言介绍
Python创始人:Guido(龟叔),Python的名字来自电视剧Monty Python's Flying Circus(创造一种C和shell之间,功能全,易学易用,可拓展),1991年第一个Python编辑器诞生。
Python哲学思想:简单,优雅,明确
Python的应用:
- Web Programing:Django,Pyramid,Bottle,Tornado,Flask,web2py
- GUI Development:wxPython,tklnter,PyGtk,PyGObject,PyQt
- Scientific and Numeric:SciPy,Pandas,IPython
- Software Development:Buildbot,Trac,Roundup
- System Administration:Ansible,Salt,OpenStack
Python的种类:
- Cpython:Python的官方版本,使用C语言实现,使用最广,Cpython会将源文件(py文件)转换成字节码文件(pyc文件),然后运行在Python虚拟机上。
- Jython:Python的java实现,jython会将Python代码动态编译成java字节码,然后再JVM上运行
- IronPython:Python的C#实现,IronPython将Python编译成C#字节码,然后在CLR上运行
- PyPy:Python实现的Python,将Python的字节码编译成机器码(执行快)
- ...
python的安装
Linux:
1. 下载python2.7.11
wget https://www.python.org/ftp/python/2.7.11/Python-2.7.11.tgz
2. 解压文件
tar zxvf Python-2.7.11.tgz
3. 创建安装目录
mkdir /usr/local/python27
4. 安装python
./configure --prefix=/usr/local/python27
make
make install
5. 修改老版本的ln指向
mv /usr/bin/python /usr/bin/python2.6.bak
ln -s /usr/local/python27/bin/python /usr/bin/python
这里修改之后会导致yum用不了(yum的执行依赖于Python),需要在/usr/bin/yum里面把头部#!/usr/bin/python改为#!/usr/bin/python2.6
windows:
1.下载Python3.5.1
2
.双击安
装
Python内部执行流程:
Python代码运行时会将代码转换成字节码,再从字节码转换为机器码。
关于Python解释器声明和内容编码:
在脚本的开头必须声明用什么解释器来执行代码和声明编码(Python3可以不用声明内容编码),Python解释器在加载.py文件中的代码时,会对内容进行编码(默认ascii),声明如下:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
常用编码种类:
ascii:美国标准信息交换码(8位)
unicode:万国码(至少16位),可以表示所有语言
utf-8:可以自动识别需要ascii或unicode编码(节省空间)
注释
单行注释用#号表示,如下:
多行注释用三个单引号(''' ''')或双引号(""" """)表示,如下:
'''
多行注释
多行注释
'''
"""
多行注释
多行注释
"""
变 量
变量名要求:
- 只能用字母,下划线和数字组成
- 第一个字符不能为数字
- 变量名要通俗易懂
- 声明变量名的时候不能使用特殊关键字
(False,class,finally,is,return,None,continue,for,lambda,try ,True,def,from,nonlocal,while,
and,del,global,not,with,as,elif,if,or,yield,assert,else,import,pass,break,except,in,raise)
输入:
输入可以使用input(Python3)或raw_input(Python2.x)方法,用法如下:
name=input('请输入内容:') #Python3中用法
name=raw_input('请输入内容:') #Python2.x中用法
数据类型:
1.单值
数字:
整形(int):最大取值为2147483647(2**31-1)
长整型(long):最大取值为9223372036854775807(2**63-1)
浮点型(float):3.14
复数:z=a+bj
布尔值:
True 1
False 0
2.字符串(str)
1.字符串特点:
字符串修改必须在内存中重新开辟一块空间
声明一个字符串:
2.字符串格式化:
%s:字符串
%d:数字
name = 'akon'
age = 99
sentence='I am %s,age %d' %(name,age) #会把%s和%d转换成对应变量的值
3.字符串常用方法:
索引:可以通过索引取出字符串里的单个字符,用法如下。
切片:可以通过切片取出多个元素,用法如下。
长度计算len():
去空(strip):可以去掉字符串两边的空格/换行符,用法如下。
分割(split):通过对字符串分割可以把分割后的字符串组成一个列表,用法如下。
for循环:
while循环:当条件满足时一直执行循环(容易形成死循环)
3.列表(list)
列表的表现形式:
name_list = ['akon','ak','cloris',12]
列表也支持下标索引,所以可以被切片:
计算列表长度(元素个数):
删除列表元素(del):
增加列表元素(append):
把列表变成字符串(join):
4.元组(tuple)
元组表现形式:
name=(‘akon’,’lhk’,’ak’) #与列表的区别就是不能被修改
5.字典(dict)
用一对大括号括起来,字典需要键(key)和值(value)组成,每一对键和值组成键值对。
字典表现形式:
akon={'name':'akon','age':'26','gender':'man'}
字典是无序的,如果用for循环输出所有元素,僵尸无序输出:
字典的方法:
文件的基本操作
找到文件:文件路径 E:/log
打开文件:
open(文件路径,“w+”)
file_obj=open(‘文件路径’,’模式’)
打开文件模式有:
r.以只读方式打开文件
w.打开一个文件只用于写入。如果文件已经存在则覆盖。如果文件不存在则创建。
a. 打开一个文件用于追加。如果该文件存在,文件指针将会放在文件的结尾也就是在已有内容之后。如果文件不存在,创建新文件进行写入。
w+.打开一个文件用于读写。如果文件存在则覆盖。不存在则创建。
文件操作,读写
file_obj=open('文件路径','模式')
file_obj.read() #将所有内容读入内存
file_obj.readlines() #将所有内容读入内存,并分行
for line in file_obj. readlines():
print line
for line in file_obj: #每次循环,只读一行。避免全部读入内存
file_obj.write() #写入
file_obj.writeline() #每次写入一行
文件关闭
file_obj.close()