数据类型
算术运算符
逻辑运算符
以下假设变量 a 为 10, b为 20:
运算符 | 逻辑表达式 | 描述 | 实例 |
and | x and y | 布尔"与" - 如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值。 | (a and b) 返回 20。 |
or | x or y | 布尔"或" - 如果 x 是非 0,它返回 x 的值,否则它返回 y 的计算值。 | (a or b) 返回 10。 |
not | not x | 布尔"非" - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。 | not(a and b) 返回 Fal |
字符串内建函数
字符串方法是从python1.6到2.0慢慢加进来的——它们也被加到了Jython中。
这些方法实现了string模块的大部分方法,如下表所示列出了目前字符串内建支持的方法,所有的方法都包含了对Unicode的支持,有一些甚至是专门用于Unicode的。
方法 | 描述 |
把字符串的第一个字符大写 |
|
返回一个原字符串居中,并使用空格填充至长度 width 的新字符串 |
|
返回 str 在 string 里面出现的次数,如果 beg 或者 end 指定则返回指定范围内 str 出现的次数 |
|
以 encoding 指定的编码格式解码 string,如果出错默认报一个 ValueError 的 异 常 , 除非 errors 指 定 的 是 'ignore' 或 者'replace' |
|
以 encoding 指定的编码格式编码 string,如果出错默认报一个ValueError 的异常,除非 errors 指定的是'ignore'或者'replace' |
|
检查字符串是否以 obj 结束,如果beg 或者 end 指定则检查指定的范围内是否以 obj 结束,如果是,返回 True,否则返回 False. |
|
把字符串 string 中的 tab 符号转为空格,tab 符号默认的空格数是 8。 |
|
检测 str 是否包含在 string 中,如果 beg 和 end 指定范围,则检查是否包含在指定范围内,如果是返回开始的索引值,否则返回-1 |
|
格式化字符串 |
|
跟find()方法一样,只不过如果str不在 string中会报一个异常. |
|
如果 string 至少有一个字符并且所有字符都是字母或数字则返 回 True,否则返回 False |
|
如果 string 至少有一个字符并且所有字符都是字母则返回 True, 否则返回 False |
|
如果 string 只包含十进制数字则返回 True 否则返回 False. |
|
如果 string 只包含数字则返回 True 否则返回 False. |
|
如果 string 中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True,否则返回 False |
|
如果 string 中只包含数字字符,则返回 True,否则返回 False |
|
如果 string 中只包含空格,则返回 True,否则返回 False. |
|
如果 string 是标题化的(见 title())则返回 True,否则返回 False |
|
如果 string 中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True,否则返回 False |
|
以 string 作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串 |
|
返回一个原字符串左对齐,并使用空格填充至长度 width 的新字符串 |
|
转换 string 中所有大写字符为小写. |
|
截掉 string 左边的空格 |
|
maketrans() 方法用于创建字符映射的转换表,对于接受两个参数的最简单的调用方式,第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串表示转换的目标。 |
|
返回字符串 str 中最大的字母。 |
|
返回字符串 str 中最小的字母。 |
|
有点像 find()和 split()的结合体,从 str 出现的第一个位置起,把 字 符 串 string 分 成 一 个 3 元 素 的 元 组 (string_pre_str,str,string_post_str),如果 string 中不包含str 则 string_pre_str == string. |
|
把 string 中的 str1 替换成 str2,如果 num 指定,则替换不超过 num 次. |
|
类似于 find()函数,不过是从右边开始查找. |
|
类似于 index(),不过是从右边开始. |
|
返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串 |
|
类似于 partition()函数,不过是从右边开始查找 |
|
删除 string 字符串末尾的空格. |
|
以 str 为分隔符切片 string,如果 num 有指定值,则仅分隔 num+ 个子字符串 |
|
按照行('\r', '\r\n', \n')分隔,返回一个包含各行作为元素的列表,如果参数 keepends 为 False,不包含换行符,如果为 True,则保留换行符。 |
|
检查字符串是否是以 obj 开头,是则返回 True,否则返回 False。如果beg 和 end 指定值,则在指定范围内检查. |
|
在 string 上执行 lstrip()和 rstrip() |
|
翻转 string 中的大小写 |
|
返回"标题化"的 string,就是说所有单词都是以大写开始,其余字母均为小写(见 istitle()) |
|
根据 str 给出的表(包含 256 个字符)转换 string 的字符, 要过滤掉的字符放到 del 参数中 |
|
转换 string 中的小写字母为大写 |
|
返回长度为 width 的字符串,原字符串 string 右对齐,前面填充0 |
常用函数
1 数学函数 1.1 abs()函数——获取绝对值 1.2 divmod()函数——获取商和余数的元组 1.3 sum()函数——求和 1.4 round()函数——保留n位小数,四舍五入 1.5 pow()函数——求指数运算 1.6 min()函数——求最小值 1.7 max()函数——求最大值 2 数据转换函数 2.1 hex()函数——转化为十六进制(0x) 2.2 oct()函数——转化为八进制(0o) 2.3 bin()函数——转化为二进制(0b) 2.4 int()函数——转化为int类型 2.5 float()函数——转化为浮点类型 2.6 str()函数——转化为str类型 2.7 bool()函数——转化为bool类型 2.8 ord()函数——获取ASCII或者Unicode 2.9 chr()函数——获取数组对应的字符 2.10 tuple()函数——转化为元组 2.11 list()函数——转化为列表类型 2.12 set()函数——转化为集合类型 2.13 complex()函数——转化为复数形式 3 对象创建函数 3.1 range()函数——创建列表 3.2 set()函数——创建无序集合 4 迭代器操作函数 4.1 all()函数——判断序列是否全为True 4.2 any()函数——判断序列是否全为False 4.3 iter()函数——生成迭代器 4.4 sorted()函数——排序 4.5 enumerate()函数——组合数据对象为带有数据和数据下标的索引序列 4.6 filter()函数——指定过滤条件进行筛选 4.7 map()函数——自定义函数实现元素映射操作 4.8 reversed()函数——逆序 5 对象操作函数 5.1 id()函数——获取对象内存地址 5.2 eval()函数——执行一个字符串表达式并返回结果 5.3 exec()函数——执行字符串或者文件中的语句 5.4 type()函数——获取对象类型 6 字符串函数
变量作用域
""" 变量作用域 """ g1 = 'one' def func(): g1 = 'one piece' global g2 g2 = 'two piece' print("In func():", g1) print("In func():", g2) print("inside : id(g1) = %s" %(id(g1))) print("inside : id(g2) = %s" %(id(g2))) g2 = 'two' func() print("g1 = ", g1) print("g2 = ", g2) print("outside: id(g1) = %s" %(id(g1))) print("outside: id(g2) = %s" %(id(g2))) 结果: In func(): one piece In func(): two piece inside : id(g1) = 3143475102704 inside : id(g2) = 3143475102768 g1 = one g2 = two piece outside: id(g1) = 3143472021608 outside: id(g2) = 3143475102768
列表
二维列表
a = [ ["高小一",18,30000,"北京"], ["高小二",19,20000,"上海"], ["高小一",20,10000,"深圳"], ] for m in range(3): for n in range(4): print(a[m][n],end="\t") print() #打印完一行,换行
练习
''' 有一个列表a[],里面有若干个整数未知。 我希望将里面的整数两两做差( 即a[1]- a[0],a[3]-a[2]....) , 并将得数保存在另一个列表b[]中, 请问如何实现 ''' a = [10,20,30,40,50,60,70,80,90,100] b = [] l = len(a)//2 for i in range(l): b.append(a[i*2+1]-a[i*2]) print(b)
元组
元组的创建
1. 通过()创建元组。小括号可以省略。
a = (10,20,30) 或者 a = 10,20,30
如果元组只有一个元素, 则必须后面加逗号。 这是因为解释器会把(1)解释为整数 1, (1,)解释为元组。
>>> a = (1) >>> type(a) <class 'int'> >>> a = (1,) #或者 a = 1, >>> type(a) <class 'tuple'>
2. 通过 tuple()创建元组
tuple(可迭代的对象)
例如:
b = tuple() #创建一个空元组对象 b = tuple("abc") b = tuple(range(3)) b = tuple([2,3,4])
元组的访问
1.元组的元素访问和列表一样,只不过返回的仍然是元组对象。
>>> a = (20,10,30,9,8) >>> a[1] 10 >>> a[1:3] (10, 30) >>> a[:4] (20, 10, 30, 9)
2. 列表关于排序的方法 list.sorted()是修改原列表对象,元组没有该方法。如果要对元组排序,只能使用内置函数 sorted(tupleObj),并生成新的列表对象。
>>> a = (20,10,30,9,8) >>> sorted(a) [8, 9, 10, 20, 30]
元组总结
1. 元组的元素不能修改
2. 元组的访问和处理速度比列表快。
3. 与整数和字符串一样,元组可以作为字典的键,列表则永远不能作为字典的键使用