# print(locals())#返回本地作用域的所有名字
# print(globals())#返回全局作用域的所有名字
# #global全局变量
# #nonlocal局部变量
# #dir()查看所拥有的方法
# #colable()查看这个函数能否被调用,如果能被调用返回True
# #print(colable(print))
# help(str)#能够查看 所有的str的方法
# import time
# __import__(time)
# print(time.time())
# list.append()
# list.__len__()
#某种方法属于某种数据类型,这种方法就可以被调用
# #如果某种方法不依赖于任何数据类型,这种方法直接就可以被调用--------内置函数,和自己定义的
# l=[1,23,3,4]#句柄,相当于一个文件句柄
# f=open("1.txt")
# print(f.writable())
# print(f.readable())
#print(hash(1222335))#对于相同的数据在一个函数中hash值是不变的
#print(hash("faeeaffea"))#这个函数用于判断数据有没有改变,例如500万个字符,有一个字符串改变,它的值就会改变,
#把可hash的数据类型转化为一串数字,如果是数字的话,就会直接输出
#字典的寻值方式,hash(key)----->value
# print("我们是祖国的花朵",end="")
# print("我们是祖国的花朵",end="")
# print(1,2,3,4,sep='|')#指定多个元素之间的分割符
f=open("file","w")
print("faaaa",file=f)#file默认输出到屏幕,如果设置成文件句柄,输出到文件
# import time
# for i in range(1,101,2):
# time.sleep(0.1)
# char_num=i//2
# per_str="
%s%% :%s
"%(i,'*'*char_num)
# if i==100 else "
%s%% :%s" % (i,'*'*char_num)
# print(per_str,end="",flush=True)#fluch把内容输出到流文件,不需要缓存
# eval((print(1+2+3+4)))#先执行再返回,并且返回结果
# print(exec(1+2+3+4))#实际计算了,但是没有返回值
#eval适合处理有结果的,简单计算,明确你要执行的代码是什么
#evec适合处理流程-----简单流程控制
#eval能明确知道你要执行的代码是什么
# code='''for i in range(10):
# print(i*'*')
# '''
# exec(code)
# code1="1+2+3+4"
# compile2=compile(code1,'','eval')
# print(eval(compile2))
# code3='name=input("请输入你的名字:")'
#执行前name变量不存在
# compile8=compile(code3,'','single')
# print(exec(compile8))#执行时显示交互命令,提示输入
# print(name)#执行后name有值
# print(abs(-5))#求绝对值
#
print(round(3.1415926,3))#保留3位小数
print(pow(2,3))#做幂运算
print(pow(2,3,2))#再这里表示的是2*3/2的余数
#min([1,2,3,4,-5 key=abs])#之所以加了[]是把它变成可迭代的,然后再求最小值
max([1,2,3,4,-5 key=abs])先变成绝对值然后再求u最大值