一、安装
请参考Python自动化中的python安装
二、语言特性
语言的对比
C++java | 编译语言 | C语言没有标准库,C++标准库不够简洁和易读 | 内存管理由开发者负责 |
Python、tcl、perl | 解释型脚本语言,不需要编译 | 由内建的标准库,高级的数据结构 |
内存管理由python解释器负责 |
编译对比
Java | 程序--->编译成字节码--->解释器生成机器文件 |
javac a.java java a |
C | 程序--->编译成机器文件 | |
Python | 程序--->解释器生成字节码文件 | python a.py |
由于整个Python语言从规范到解释器都是开源的,所以理论上只要水平够高,任何人都可以编写python解释器,来执行python代码,事实上,确实存在多种python解释器。
Jython介绍:需要安装Jython
2.Jython在import 一个Python文件的时候,会编译生成.class文件,而不是.pyc文件。
当我们从python官网下载并安装好python2.7后,就直接获得了一个官方版本的解释器,CPython,由于python是由C语言开发的,所以叫CPython,python在性能薄弱的地方可以用c语言编写,命令行下运行python就是启动CPython解释器,CPython用>>>作为提示符
IPython介绍:
执行python代码时和Cpython处理方式一样,只不过提示符用In[序号]:
三、IDLE的使用
交互式解释器,不保存输入的程序
主提示符>>> 等待输入下一个语句
次提示符... 等待输入当前语句的其他部分
四、数字
1/2 | 结果为0 |
1/2.0 | 结果为0.5 |
from __future__ import division 1/2 |
结果为0.5 |
1//2 | 整除 0 |
1.0//2.0 | 0.0 |
1%2 | 求余1 |
2.75%0.5 | 0.25 |
2**3 | 2的3次幂=6 |
长整型:普通整数不能大于2147483647(也不能小于-2147483648),如果需要更大的数,可以使用长整数,数字后面有一个L,长整数和普通整数可以混合使用
十六进制:0xAF 八进制:010 (首位都是零)
运算符:+ - * / // % **
比较运算符:< <= > >= == !=
逻辑运算符:and or not
变量:变量名包括字母、数字、下划线,变量名不能以数字开头(装材料的锅碗瓢盆)
表达式:某件事情(食谱的材料)
语句:做某件事情(烹饪的方法)
x=1+2(x为变量,1+2为表达式,x=1+2为语句)
不支持自增,自减
数值内建运算符及内建函数:
1.abs()
2.divmod()
3.pow()
4.round()
5.*
6.//
7.% 等等,列出了小部份
比较内建函数的功能区别:
函数int()直接截去小数部分,返回值为整数
函数floor()得到最接近原数但小于原数的整数,返回值为浮点数
函数round()得到最接近原数的整数(四舍五入),返回值为浮点数
其他数值相关模块
很多关于数字的函数都是内建函数,在__builtin__模块中,解释器自动导入,无需再写import语句,另外还有几个跟数字相关的模块,如下所示:
1.decimal - 十进制浮点运算类
2.array - 高效数值数组
3.math/cmath - 标准C库数学运算符,常规运算在math中,复数运算在cmach中
4.operator - 数字运算符的函数实现,例如tor.sub(m,n)等价于m-n
5.random - 多种伪随机数生成器,函数randrange(),uniform(),random(),choice()
五、获取用户输入
x=input("x: ") //如果输入的是字符串,则必须带双引号“daisy”
y=raw_input("y: ") //把输入的数据当成原始数据
print xxx //输出内容
str()函数显示给人看的
repr()函数显示给机器看的
六、函数
pow(2,3)内建函数
七、模块
__builtins__模块是在程序开始时自动被解释器导入的,可以看成适用任何一级python代码的全局变量
import math import 模块名
math.foor(32.9) 模块.函数 使用这个模块的函数
如果不存在不同模块中有相同的同名函数的情况下,可以使用函数名称 from math import sqt sqt(9) (如果还有一个模块也有sqt(),这种形式会导致引用同一个函数名,有重复的现象,不知道用哪个模块的函数了)
_xxx 不用from module import *导入
__xxx__ 系统定义名字
__xxx 类中的私有变量,模块外或类外不可以使用
八、运行脚本
方法一、命令行:python test.py (必须在test文件的路径下执行 或者 用test的全路径)(linux/windows)
方法二、在程序的首行加入#!/usr/local/bin/python解释器的绝对路径,文件加入可执行权限,直接在命令行窗口输入 test.py即可运行(unix),双击test.py(windows)
如果不想让窗口一闪而过,在程序的最后一行加入 raw_input("Press<enter>")
方法三、用软件工具sublime或者eclipse运行
九、注释
#
十、字符串
字符串即一串字符,可用单引号或双引号标注
转义字符,用反斜线标示
用+拼接字符串
把其他字符转换成字符串:
1)repr(""),转换成合法的python表达式,给机器看的
2)str(""),比上一个函数更容易阅读,给人看的
3)··
十一、其他
1)如果需要写一个非常非常长的字符串,可能要跨很多行,那么,可以使用三个引号代替普通引号,print''' this is a very long string,'''也可以使用三个双引号"""long string""",这时可以在字符串中使用单引号和双引号,而不需要使用反斜线进行转义,同理适用于小括号,中括号,大括号。
2)普通字符串需要换行时需要在最后一个字符后面加上反斜线,这个用法也适用于表达式和语句
3)对于长路径,需要使用’c:\nowhere\file' 双反斜线在转义成单反斜线
4)原始字符串以r开头,print r'C: owhere', 打印出的结果也是最原始的C: owhere,此时反斜线没有被转义
十二、Unicode
Python中的普通字符串在内部是以8位的ASCII码形式储存的,而Unicode字符串则储存为16位Unicode字符。u‘Hello ,world’
十三、帮助
1.使用help()内建函数
help(函数名) //得到相应的帮助信息
十四、编程风格
#/usr/bin/env python
"this is a test module"
import sys
import os
debug=True
class FooClass(object):
"foo class"
pass
def test():
"test function"
foo=FooClass()
if __name__=='__main__':
test()
模块被导入时,__name__值为模块名字
模块被执行执行时,__name__的值为__main__