Python开发基础-Day11内置函数补充、匿名函数、递

1. CAST函数

内置函数补充

  语法:

python divmod()函数:把除数和余数运算结果结合起来,返回一个包含商和余数的元组(a // b, a % b)

CAST ( expression AS data_type [ ( length ) ] )
 |       |              |              |
关键字  表达式或值   要转换成的数据类型    最大长度

语法:

  示例:

1 divmod(a, b)  #a、b为数字,a为除数,b为被除数
SELECT CAST(100 AS CHAR(3))

示例:

2. CONVERT函数

1 >>> divmod(7, 2)
2 (3, 1)  #3为商,1为余数
3 >>> divmod(7, 2.5)
4 (2.0, 2.0)

  语法:

应用:web前端页数计算

CONVERT ( data_type [ ( length ) ] , expression [ , style ] )

 |             |           |              |           |
关键字   要转换成的数据类型   最大长度     表达式或值     样式代码(常用在日期类型上)
1 total_count=73
2 per_count=23
3 res=divmod(total_count,per_count)
4 if res[1] > 0:
5     page_count=res[0]+1
6 print(page_count)

  示例:

enumerate()函数:用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。

SELECT CONVERT(TIME, '2014-11-30 10:20:29')

语法:

1 enumerate(sequence, [start=0])    
2 # sequence -- 一个序列、迭代器或其他支持迭代对象
3 # start -- 下标起始位置

示例:

1 l=['a','b','c']
2 for i in enumerate(l):
3     print(i)
4 输出结果:
5 (0, 'a')
6 (1, 'b')
7 (2, 'c')

frozenset()函数:返回一个冻结的集合,冻结后集合不能再添加或删除任何元素

语法:

1 frozenset([iterable]) #iterable为可迭代对象

示例:

1 >>> dir(set)    #包含add、clear、pop、remove等修改方法
2 ['__and__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__iand__', '__init__', '__init_subclass__', '__ior__', '__isub__', '__iter__', '__ixor__', '__le__', '__len__', '__lt__', '__ne__', '__new__', '__or__', '__rand__', '__reduce__', '__reduce_ex__', '__repr__', '__ror__', '__rsub__', '__rxor__', '__setattr__', '__sizeof__', '__str__', '__sub__', '__subclasshook__', '__xor__', 'add', 'clear', 'copy', 'difference', 'difference_update', 'discard', 'intersection', 'intersection_update', 'isdisjoint', 'issubset', 'issuperset', 'pop', 'remove', 'symmetric_difference', 'symmetric_difference_update', 'union', 'update']
3 >>> dir(frozenset)  #冻结并不包含任何可修改方法
4 ['__and__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__ne__', '__new__', '__or__', '__rand__', '__reduce__', '__reduce_ex__', '__repr__', '__ror__', '__rsub__', '__rxor__', '__setattr__', '__sizeof__', '__str__', '__sub__', '__subclasshook__', '__xor__', 'copy', 'difference', 'intersection', 'isdisjoint', 'issubset', 'issuperset', 'symmetric_difference', 'union']
5 
6 s=frozenset({1,2,3})

globals()函数:以字典类型返回当前位置的全部全局变量,对应的为locals()返回当前位置的局部变量

语法:

1 globals()

示例:

1 >>> globals()
2 {'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>}
3 >>> locals()
4 {'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>}

hash()函数:用于获取取一个对象(字符串或者数值等)的哈希值

语法:

1 hash(object)  #对象可以是数字、字符串、元组等不可变类型

示例:

1 >>> hash('test')
2 -2819287477203653805
3 >>> hash((1,2,3))
4 2528502973977326415

isinstance()函数:来判断一个对象是否是一个已知的类型,类似 type()

语法:

1 isinstance(object, classinfo)
2 #object -- 实例对象。
3 #classinfo -- 可以是直接或间接类名、基本类型或者有它们组成的元组。

示例:

1 >>> isinstance(1,int)
2 True
3 >>> isinstance(1,(int,float,list))    #类型可以用一个元组包含多个,只要有一个匹配上就返回True
4 True

iter()函数:用来生成迭代器

语法:

1 iter(object[, sentinel]) 
2 # object -- 支持迭代的集合对象
3 # sentinel -- 如果传递了第二个参数,则参数 object 必须是一个可调用的对象(如,函数),此时,iter 创建了一个迭代器对象,每次调用这个迭代器对象的__next__()方法时,都会调用 object

示例:

1 for i in iter([1,2,3]): #[1,2,3].__iter__()
2     print(i)
3 输出结果:
4 1
5 2
6 3

pow()函数:返回 xy(x的y次方)的值

语法:

1 pow(x, y[, z])
2 #函数是计算x的y次方,如果z在存在,则再对结果进行取模,其结果等效于pow(x,y) %z

示例:

1 >>> pow(5,2,2)  #计算5的2次方的2的余数
2 1

range()函数:可创建一个整数列表,一般用在 for 循环中

语法:

1 range(start, stop[, step]) 
2 #start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5);
3 #end: 计数到 end 结束,但不包括 end。例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5
4 #step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)

示例:

1 for i in range(0,5,2):     #0  2  4
2     print(i)
3 for i in range(5,0,-1):    #反向取
4     print(i)

reverse()函数:用于反向列表中元素

语法:

1 list.reverse()

示例:

1 >>> l1=[3,5,1,2]
2 >>> list(reversed(l1))
3 [2, 1, 5, 3]
4 >>> reversed(l1)    #本身是个迭代器
5 <list_reverseiterator object at 0x0000023CA11E3D30>

round()函数:返回浮点数的四舍五入值

语法:

1 round( x [, n] )    #x为浮点数,n为四舍五入位数

示例:

1 >>> round(80.23456, 2)
2 80.23
3 >>> round(100.0010056, 3)
4 100.001
5 >>> round(-100.0030056, 3)
6 -100.003

slice()函数:返回一个切片对象,主要用在切片操作函数里的参数传递

语法:

1 slice(start, stop[, step])
2 #start -- 起始位置
3 #stop -- 结束位置
4 #step -- 间距,步长

示例:

1 >>> l=['a1','a2','a3','a4','a5','a6','a7','a8','a9']
2 >>> l[2:5:2]
3 ['a3', 'a5']
4 >>> x=slice(2,5,2)
5 >>> l[x]
6 ['a3', 'a5']

sorted()函数:对所有可迭代的对象进行排序操作,产生一个新的对象,不对原对象生效

语法:

1 sorted(iterable[, cmp[, key[, reverse]]])
2 #iterable -- 可迭代对象。
3 #cmp -- 比较的函数,这个具有两个参数,参数的值都是从可迭代对象中取出,此函数必须遵守的规则为,大于则返回1,小于则返回-1,等于则返回0。
4 #key -- 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。
5 #reverse -- 排序规则,reverse = True 降序 , reverse = False 升序(默认)。

示例:

1 >>> l=[1,2,4,9,-1]
2 >>> sorted(l)  #从小到大
3 [-1, 1, 2, 4, 9]
4 >>> sorted(l,reverse=True)  #从大到小
5 [9, 4, 2, 1, -1]

sum()函数:对系列进行求和计算

本文由金沙官网线上发布于数据库,转载请注明出处:Python开发基础-Day11内置函数补充、匿名函数、递

您可能还会对下面的文章感兴趣: