分享

Python 语法笔记 - @海阔天空@

 ganame 2011-02-13

Python 语法笔记

发表于 2010年08月03日 17:02 分类: lvs 统计: 0评/317阅 1人收藏此文章, 收藏此文章(?)

数据类型

一、数值

运算符:

+,-,*,/,(),= (赋值)

整型:

    * 由0-9阿拉伯数字组成,如"1,10,50,30"
    * 位数经测试可至70位以上
    * 可使用函数"int()"将除复数以外的其它数转换为整型
    * 可使用函数"long()"将除复数以外的其它数转换为长整型

浮点数:

    * 由0-9阿拉伯数字和小数点组成,如"3.15,10.325"
    * 最长为12位数
    * 整数部分的位数至少为1位最多为12位
    * 小数部分的位数 = 12 - 整数部分的位数
    * 当浮点数与整数运算时,结果为浮点数
    * 可使用函数"float()"将除复数以外的其它数转换为浮点数

复数:

    * 由实部和虚部组成,如“(3+2j),(1.5+0.5j)”
    * 虚部的后缀要加"j"或"J"来表示
    * 可使用"变量名.real"获得实数,"变量名.imag"获得虚数

二、字符串

表示方法:

    * 字符串用单引号、双引号或三重引号进行标识
    * 三重引号标识的字符串可任意换行
    * 可使用反斜杠对单引号或双引号标识的字符串进行分行
    * 在字符串前加"r"后可使转义符号(如"\n"、"\t"等)失效
    * 在字符串前加"u"后将定义为 Unicode 字符串(可在字符串中使用 Unicode-Escape 编码)
    * "u"和"r"可联合使用,标识为"ur"

运算符:

    * 可以使用"+"号来进行连接,如 "abc" + "def"
    * 两个字符串值之间会自动连接(只限字符串,变量和表达式不可),如 "str" "ing"
    * 可以使用"*"号来进行重复,如 "abc" * 5
    * 使用使用函数"len()"返回字符串长度

分割(切片):

    * 字符串可使用下标(索引)来查询,如 "word[4],word[0:2],word[2:],word[:4]"
    * 下标从0开始
    * 查询出的字符串为只读,不能使用字符串索引赋值
    * word[:2] + word[2:] 等于 word
    * 索引可以为负数,为负数时计数从右边开始

三、列表

    * 列表是用方框号"[]"包含的多个数据,数据之间使用','号分隔,如"['string', 123, 342]"
    * 列表可以像字符串一样被分割(切片)、连接
    * 分割后的列表可以使用索引来进行赋值,如"a[3] = 'abc'"
    * 列表中可以嵌套列表
    * 直接用赋值号"="复制列表时,只是复制了列表的地址。类似于C语言中的指针
    * 可以使用"b = copy.deepcopy(a)"来进行列表的完全复制,但要"import copy"导入"copy"模块

流程控制

一、判断语句(if)

Python中没有"switch case"语句,只能使用"if ... elif ... elif"替代。

语句结构:

if 条件1:
    语句体1
elif 条件2:
    语句体2
elif 条件3:
    语句体3
else:
    语句体4

二、循环语句(for, while)

语句结构:

for 临时变量 in 列表等:
    语句体1
else:
    语句体2

"break","continue","else"和"pass":

    * break:跳出最近一级的"for"或"while"循环
    * continue:继续执行下一次循环
    * else:当"for"循环结束或"while"的条件为"false"时执行,但被"break"中止时不执行
    * pass:什么也不做

三、有序数据生成函数(range)

语句结构:

range(起始数, 结尾数, 步长)

结合"for"语句一起使用,可达到类似PHP中"foreach"语句的效果:

for key in range(len(a)):
    print key, a[key]

四、自定义函数

语句结构:

def 变量名(参数列表):
    语句体
    return 返回值

注意事项:

    * 函数必须先定义才能使用,即函数的定义必须在使用它的语句之前
    * 调用函数时要在函数名后加"()",否则调用的是函数的地址
    * 如果函数中没有"return"语句或"return"语句为空时,返回的值为"None"
    * 函数的参数中可直接使用事件定义过的变量名
    * Python中的变量皆为全局变量,变量在函数中被修改后,函数外使用时为修改为的值
    * 函数中的变量一般为局部变量,但由于列表和字典传递时传递的是地址,所以会修改原变量内容
    * 可以在变量前加"global"声明为全局变量。如"global x"
    * 函数起始行的多行字符串可以使用"函数名.doc"来调用。适合编写函数说明

数据结构

一、深入列表(List)

列表对象可以使用的方法:

    * append(x):把一个元素添加至列表的结尾
    * extend(L):将另外一个列表追加到本列表后面
    * insert(i, x):在指定的位置插入一个元素。第一个参数是要播放位置的索引
    * remove(x):删除列表中值为x的第一个元素,如不存在x则返回一个错误
    * pop([i]):将指定位置的元素删除,被将其值返回。如没有指定索引,就操作最后一个元素
    * index(x):返回x在列表中第一次出现的索引值,如没有匹配的元素就返回一个错误
    * count(x):返回x在列表中出现的次数
    * sort():对列表中的元素进行顺序排序
    * reverse():根据列表中的索引进行倒序排列

把列表当做堆栈使用:

    * 使用append方法进栈
    * 使用pop()方法出栈

把列表当做队列使用:

    * 使用append方法将元素加入队列
    * 使用pop(0)方法取出队列中的第一个元素

函数化编辑工具:

    * filter(func, sequence):从"sequence"中筛选出符合"func"条件的元素
    * map(func, sequence):为"sequence"中的每一个元素依次调用"func"
    * reduce(func, sequence):先使用"element1,element2"作为参数调用"func",再使用返回的结果"res1,element3"作为参数调用"func",依此类推,最后返回单一的一个值

列表推导式:

    * 格式:[表达式 for 临时变量 in 列表 if 条件],"if 条件"为可选项
    * 例子:[3*x for x in [2, 5, 6] if x > 2]
    * 含义:将列表中大于2的元素都乘3,并返回为一个新的列表

删除语句:

    * 格式:del 列表[索引]
    * 索引可为单一的索引值,也可以为分割(切片)
    * 也可以用于删除整个变量

二、元组(Tuples)&序列(Sequences)

    * 元组是用圆框号"()"包含的多个数据,数据之间使用','号分隔。如"('string', 123, 342)"
    * 圆框号在赋值时可以省略,如"a = 123, 456, 789"
    * 如果只给元组中放入一个元素,则要在该元素后加上逗号","。如"a = 123,"或"a = (123,)"
    * 列表可以像字符串一样被分割(切片)、连接
    * 不能使用索引对元组中的某一元素赋值,如"a[2] = 'abc'"会进行报错
    * 元组中可以嵌套元组
    * 和列表一样,元组也不能使用"="号直接复制,需要使用"copy.deepcopy()"复制

三、字典(Dict)

    * 字典是用大括号"{}"包含的以关键字为索引的多个数据,索引和数据之间用冒号":"分隔,数据之间用","号分隔。如 {key1:value1, key2:value2, key3:value3}
    * 可以使用字符、数值和元组做为关键字,不能使用列表做为关键字
    * 可以使用"字典变量名[关键字] = 值"为字典赋值。如"a['newkey'] = 12345"
    * 可以使用"del 字典变量名[关键字]"来删除某个元素
    * 可以使用方法"keys()"来返回字典中所有的关键字,返回的形式为列表。如"print a.keys()"
    * 可以使用方法"haskey(关键字)"来判断字典中是否含有指定关键字的元素。如"a.haskey(key1)"
    * 使用语句"dict()",可以直接将列表中的元组直接转换为字典(列表也可以使用列表推导式生成)。如"dict([(key1, value1), (key2, value2), (key3, value3)])"

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多