Python 简介
Python 是一种解释型语言: 这意味着开发过程中没有了编译这个环节。类似于PHP和Perl语言。
Python 是交互式语言: 这意味着,您可以在一个Python提示符,直接互动执行写你的程序。
Python 是面向对象语言: 这意味着Python支持面向对象的风格或代码封装在对象的编程技术。
Python 是初学者的语言:Python 对初级程序员而言,是一种伟大的语言,它支持广泛的应用程序开发,从简单的文字处理到 WWW 浏览器再到游戏。
脚本简单地说就是一条条的文字命令,这些文字命令是可以看到的(如可以用记事本打开查看、编辑),脚本程序在执行时,是由系统的一个解释器,将其一条条的翻译成机器可识别的指令,并按程序顺序执行。因为脚本在执行时多了一道翻译的过程,所以它比二进制程序执行效率要稍低一些。
Python 标识符
以下划线开头的标识符是有特殊意义的。以单下划线开头 _foo 的代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用 from xxx import * 而导入;
以双下划线开头的 __foo 代表类的私有成员;以双下划线开头和结尾的 foo 代表 Python 里特殊方法专用的标识,如 init() 代表类的构造函数。
Python 保留字符
exec,assert, finally, del, yield
行和缩进
缩进的空白数量是可变的,但是所有代码块语句必须包含相同的缩进空白数量,这个必须严格执行。
IndentationError: unindent does not match any outer indentation
level错误表明,你使用的缩进方式不一致,有的是 tab 键缩进,有的是空格缩进,改为一致即可。
如果是 IndentationError: unexpected indent 错误, 则 python
编译器是在告诉你"Hi,老兄,你的文件里格式不对了,可能是tab和空格没对齐的问题",所有 python 对格式要求非常严格。
因此,在 Python 的代码块中必须使用相同数目的行首缩进空格数。
建议你在每个缩进层次使用 单个制表符 或 两个空格 或 四个空格 , 切记不能混用
多行语句
可以使用斜杠( \)将一行的语句分为多行显示,如下所示:
total = item_one + \
item_two + \
item_three
语句中包含 [], {} 或 () 括号就不需要使用多行连接符。如下实例:
days = ['Monday', 'Tuesday', 'Wednesday',
'Thursday', 'Friday']
等待用户输入
#!/usr/bin/python
# -*- coding: UTF-8 -*-
raw_input("按下 enter 键退出,其他任意键显示...\n")
以上代码中 ,\n 实现换行。一旦用户按下 enter(回车) 键退出,其它键显示。
Print 输出
print 默认输出是换行的,如果要实现不换行需要在变量末尾加上逗号 ,
标准数据类型
Python有五个标准的数据类型:
Numbers(数字)
String(字符串)
List(列表)
Tuple(元组)
Dictionary(字典)
Python数字
del语句的语法是:
del var1[,var2[,var3[....,varN]]]]
Python支持四种不同的数字类型:
int(有符号整型)
long(长整型[也可以代表八进制和十六进制])
float(浮点型)
complex(复数)
复数由实数部分和虚数部分构成,可以用 a + bj,或者 complex(a,b) 表示, 复数的实部 a 和虚部 b 都是浮点型。
Python字符串
[头下标:尾下标] 获取的子字符串包含头下标的字符,但不包含尾下标的字符。
比如:
>>> s = 'abcdef'
>>> s[1:5]
'bcde'
加号(+)是字符串连接运算符,星号(*)是重复操作。
Python 字典
字典用"{ }"标识。
tinydict = {'name': 'john','code':6734, 'dept': 'sales'}
Python数据类型转换
eval(str)用来计算在字符串中的有效Python表达式,并返回一个对象
Python算术运算符
a**b 幂 - 返回a的b次幂
a//b 取整除 - 返回商的整数部分(向下取整)
Python成员运算符
in 如果在指定的序列中找到值返回 True,否则返回 False。
not in 如果在指定的序列中没有找到值返回 True,否则返回 False。
Python身份运算符
is 是判断两个标识符是不是引用自一个对象
is not 是判断两个标识符是不是引用自不同对象
Python运算符优先级
Python 条件语句
python 并不支持 switch 语句
简单的语句组
if ( var == 100 ) : print "变量 var 的值为100"
循环控制语句
pass是空语句,是为了保持程序结构的完整性。
通过序列索引迭代
for index in range(len(fruits)): print '当前水果 :', fruits[index]
Python pass 语句
Python pass是空语句,是为了保持程序结构的完整性。
pass 不做任何事情,一般用做占位语句。
pass 一般用于占位置。
在 Python 中有时候会看到一个 def 函数:
def sample(n_samples):
pass
该处的 pass 便是占据一个位置,因为如果定义一个空函数程序会报错,当你没有想好函数的内容是可以用 pass 填充,使程序可以正常运行。
Python数学函数
Python随机数函数
Python数学常量
Python访问字符串中的值
Python不支持单字符类型,单字符在 Python 中也是作为一个字符串使用。
Unicode 字符串
>>> u'Hello World !'
u'Hello World !'
>>> u'Hello\u0020World !'
u'Hello World !'
删除列表元素
del list1[2]
list相关方法
Python 元组
元组使用小括号,列表使用方括号。
元组中只包含一个元素时,需要在元素后面添加逗号
tup1 = (50,)
修改元组
元组中的元素值是不允许修改的,但我们可以对元组进行连接组合
tup3 = tup1 + tup2
删除元组
元组中的元素值是不允许删除的,但我们可以使用del语句来删除整个元组
del tup
无关闭分隔符
任意无符号的对象,以逗号隔开,默认为元组,如下实例:
#!/usr/bin/python
print 'abc', -4.24e93, 18+6.6j, 'xyz'
x, y = 1, 2
print "Value of x , y : ", x,y
以上实例运行结果:
abc -4.24e+93 (18+6.6j) xyz
Value of x , y : 1 2
Python 字典(Dictionary)
整个字典包括在花括号 {} 中
删除字典元素
del dict['Name'] # 删除键是'Name'的条目 dict.clear() # 清空词典所有条目 del dict # 删除词典
字典键的特性
不允许同一个键出现两次。
键必须不可变,所以可以用数字,字符串或元组充当,所以用列表就不行。
获取当前时间
localtime = time.localtime(time.time())
本地时间为 : time.struct_time(tm_year=2016, tm_mon=4, tm_mday=7, tm_hour=10, tm_min=3, tm_sec=27, tm_wday=3, tm_yday=98, tm_isdst=0)
(tm_yday真是一个令人紧张的属性
获取格式化的时间
localtime = time.asctime( time.localtime(time.time()) )
本地时间为 : Thu Apr 7 10:05:21 2016
格式化日期
我们可以使用 time 模块的 strftime 方法来格式化日期,:
time.strftime(format[, t])
例:
# 格式化成2016-03-20 11:45:39形式
print time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
获取某月日历
import calendar
cal = calendar.month(2016, 1)
January 2016
Mo Tu We Th Fr Sa Su
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Python 函数
格式:
def functionname( parameters ):
"函数_文档字符串"
function_suite
return [expression]
实例:
def printme( str ):
"打印传入的字符串到标准显示设备上"
print str
return
参数传递
在 python 中,类型属于对象,变量是没有类型的……
raw_input函数
raw_input([prompt]) 函数从标准输入读取一个行,并返回一个字符串(去掉结尾的换行符)
input函数
input([prompt]) 函数和 raw_input([prompt]) 函数基本类似,但是 input 可以接收一个Python表达式作为输入,并将运算结果返回。
close()方法
File 对象的 close()方法刷新缓冲区里任何还没写入的信息,并关闭该文件,这之后便不能再进行写入。
当一个文件对象的引用被重新指定给另一个文件时,Python 会关闭之前的文件。用 close()方法关闭文件是一个很好的习惯。
write()方法
write()方法可将任何字符串写入一个打开的文件。需要重点注意的是,Python字符串可以是二进制数据,而不是仅仅是文字。
write()方法不会在字符串的结尾添加换行符(’\n’)
文件定位
tell()方法告诉你文件内的当前位置, 换句话说,下一次的读写会发生在文件开头这么多字节之后。
seek(offset [,from])方法改变当前文件的位置。Offset变量表示要移动的字节数。From变量指定开始移动字节的参考位置。
如果from被设为0,这意味着将文件的开头作为移动字节的参考位置。如果设为1,则使用当前的位置作为参考位置。如果它被设为2,那么该文件的末尾将作为参考位置。
# 打开一个文件
fo = open("foo.txt", "r+")
str = fo.read(10)
print "读取的字符串是 : ", str
# 查找当前位置
position = fo.tell()
print "当前文件位置 : ", position
# 把指针再次重新定位到文件开头
position = fo.seek(0, 0)
str = fo.read(10)
print "重新读取字符串 : ", str
# 关闭打开的文件
fo.close()
重命名和删除文件
os.rename(current_file_name, new_file_name)
os.remove(file_name)
mkdir()方法
可以使用os模块的mkdir()方法在当前目录下创建新的目录们。
os.mkdir(“newdir”)
getcwd()方法
getcwd()方法显示当前的工作目录。
import os
os.chdir("D:/代码")
print os.getcwd()
rmdir()方法
rmdir()方法删除目录,目录名称以参数传递。
在删除这个目录之前,它的所有内容应该先被清除。
os.rmdir( "/tmp/test" )
异常处理
捕捉异常可以使用try/except语句。
try/except语句用来检测try语句块中的错误,从而让except语句捕获异常信息并处理。
如果你不想在异常发生时结束你的程序,只需在try里捕获它。
try-finally 语句
try-finally 语句无论是否发生异常都将执行最后的代码。