day 15 内置函数

时间:2021-04-29 19:16:53
内置函数 不用def定义能直接用的函数,带括号的

locals()    # 返回本地作用域中的所有名字
globals()   # 返回全局作用域中的所有名字
global 变量
nonlocal 变量

迭代器.__next__()
next(迭代器)
迭代器 = iter(可迭代的)
迭代器 = 可迭代的.__iter__()

range(10)
range(1,11)
range(1,11,2)

dir 查看一个变量拥有的方法
print(dir([]))
print(dir(1))

变量
print(callable(print))
a = 1
print(callable(a))
def func():
    pass
print(callable(func))
callable() 检测是否是函数

help
help(str) 当前数据类型的可用的方法
比dir更详细的解释

import time
t = __import__('time')
print(t.time())

list.append()
list.__len__()
dir(list)

某个方法属于某个数据类型的变量,就用调用
如果某个方法不依赖于任何数据类型,就直接调用 ---- 内置函数 和 自定义函数
l = [1,2,3,4]   # l 列表句柄
l.append()

f = open('1.复习.py')
print(f.writable())
print(f.readable())

id() # 一个变量所在的内存地址
hash - 对于相同可以hash数据的hash值在一次程序的执行过程中,总是不变的
     - 字典的寻址方式
print(hash(12345)) # 能不能哈希就是看能不能执行hash函数
print(hash('asdfghjkl'))
print(hash('asdfghjkl'))
print(hash('asdfghjkl'))
print(hash('asdfghjkl'))
print(hash(('1', 'aaa')))
print(hash([]))

对于相同可以hash数据的hash值在一次程序的执行过程中,总是不变的

字典的key可hash,将hash后的key值对应一个内存地址,存放value

ret = input('input here:>>>')
print(ret)


print('我们的祖国是花园',end='')  # 指定输出的结束符
print('我们的祖国是花园',end='')

print(1,2,3,4,5,sep='|')    # 指定输出多个值之间的分隔符
f = open('file','w')
print('aaaa',file=f)
f.close()

import time
for i in range(0, 101, 2):
    time.sleep(0.1)
    char_num = i // 2  # // 除法向下取整
    per_str = '\r%s%% : %s\n' % (i, '*' * char_num)if i == 100 else '\r%s%% : %s' % (i, '*' * char_num)
    # 第一个'*'是星号,第二个 * 是乘号
    # /r : 作用: 回到行首,重新运行
    print(per_str, end='', flush=True)
progress Bar,进度条函数

exec('print(123)')
eval('print(123)')
print(1+2+3+4)
print(exec('1+2+3+4'))      # exec 没有return
print(eval('1+2+3+4'))      # eval 有返回值
exec和eval都可以执行 字符串类信号的代码
eval有返回值 ----- 有结果的简单计算
exec 没有返回值 ------ 简单流程控制
eval只能用在你明确知道你要执行的代码是什么

code = '''for i in range(10):
    print(i*'*')
'''
exec(code)

compile 编字符代码为机械码 :exec流程类,eval计算类,single交互类
code1 = 'for i in range(10): print(i)'
compile1 = compile(code1, '', 'exec')
exec(compile1)

code3 = 'name = input("input your name>>>")'
compile3 = compile(code3, '', 'single')
exec(compile3) #执行时显示交互命令,提示输入
print(name)
name执行后,name有值

复数 ------ complex 复合的数 5 + 12j [j是虚数]

进制转换 bin oct hex

绝对值
print(abs(-5))

divmod 除数(求商),余数
print(divmod(7,3))

round 精确,保留小数位数
re = round(3.14159, 2)
print(re)

pow 幂运算
print(pow(2, 3))   # 幂运算,2的3次方 == 2**3
print(pow(3, 2, 2))   # 幂运算后取余,3的2次方后对2取余

sum(iterable,start)
ret = sum([1,2,3,4,5])
print(ret)

min ; max 可以指定一个判断条件
min(1,2,3,-5) # return -5
min(1,2,3,-5,key = abs) # return 1;因为此时的判断依据设成了 abs 绝对值