第八章 内置函数
Posted gnaix
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第八章 内置函数相关的知识,希望对你有一定的参考价值。
1.作用域相关 locals、globals
def func(): a = 1 b = 2 print(locals()) print(globals()) # 全局命名空间中的名字 print(locals()) # 本地的命名空间 print(globals()) # 全局的命名空间 func()
2.输入输出相关input、print
# input inp = input(‘>>>‘) # 出现术语:阻塞 # print # 99乘法表 for i in range(1, 10): for j in range(1, i+1): print(‘%s * %s == %s‘% (i, j, i*j), end=‘ ‘) print() # 1 * 1 == 1 # 2 * 1 == 2 2 * 2 == 4 # 3 * 1 == 3 3 * 2 == 6 3 * 3 == 9 # 4 * 1 == 4 4 * 2 == 8 4 * 3 == 12 4 * 4 == 16 # 5 * 1 == 5 5 * 2 == 10 5 * 3 == 15 5 * 4 == 20 5 * 5 == 25 # 6 * 1 == 6 6 * 2 == 12 6 * 3 == 18 6 * 4 == 24 6 * 5 == 30 6 * 6 == 36 # 7 * 1 == 7 7 * 2 == 14 7 * 3 == 21 7 * 4 == 28 7 * 5 == 35 7 * 6 == 42 7 * 7 == 49 # 8 * 1 == 8 8 * 2 == 16 8 * 3 == 24 8 * 4 == 32 8 * 5 == 40 8 * 6 == 48 8 * 7 == 56 8 * 8 == 64 # 9 * 1 == 9 9 * 2 == 18 9 * 3 == 27 9 * 4 == 36 9 * 5 == 45 9 * 6 == 54 9 * 7 == 63 9 * 8 == 72 9 * 9 == 81
# 结束不换行 print(1,2,3,4,5,sep=‘;‘,end=‘ ‘) print(1,2,3,4,5,sep=‘;‘,end=‘‘) # 1;2;3;4;5 1;2;3;4;5 # 滚动条例子 import time for i in range(0,101,2): time.sleep(0.1) char_num = i//2 #打印多少个‘*‘ if i == 100: per_str = ‘\r%s%% : %s\n‘ % (i, ‘*‘ * char_num) else: per_str = ‘\r%s%% : %s‘ % (i, ‘*‘ * char_num) print(per_str,end=‘‘, flush=True) # print(per_str, flush=True) #小越越 : \r 可以把光标移动到行首但不换行 相当于文件中的seek(0),只能 # 对越写越长的操作 # print() 写文件 # python 能直接操作文件 ------ 需要发起系统调用才能操作文件 # flush 立即写 # seq 分隔符 # end 结束分隔符
3.内存相关hash、id
print(hash(‘12341723894‘)) # 1550914739143308370 # 对可hash的数据类型进行hash之后会得到一个数字 # 在一次程序的执行过程中,对相同的可哈希变量,哈希之后的结果永远相同的 # 在一次程序的执行过程中,对不相同的可哈希变量,哈希之后的结果几乎总是不相同的 # hash 字典底层的存储 和 set 集合的去重机制都相关 # id() 查询内存地址 print(id(1)) # 1773891040
4.杂项
# 1- 引用模块 # import
# 2- 帮助 # help
# 3- 判断函数是否可调用 # callable def func():pass a = 1 print(callable(func)) # True print(callable(a)) # False
# 4- 查看内置属性 # dir() print(dir(‘1‘)) #查看一个变量所用于的所有名
# 5- 文件操作 # open
5.基础数据类型相关
1.数字相关
数据类型
int 整型
bool bool类型
float 浮点型
complex 复数
# 进制转换 print(bin(10)) # 0b1010 print(oct(10)) # 0o12 print(hex(10)) # 0xa #0123456789abcdef
# 数学运算 # abs() # 绝对值 # divmod # 商余函数 print(divmod(10, 2)) print(divmod(7, 3)) print(divmod(9, 7)) # 返回一个数组,分页的时候会用到 # (5, 0) # (2, 1) # (1, 2) # round() # 默认取整,小数精确,会四舍五入 print(round(3.14151926, 2)) # 3.14 # pow()# 平方 print(pow(2,3)) print(pow(3,2)) # 8 # 9 # print(pow(2, 3, 5)) #(2**3)%5 先平方,在取余 # sum求和 # print(sum(1,2,3)) # print(sum(1,2,3)) # TypeError: sum expected at most 2 arguments, got 3 # sum(iterable) # print(sum([1,2,3,4,5])) # print(sum([1,2,3,4,5]), start=0) # print(sum([1,2,3,4,5]), start=20) # print(sum(range(6))) # 省内存 # min最小值 print(min([1,2,3])) # 1 print(min(1,2,3,4)) # 1 print(min(1,-2,3,-4,key=abs)) # 1 # 先计算绝对值,在取最小绝对值的原数值 # **************面试的时候最容易出最小值的时候 # 当出现两个最小值的时候,打印头一个 # def func(num): # return num%2 # print(min(-2,3,-4,key=func)) # max最大值 print(max([1,2,3])) # 3
2.数据结构相关
# 创建列表元组 # list # tuple
# 反序、切片 # reverse # list.reverse() # 在原列表中改 # reversed(object) # 不改变原对象,可倒序元组等,返回一个迭代器 ret = [1, 2, 3, 4, 5] # ret.reverse() # 列表的一个方法 # print(ret) ret1 = reversed(ret) ret2 = reversed((1,2,3,4,5)) print(ret) # [1, 2, 3, 4, 5] print(ret1) # <list_reverseiterator object at 0x0000026B700C0B00> print(ret2) # <reversed object at 0x0000026B700C0B38> # slice切片,用得不多
# 字符串相关 # str 转化成字符串 # format 格式化输出 # ord返回ascii码 # print(ord(‘a‘)) # 小写的a-z 97+26 A-Z 65+26 # chr ascii码对应的值 # print(chr(97)) # repr 让一个对象原形毕露 print(1) print(‘1‘) print(repr(1)) print(repr(‘1‘)) # 1 # 1 # 1 # ‘1‘
# 数据集合 # dict 字典 # set 集合 # frozenset 不可变集合
# 相关操作 # 1- enumerate() #枚举函数,接收两个参数,一个容器类型,一个序号起始值 l = [1, 2, 3, 4, 5, 6] ret = enumerate(l) print(ret) # <enumerate object at 0x00000227537F0360> for item in ret: print(item) # (0, 1) # (1, 2) # (2, 3) # (3, 4) # (4, 5) # (5, 6) ret = enumerate(l,1) print(ret) # <enumerate object at 0x000001F9DD0B03A8> lst = [‘apple‘, ‘pear‘] for num,product in enumerate(lst, 1): print(num, product) # 1 apple # 2 pear # 2- all 全部为真则True print(all([1,2,3,4,5])) print(all([0,1,2,3,4,5])) print(all([‘a‘,1,2,3,4,5])) print(all([‘‘,1,2,3,4,5])) # True # False # True # False # 3- any 有一个为真则为True print(any([1,2,3,4,5])) print(any([])) print(any(‘‘)) # True # False # False # 4- {i:j} for i,j in zip(t1,t2) 拉链方法,返回可迭代的对象,以最短的方式打印 ret = zip([1,2,3,4],(‘a‘, ‘b‘, ‘c‘, ‘d‘)) print(ret) # <zip object at 0x00000146D7317848> for i in ret: print(i) # (1, ‘a‘) # (2, ‘b‘) # (3, ‘c‘) # (4, ‘d‘) ret = zip([1,2,3,4],(‘a‘, ‘b‘, ‘c‘, ‘d‘),(4,5,6,7)) for i in ret: print(i) # (1, ‘a‘, 4) # (2, ‘b‘, 5) # (3, ‘c‘, 6) # (4, ‘d‘, 7) # filter() map() # 5- filter把可迭代的对象的每一个值,给func,根据func的返回值,留取结果 lst = [1,4 ,6, 7, 9 ] def func(num): if num % 2 == 0:return True filter(func, lst) # for i in filter(func, lst): # print(i) # 4 # 6 g = (i for i in lst if i%2==0) l = [‘test‘, None, ‘‘, ‘str‘, ‘ ‘, ‘END‘] # 利用filter()打印非空 def func(obj): if obj and obj.strip(): return True for i in filter(func,l): print(i) # test # str # END # 6- map() # [i**2 for i in range(10)] def func(num): return num**2 for i in map(func,range(10)): print(i) # 0 # 1 # 4 # 9 # 16 # 25 # 36 # 49 # 64 # 81 # 7- sorted:列表的sorted改变原列表,sorted()函数不改变原对象 l = [1,4,2,3,5,6,5] l.sort() print(l) # [1, 2, 3, 4, 5, 5, 6] l = [1,4,-2,3,-5,6,5] l.sort(key=abs) print(l) # [1, -2, 3, 4, -5, 5, 6] l = [1,4,-2,3,-5,6,5] new_1 = sorted(l, key=abs) print(new_1) # [1, -2, 3, 4, -5, 5, 6] new_1 = sorted(l, key=abs, reverse=True) print(new_1) # [6, -5, 5, 4, 3, -2, 1] l = [[1,2],[3,4,5,6],(7,),‘123‘] print(sorted(l,key=len)) # [(7,), [1, 2], ‘123‘, [3, 4, 5, 6]] # 8- len计算长度 print(len([1, 2, 3, 4, 5, 6]))
6.执行字符串eval、exec
# eval() # 执行可执行的字符串 # eval() 以字符串的形式执行代码,返回执行结果 # exec() 以字符串的形式执行代码,没有返回值 eval(‘print(1234)‘) exec(‘print(1234)‘) # 1234 # 1234 # eval() print(eval(‘1+2‘)) # 3 print(exec(‘1+2‘)) # None
以上是关于第八章 内置函数的主要内容,如果未能解决你的问题,请参考以下文章