python 14 days

python 14 days

python之内置函数,匿名函数

内置函数:

1.1作用域相关

locals :函数会以字典的类型返回当前位置的全部局部变量。

globals:函数以字典的类型返回全部全局变量。

q = 666
def wrapper(argv):
    a = 3
    print(locals())  # 1 {a:3,argv:2}
    def inner(argv1):
        b = 4
        c = 5
        print(locals())  # 2 {b:4 c:5,argv1:6}
    inner(6)
#
wrapper(2)
print(globals())  # 3
例题
{'a': 3, 'argv': 2}
{'c': 5, 'b': 4, 'argv1': 6}
{'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <_frozen_importlib_external.SourceFileLoader....
结果

 

这两个一样,因为是在全局执行的。

a = 1
b = 2
print(locals())
print(globals())
例题展示

 

这两个不一样,locals() {'argv': 3, 'c': 2}

def func(argv):
    c = 2
    print(locals())
    print(globals())
func(3)
例题展示

 

1.2其他相关

1.2.1 字符串类型代码的执行 eval,exec,complie

eval:去除字符串的引号,返回对应内部的值

s = '{"a":1,"b":3}'
dic = eval(s)
print(dic,type(dic))
print(eval('2 + 2'))
print(eval('print(666)'))
例题展示
{'a': 1, 'b': 3} <class 'dict'>
4
666
None
结果展示

exec:执行字符串内部的代码

print(exec('1 + 1'))
例题展示
None
结果展示

 

ret = '''
name = input('请输入名字:').strip()
if name == 'alex':
    print(666)
'''
exec(ret)
例题展示
请输入名字:alex
666
结果展示

compile:将字符串类型的代码编译。代码对象能够通过exec语句来执行或者eval()进行求值。

compile:pass

1.2.2输入输出相关:input,  print

input:

name = input('请%s输入名字:' % 'alex')
print(name)
例题展示
请alex输入名字:alex
alex
结果展示

print:

print(1, 2, 3,sep='*')  # 设定打印元素的连接方式
print('alex', end='')  # end控制的是换行
print('老男孩')
例题展示
1*2*3
alex老男孩
结果展示

print的操作文件句柄,写入文件

f1 = open('log', encoding='utf-8', mode='w')
print('666', file=f1)  # file 操作文件句柄,写入文件。
f1.close()
例题展示
666
结果展示

1.2.3内存相关 hash  id

hash 将不可变的数据通过hash算法转化成hash值

hash:

rint(hash('name'))
print(hash('age'))
print(hash((1, 2, 3,)))
print(hash(1))
print(hash(1))
print(hash(100))
例题展示
-213739849721140791
2048003905372590584
2528502973977326415
1
1
100
结果展示

id :

print(id('name'))
例题展示
1997741681552
结果展示

 

1.2.3文件操作相关

open:函数用于打开一个文件,创建一个 file 对象,相关的方法才可以调用它进行读写。

 

1.2.4模块相关__import__

__import__:函数用于动态加载类和函数 。

 

1.2.5 帮助

help:函数用于查看函数或模块用途的详细说明。

print(help(str))

 

1.2.6调用相关

callable:函数用于检查一个对象是否是可调用的。

如果返回True,object仍然可能调用失败;但如果返回False,调用对象ojbect绝对不会成功。

def func1():
    print(666)

age = 16
print(callable('name'))
print(callable(age))
print(callable(func1))
例题展示
False
False
True
结果展示

 

1.2.7查看内置属性

dir:函数不带参数时,返回当前范围内的变量、方法和定义的类型列表;

带参数时,返回参数的属性、方法列表。如果参数包含方法__dir__(),该方法将被调用。如果参数不包含__dir__(),该方法将最大限度地收集参数信息。

print(dir(str))
例题展示
['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__',.................
结果展示i

 

1.3 迭代器生成器相关

l = [1, 2, 3, 4, 5]
l_obj = l.__iter__()
l_obj = iter(l)
print(l_obj)
print(l_obj.__next__())
print(next(l_obj))
例题展示
<list_iterator object at 0x0000022A11BCC6A0>
1
2
结果展示

 

1.4.1数字相关

数据类型(4):

bool :用于将给定参数转换为布尔类型,如果没有参数,返回 False。

int:函数用于将一个字符串或数字转换为整型。

print(int(1.234))
print(int(1.768))
例题展示
123
1
1
结果展示

 

float:函数用于将整数和字符串转换成浮点数。

complex:函数用于创建一个值为 real + imag * j 的复数或者转化一个字符串或数为复数。

如果第一个参数为字符串,则不需要指定第二个参数。。

i = 3.1415
print(i, type(i))
s = '1.234'
print(int(1.234))
print(float(s))
print(float(100))
例题展示
3.1415 <class 'float'>
1
1.234
100.0
结果展示

 

bin:将十进制转换成二进制并返回。

print(bin(100))

oct:将十进制转化成八进制字符串并返回。

print(oct(10))

hex:将十进制转化成十六进制字符串并返回。

print(hex(13))

print(hex(18))

 

数学运算

 abs:函数返回数字的绝对值。

print(abs(-5))
例题展示
 



5
结果展示

 

divmod:计算除数与被除数的结果,返回一个包含商和余数的元组(a // b, a % b)。

print(divmod(7, 3))
例题展示
(2, 1)
结果展示

 

round:保留浮点数的小数位数,默认保留整数。

 

print(round(1.234,2))
例题展示
1.23
结果展示

 

pow:求x**y次幂。(三个参数为x**y的结果对z取余)

print(pow(2, 3)) # 2的三次幂
例题展示
8
结果展示
print(pow(2, 3, 3))  # 2的三次幂对3取余数
例题展示
2
结果展示i

 

sum:对可迭代对象进行求和计算(可设置初始值)。

print(sum([1, 2, 3, 4]))
print(sum([1, 2, 3, 4], 100))
例题展示
10
110
结果展示

 

min:返回可迭代对象的最小值(可加key,key为函数名,通过函数的规则,返回最小值)。

 

print(min([1, 3, 5, 7, -4]))
print(min([1, 3, 5, 7, -4], key=abs))
例题展示
-4
1
结果展示

 

posted @ 2018-06-05 21:11  鞠先生  阅读(377)  评论(0编辑  收藏  举报