一.基础语法
1. Python中默认的编码格式是 ASCII 格式,在没修改编码格式时无法正确打印汉字。 在头部加上
# -*- coding: UTF-8 -*- 或者 # coding=utf-8 就可以了 (注意:# coding=utf-8 的 = 号两边不要空格。)
2. python用缩进来写模块 同一个模块缩进必须相同 统一语句换行时要加“\” num = + \ 语句中包含 [], {} 或 () 括号就不需要使用多行连接符
3. # 用于单行注释 多行注释用三个单引号或三个双引号 """ 换行 注释内容 换行 '''''
4.可以在同一行中使用多条语句,语句之间使用分号分号分割 name = "KD"; age = "32"; score = "88"
5.变量赋值 可以连续赋值 a = b = c = 1; a, b, c = 1, 2, "john";
6.Python有五个标准的数据类型 Numbers(数字) String(字符串) List(列表) Tuple(元组) Dictionary(字典) var1 = 1L 赋值(L代表长整型) del var1 删除变量
7. 字符数下表是从0开始到长度减1 s = “1234567” 则 s[1:5]等于 “2345” (包含前边索引 不包含后边索引) 字符串用+来连接 * 星号 后边加数字 则可以多次输出 s *2 = “1234567” + “1234567” = “12345671234567”
8. 列表 List 用 [ ] 标识 mylist = [1,2,3,,4,5]
9. 元组 Tuple 用()标识 里面元素不能重新赋值 也不能删除 所以没有特殊情况 就用列表吧 mytuple1 = (1,2,3,4,5) 元组中只包含一个元素时,需要在元素后面添加逗号 mytuple2 = (1,)
10. 字典 dictionary 用{}标识 键值对形式存在 字典的每个键值 key=>value 对用冒号 : 分割,每个键值对之间用逗号 , 分割 mydictionary = {"name" : "KD", "score" :"88"} mydictionary.keys() mydictionary.values() 分别输出所有的键和值 键一般是唯一的,如果重复最后的一个键值对会替换前面的,值不需要唯一 键可以用数字,字符串或元组充当,用列表就不行 值用什么都行
11.运算符 **: a**b a的b次幂 运算符 //: 除完后向下取整 9 // 4 = 2 a^b = 0011 0001 “^”异或运算符 相同取0 不同取1 例如 a = 11000101 b = 01010011 c = a^b 则c = 10010010
12.逻辑运算符 and 布尔"与" - 如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值 or 布尔"或" - 如果 x 是非 0,它返回 x 的值,否则它返回 y 的计算值 not 布尔"非" - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True
13.成员运算符 in 和 not in list = [1, 2, 3, 4 ,5]; param = 2 if (param not in list): print "not include" else: print include
14.身份运算符 is 和 not is 判断两个标识符是否引用自一个对象(是否在同一内存空间) == 等号是判断值是否相同 a = 20 b= 20 if ( a is b ): print “111” else: print “222” ab两值相同
15.条件语句 符号是 if elif else 判断方式 非0和非空(null)值为true,0 或者 null为false
16. 循环语句 包括for循环和while循环 循环控制语句有break,continue和pass 其中pass是空语句,是为了保持程序结构的完整性 定义一个空函数时 需要用pass来占位 不能空着 比如 def function(): pass
17.格式化字符串 print "My name is %s and weight is %d kg!" % ('Zara', 21)
18.三引号 ''' 字符串赋值的时候可以使用 中间的字符串可以是多行 方便长字符串的书写和阅读
19.函数 def printme( str ): print str return str 参数 strings, tuples, 和 numbers 是不可更改的对象 当参数传入在函数中修改不会改变原来的值 其他类型作为参数传入函数 则可在函数中对其修改,相当于传入内存地址,只有当形参有默认值的时候可以省略实参,可以用关键字参数传参,这时可以顺序不同,例如:printinfo( age=50, name="miki" ),不定长参数可以传入不定长的数据参数,也可以不传,如果想在函数内使用全区变量,则要事先声明使用的是全局变量,要不然会默认为局部变量,声明为global,例如global num
20. 匿名函数(lambda函数) sum = lambda arg1, arg2: arg1 + arg2 print(sum( 10, 20 ))值为30
二. 模块
1.一个.py文件可以看成一个模块,例如example.py,里面可以定义函数,变量等,其他文件使用时需要导入 import example,调用内容使用example.函数名或变量名
2.dir() 函数一个排好序的字符串列表,内容是一个模块里定义过的名字,例如:import math,content = dir(math),print content 就会累出math模块的函数名称等信息
三.读取键盘输入
1. raw_input 例如:str = raw_input("请输入:") , print "你输入的内容是: ", str
2.input函数 和raw_input函数基本类似,不过input可以输入表达式,结果会返回表达式的值
3.打开文件 fo = open("foo.txt", "w") 第二个参数是何种方式打开,如下图1
操作完后用fo.close()来关闭文件,fo.flush()来刷新文件,立即写入缓冲区
4.os模块 提供了一些对文件操作的函数 ,例如 import os,os.remove("test.txt")
5.os.mkdir("newdir") 创建新目录“newdir”,rmdir()则可以删除目录,os.rmdir('newdir')
四.异常处理
1.try:------- except:------ else:-------- 发生异常时except可以捕获,可以指定特定的except,例如:except IOError: ,可以把捕获异常看成if------ elseif------- else------- 语句
五.类
1.定义类 class Parent:
2.子类 class Child(Parent):
3.私有属性,两个下划线开头,例如:__age,内部调用需要加self,self.__age,外部访问可以使用object._className__attrName访问,例如:role._Role__age访问
4.公有属性,不需要加下划线,可以直接类名.变量名访问,例如:Role.name
5. 以单下划线开头的表示的是 protected 类型的变量,即保护类型只能允许其本身与子类进行访问,例如:_dest
六.正则表达式
1.re.match,re.match 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回none,模式如下re.match(pattern, string, flags=0),第一个参数是正则表达式,第二个参数是要匹配的字符串,第三个参数flags是匹配模式
2.re.search,扫描整个字符串并返回第一个成功的匹配。和re.match不同在于可以不再起始匹配,也会返回
3.re.sub,文本替换,re.sub(pattern, repl, string, count=0, flags=0),其中repl是要替换的字符串,也可为一个函数,string为原始的字符串,count为替换的字符数量
4.re.compile,compile 函数用于编译正则表达式,生成一个正则表达式( Pattern )对象,供 match() 和 search() 这两个函数使用pattern = re.compile(r'\d+'),m = pattern.match('one12twothree34four')
5.findall,在字符串中找到正则表达式所匹配的所有子串,并返回一个列表,如果没有找到匹配的,则返回空列表,pattern = re.compile(r'\d+'),result = pattern.findall('runoob 123 google 456')
6.re.finditer,和 findall 类似,在字符串中找到正则表达式所匹配的所有子串,并把它们作为一个迭代器返回,it = re.finditer(r"\d+","12a32bc43jf3") ,for match in it: print (match.group() )
7.re.split,split 方法按照能够匹配的子串将字符串分割后返回列表,
8,group() 返回被 RE 匹配的字符串,start() 返回匹配开始的位置,end() 返回匹配结束的位置,span() 返回一个元组包含匹配 (开始,结束) 的位置
9.\d,匹配一个数字字符,等价于 [0-9]。\D,匹配一个非数字字符,等价于 [^0-9]。\s,匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]。\S匹配任何非空白字符,等价于 [^ \f\n\r\t\v]。\w,匹配包括下划线的任何单词字符。等价于'[A-Za-z0-9_]'。\W,匹配任何非单词字符。等价于 '[^A-Za-z0-9_]'。.(句号),匹配除 "\n" 之外的任何单个字符。要匹配包括 '\n' 在内的任何字符,请使用象 '[.\n]' 的模式。