Python的使用

一.基础语法

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

图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]' 的模式。

你可能感兴趣的:(Python的使用)