一、强制类型转换
# int print("强制转换为整型:",int(12.01)) # str print("强制转换为字符串:",str(19.29)) # list print("强制转换为list列表:",list((1,2,3,4))) # set print("强制转换为set集合:",set((1,2,3,4,2))) # dict print("强制转换为字典:",dict(a = 1,b = 2))# 可以传入键值对创建字典。 print("强制转换为字典",dict(zip(['a','b'],[1,2]))) # 可以传入映射函数创建字典。) print("强制转换为字典",dict((('a',1),('b',2)))) #可以传入可迭代对象创建字典 # tuple print("强制转换为tuple元组",tuple('121')) #传入可迭代对象。使用其元素创建新的元组 # bool print(bool('abc')) #返回非空,非0,非None等即为True
返回结果:
强制转换为整型: 12 强制转换为字符串: 19.29 强制转换为list列表: [1, 2, 3, 4] 强制转换为set集合: {1, 2, 3, 4} 强制转换为字典: {'a': 1, 'b': 2} 强制转换为字典 {'a': 1, 'b': 2} 强制转换为字典 {'a': 1, 'b': 2} 强制转换为tuple元组 ('1', '2', '1') True
二、序列操作
print(all(['1','2','3',0]))#判断可迭代对象的每个元素是否都为True值,结果返回False print(any([0, '', False])) # 判断可迭代的对象里面的值是否有一个为真,结果返回False print(bin(10)) # 十进制转二进制 print(chr(33)) # 打印数字对应的ascii print(ord('b')) # 打印字符串对应的ascii码
返回结果:
False False 0b1010 ! 98
三、进制转换与局部/全局变量
s='' print(dir(s)) # 打印传入对象的可调用方法 print(hex(111)) # 数字转成16进制 print(oct(111)) # 把数字转换成8进制 def func(): name ='abc' age = 18 # {'name':'abc','age':18} print(locals()) # 返回局部变量,返回的是一个字典 func() # name = '123' print(globals()) # 返回程序内所有的全局变量,返回的是一个字典
返回结果:
['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'capitalize', 'casefold', 'center', 'count', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'format_map', 'index', 'isalnum', 'isalpha', 'isascii', 'isdecimal', 'isdigit', 'isidentifier', 'islower', 'isnumeric', 'isprintable', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'maketrans', 'partition', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill'] 0x6f 0o157 {'name': 'abc', 'age': 18} {'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x0000023CC3F20910>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, '__file__': 'C:/Users/13457/Desktop/besttest作业与源码/day4/内置函数.py', '__cached__': None, 's': '', 'func': <function func at 0x0000023CC40CCAF0>}
四、数据运算
print(max([1,5,9,111,324])) # 取最大值 print(min([1,5,9,111,324])) # 取最小值 print(sum([1,5,9,111,324])) #求和 print(divmod(10,3))#取余,返回一个元组,数据:(商,余数) print(round(11.1111111111, 2)) # 取几位小数 print(list(zip([1,2,3],['t','r','e'])))#把两个list和成一个二维数组(单个元素为元组),需要强转为list
返回结果:
324 1 450 (3, 1) 11.11 [(1, 't'), (2, 'r'), (3, 'e')]
五、复杂点的函数
1、sorted()函数
实例1:
print(sorted([2, 31, 34, 6, 1, 23, 4])) # 排序 print(sorted([2, 31, 34, 6, 1, 23, 4],reverse=True)) # 排序后反转list
返回结果:
[1, 2, 4, 6, 23, 31, 34] [34, 31, 23, 6, 4, 2, 1]
实例2:对三维数组通过特定值来排序
# sorted 语法: # # sorted(iterable, cmp=None, key=None, reverse=False) # 参数说明: # # iterable -- 可迭代对象。 # cmp -- 比较的函数,这个具有两个参数,参数的值都是从可迭代对象中取出,此函数必须遵守的规则为,大于则返回1,小于则返回-1,等于则返回0。 # key -- 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。 # reverse -- 排序规则,reverse = True 降序 , reverse = False 升序(默认)。 l = [ ('小名',5,['xx',11]), ['xiaohei',19,['xx',13]], ['xiaobai',20,['xx',18]], ['xiaolan',10,['xx',20]] ] # def use_key(x): # return x[1] l4 = sorted(l,reverse=True,key=lambda x:x[-1][-1]) #按照二维数组中第三个元素的最后一个值降序排序 print(l4)
返回结果:
[['xiaolan', 10, ['xx', 20]], ['xiaobai', 20, ['xx', 18]], ['xiaohei', 19, ['xx', 13]], ('小名', 5, ['xx', 11])]
实例3:对字典的value值进行排序
d={'a':1,'b':2,'c':-1} print(d) l2 = sorted(d.items(),reverse=True,key=lambda x:x[0])#按照key降序排序 #sorted会循环每个元素(d.items()返回的元素是一个由(key,value)元组组成的list),将key即x[0]作为返回值传递给key l3 = sorted(d.items(),reverse=True,key=lambda x:x[1])按照value降序排序 print(l2) print(l3) #key的作用是传一个函数名
返回结果:
{'a': 1, 'b': 2, 'c': -1}
[('c', -1), ('b', 2), ('a', 1)]
[('b', 2), ('a', 1), ('c', -1)]
2、fitler()函数
filter函数,将后面可迭代的部分,按照前面条件筛选,留下满足条件的数据,返回到一个list中(需要强制转换为list)
实例1:
result1 = filter(lambda x: x > 5, [12, 3, 12, 2, 1, 2, 35])#使用匿名函数作为变量 print(list(result1)) #返回filter类,需要强制转换为list #-------------------------等价于----------------------------- def filter_test(x): return x>5 result2 = filter(filter_test, [12, 3, 12, 2, 1, 2, 35])#使用定义函数名作为变量 print(list(result2))
返回结果:
[12, 12, 35] [12, 12, 35]
3、map()函数
map函数:map()函数是python内置的高阶函数,对传入的list的每一个元素进行映射,返回一个新的映射之后的list
实例1:
#对一个list每个元素转换为字符串且去空,并补充3位数,再输出为一个新的list l = [12, 3, 12, 2, 1, 2, 35] result = map(lambda x: str(x).strip().zfill(3), l) #map方式实现 print(list(result))
返回结果:
['012', '003', '012', '002', '001', '002', '035']
4、exec()函数和eval()函数
exec()可执行python代码,不需要在编辑器里Run代码了
print(exec('def a():pass ')) # 执行python代码 #会执行定义a方法的代码
eval()-----------执行python代码,但是只能执行简单的,定义数据类型和运算
result = eval('{"code":1,"name":"xiaohei"}') #执行python代码,只能执行简单的,定义数据类型和运算 print(result) #将json字符串类型转换为了字典类型
print(eval('2+2')) #执行了python运算