1.1 函数abs(x)
在Python程序中,函数abs(x)的功能是返回参数“x”的绝对值,参数“x”可以是一个整数或浮点数。如果参数“x”是一个复数,则返回其大小。例如在下面的实例文件abs.py中,演示了使用函数abs()返回指定数字绝对值的过程。
print ("abs(-40) : ", abs(-40))
print ("abs(100.10) : ", abs(100.10))
执行后会输出:
abs(-40) : 40
abs(100.10) : 100.1
因为函数abs(x)是一个标准内置函数,所以在程序中不需要导入import 语句就可以使用。
1.2 函数all(iterable)
在Python程序中,函数all(iterable)的功能是如果可迭代的对象的所有元素全部非空(或者空迭代对象),就返回True。当参数“iterable”的元素都不为false、''、0或者iterable为空时,则all(iterable)的值为True,也就是说只要iterable元素有一个为"假",则为False,"全‘真’为True,有‘假’为False"。
函数all(iterable)主要用于判断列表、元组、字典等对象是否有空元素,比如有10000个元素的列表,如果没有提供此函数,需要使用循环来实现,那么计算速度会比较慢。
函数all(iterable)等同于下面代码的功能:
def all(iterable):
for element in iterable:
if not element:
return False
return True
例如在下面的实例文件kong.py中,演示了使用函数all(iterable)处理列表和元组的过程。
print( all(['a', 'b', 'c', 'd'])) # 列表list,元素都不为空或0
print(all(['a', 'b', '', 'd'])) # 列表list,存在一个为空的元素
print(all([0, 1, 2, 3])) # 列表list,存在一个为0的元素
print(all(('a', 'b', 'c', 'd'))) # 元组tuple,元素都不为空或0
print(all(('a', 'b', '', 'd'))) # 元组tuple,存在一个为空的元素
print(all((0, 1, 2, 3))) # 元组tuple,存在一个为0的元素
print(all([])) # 空列表
print(all(())) # 空元组
执行后会输出:
True
False
False
True
False
False
True
True
1.3 函数any(iterable)
在Python程序中,函数any(iterable)的功能是如果参数“iterable”中的任何一个元素为True,则返回 True。如果参数“iterable”为空(empty),则返回 False。也就是说,当所有的iterable都为假时any(iterable)为False。参数“iterable”是一个元组或列表。
函数any(iterable)等同于如下所示代码的功能。
def any(iterable):
for element in iterable:
if element:
return True
return False
例如在下面的实例文件any.py中,演示了使用函数any(iterable)处理列表和元组的过程。
print(any(['a',(2,4),3,True]) )
print(any(['a',(2,4),3,False]))
print(any(['a',(),3,False]) )
print(any(['',(),0,False]) )
print(any(('a',(),3,False)))
print(any(('',(),0,False)) )
print(any(()))
print(any([]))
print(any(''))
执行后会输出:
True
True
True
False
True
False
False
False
False
注意:函数all(iterable)和any(iterable)的区别
- 函数all(iterable):"有‘假’为False,全‘真’为True,iterable为空是True";
- 函数any(iterable):"有‘真’为True,全‘假’为False,iterable为空是False"。
1.4 函数ascii(object)
在Python程序中,函数ascii(object)的功能是返回一个可打印的对象字符串。当遇到非ASCII码时,就会输出\x、\u或\U等字符。与Python 2版本里的repr()函数是等效的。例如在下面的实例文件as.py中,演示了使用函数ascii(object)处理不同参数对象的过程。
print(ascii(1))
print(ascii('&'))
print(ascii(9000000))
print(ascii('中文')) #非ascii字符
执行后会输出:
1
'&'
9000000
'\u4e2d\u6587'
1.5 函数bin()
在Python程序中,函数bin()的功能是返回一个整数 int 或者长整数 long int 的二进制表示。使用函数bin()的语法格式如下所示:
bin(x)
参数“x”是一个int类型或者long int类型的数字。返回值将是一个合法的Python表达式。如果 x 不是int 类型的对象,那么就定义一个__index__()方法返回一个整数。
例如在下面的实例文件er.py中,演示了使用函数bin()处理整数的过程。
b = bin(3)
print(b)
print(type(b)) #获取b的类型
class C:
def __index__(self):
return 3
c = C()
print(bin(c))
在上述代码中,首先将变量b中整形数字转换成二进制字符串,然后在类C对象中定义了__index__()方法,设置其返回值是整数,并将__index__()方法返回值转换成二进制字符串。执行后会输出:
0b11
<class 'str'>
0b11
在Python程序中,如果参数x不是一个整数,则x必须定义一个__index__() 方法,并且方法返回值必须是整数。如果对象不是整数,执行程序后会发生报错。如果在对象中定义了__index__()方法,但返回值不是整数也会发生报错。例如在下面的实例文件er1.py中,演示了使用函数bin()处理非整数发生报错的过程。
class A:
pass
a = A()
print(bin(a))
class B:
def __index__(self):
return "3"
b = B()
print(bin(b))
执行后会先后输出:
Traceback (most recent call last):
File "<pyshell#15>", line 1, in <module>
bin(a)
TypeError: 'A' object cannot be interpreted as an integer
Traceback (most recent call last):
File "<pyshell#21>", line 1, in <module>
bin(b)
TypeError: __index__ returned non-int (type str)