Python常用函数总结二(complex, delattr, divmod, enumerate, eval)

来源:互联网 发布:淘宝靠谱的美国代购 编辑:程序博客网 时间:2024/06/09 18:04

complex()函数

complex([real[, imag]])创建一个值为real + imag * j的复数或者转化一个字符串或数为复数。如果第一个参数为字符串,则不需要指定第二个参数。

参数real: int, long, float或字符串;

参数imag: int, long, float。

>>> complex(1, 2)(1 + 2j)#数字>>> complex(1)(1 + 0j)#当做字符串处理>>> complex("1")(1 + 0j)#注意:这个地方在“+”号两边不能有空格,也就是不能写成"1 + 2j",应该是"1+2j",否则会报错>>> complex("1+2j")(1 + 2j)

delattr()函数

删除object对象名为name的属性。这个函数的命名真是简单易懂啊,和jquery里面差不多,但是功能不一样哦,注意一下。

>>> class Person:...     def __init__(self, name, age):...             self.name = name...             self.age = age...>>> tom = Person("Tom", 35)>>> dir(tom)['__doc__', '__init__', '__module__', 'age', 'name']>>> delattr(tom, "age")>>> dir(tom)['__doc__', '__init__', '__module__', 'name']

divmod()函数

divmod(a,b)方法返回的是a//b(除法取整)以及a对b的余数返回结果类型为tuple

>>> divmod(9,2)(4, 1)>>> divmod(11,3)(3, 2)>>> divmod(1+2j,1+0.5j)((1+0j), 1.5j)

enumerate()函数

函数原型:enumerate(sequence, [start=0])

功能:将可循环序列sequence以start开始分别列出序列数据和数据下标

即对一个可遍历的数据对象(如列表、元组或字符串),enumerate会将该数据对象组合为一个索引序列,同时列出数据和数据下标。

import strings = string.ascii_lowercasee = enumerate(s)print sprint list(e)abcdefghij[(0, 'a'), (1, 'b'), (2, 'c'), (3, 'd'), (4, 'e'), (5, 'f'), (6, 'g'), (7, 'h'), (8, 'i'), (9, 'j')]

eval()函数

eval(expression, globals=None, locals=None)

将字符串str当成有效的表达式来求值并返回计算结果。globals和locals参数是可选的,如果提供了globals参数,那么它必须是dictionary类型;如果提供了locals参数,那么它可以是任意的map对象。

python的全局名字空间存储在一个叫globals()的dict对象中;局部名字空间存储在一个叫locals()的dict对象中。我们可以用print (locals())来查看该函数体内的所有变量名和变量值。

x = 1y = 1num1 = eval("x+y")print (num1)def g():        x = 2        y = 2      num3 = eval("x+y")        print (num3)            num2 = eval("x+y",globals())       #num2 = eval("x+y",globals(),locals())        print (num2)g()

num1的值是2;num3的值也很好理解,是4;num2的值呢?由于提供#了globals()参数,那么首先应当找全局的x和y值,也就是都为1,那么显而易见,num2的值也是2。如果注释掉该句,执行下面一句呢?根据第3)点可知,结果为4。

原创粉丝点击