Python基础练习之常用内置函数(11-20)
11、callable()
作用
用于检查一个对象是否是可调用的。如果返回 True,object 仍然可能调用失败;但如果返回 False,调用对象 object 绝对不会成功。对于函数、方法、lambda 函式、 类以及实现了 call 方法的类实例, 它都返回 True。
海轰的理解:重点在是否可以被调用
测试demo
#!/usr/bin/python3
# False 易错
print(callable(0))
# False 易错
print(callable("runoob"))
# False 易错
x="xxx"
print(callable(x))
def add(a, b):
return a+b
# 函数返回 True
print(callable(add))
class A:
def method(self):
return 0
# 类返回 True
print(callable(A))
a = A()
# 没有实现 __call__, 返回 False
print(callable(a))
class B:
def __call__(self):
return 0
# True
print(callable(B))
b = B()
# 实现 __call__, 返回 True
print(callable(b))
运行结果
12、chr()
作用
用一个范围在 range(256)内的(就是0~255)整数作参数,返回一个对应的字符。返回值是当前整数对应的 ASCII 字符。
语法
chr(i)
参数:i -- 可以是10进制也可以是16进制的形式的数字。
测试demo
#!/usr/bin/python3
#十六进制 转acsii字符
print(chr(0x30))
print(chr(0x31))
print(chr(0x61))
#十进制 转acsii字符
print(chr(48))
print(chr(49))
print(chr(97))
运行结果
13、ord()
作用
以一个字符(长度为1的字符串)作为参数,返回对应的 ASCII 数值,或者 Unicode 数值,如果所给的 Unicode 字符超出了你的 Python 定义范围,则会引发一个 TypeError 的异常。
测试demo
#!/usr/bin/python3
#ord
print(ord('A'))
print(ord('a'))
运行结果
14、compile()
作用
将一个字符串编译为字节代码。
测试demo
#!/usr/bin/python3
s = "print('helloworld')"
r = compile(s,"", "exec")
print(r)
#执行s表示的代码语句
exec(r)
运行结果
15、complex()
作用
用于创建一个值为 real + imag * j 的复数或者转化一个字符串或数为复数。如果第一个参数为字符串,则不需要指定第二个参数。
测试demo
#!/usr/bin/python3
# 1+2j
print(complex(1,2))
#处理数字 1+0j
print(complex(1))
#处理字符串 2+0j
print(complex('2'))
# 注意:这个地方在"+"号两边不能有空格,也就是不能写成"1 + 2j",应该是"1+2j",否则会报错 1+2j
print(complex('1+2j'))
运行结果
16、delattr()
作用
用于删除对象的属性
语法
delattr(object, name)
参数
object -- 对象。
name -- 必须是对象的属性。
测试demo
#!/usr/bin/python3
class Coordinate:
x = 10
y = -5
z = 0
point1 = Coordinate()
print('--删除 z 属性前--')
print('x = ',point1.x)
print('y = ',point1.y)
print('z = ',point1.z)
delattr(Coordinate, 'z')
print('--删除 z 属性后--')
print('x = ',point1.x)
print('y = ',point1.y)
# 触发错误
print('z = ',point1.z)
运行结果
17、hasattr()
作用
用于判断对象是否包含对应的属性
语法
hasattr(object, name)
参数
object -- 对象。
name -- 字符串,属性名。
返回值
如果对象有该属性返回 True,否则返回 False。
测试demo
#!/usr/bin/python3
class Coordinate:
x = 10
y = -5
z = 0
point1 = Coordinate()
print(hasattr(point1, 'x'))
print(hasattr(point1, 'y'))
print(hasattr(point1, 'z'))
print(hasattr(point1, 'no')) # 没有该属性
运行结果
18、dict()
作用
用于创建一个字典
语法
class dict(**kwarg)
class dict(mapping, **kwarg)
class dict(iterable, **kwarg)
参数说明:
**kwargs -- 关键字
mapping -- 元素的容器
iterable -- 可迭代对象
返回值:
返回一个字典
测试demo
#!/usr/bin/python3
# 创建空字典
print(dict())
# 传入关键字
print(dict(a='a', b='b', t='t'))
# 映射函数方式来构造字典
print(dict(zip(['one', 'two', 'three'], [1, 2, 3])))
# 可迭代对象方式来构造字典
print(dict([('one', 1), ('two', 2), ('three', 3)]))
运行结果
19、zip()
作用
用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。
语法
zip([iterable, ...])
参数说明:
iterabl -- 一个或多个迭代器;
返回值:
返回元组列表。
测试demo
#!/usr/bin/python3
a = [1,2,3]
b = [4,5,6]
c = [4,5,6,7,8]
#在 Python 3.x 中为了减少内存,zip() 返回的是一个对象。如需展示列表,需手动 list() 转换。
print(list(zip(a,b)))
#如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同
print(list(zip(a,c)))
运行结果
20、divmod()
作用
把除数和余数运算结果结合起来,返回一个包含商和余数的元组(a // b, a % b)。
语法
divmod(a, b)
参数说明:
a: 数字
b: 数字
测试demo
#!/usr/bin/python3
print(divmod(7,2))
print(divmod(10,4))
运行结果
参考资料
https://www.runoob.com/python/python-built-in-functions.html