Python标准内置函数(01-05)

版权声明:CSDN原创,请尊重三叔的版权,进Python学习乐园 群: 668758148,大家一起学习! https://blog.csdn.net/asd343442/article/details/84110784

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)的区别

  1. 函数all(iterable):"有‘假’为False,全‘真’为True,iterable为空是True"
  2. 函数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)

猜你喜欢

转载自blog.csdn.net/asd343442/article/details/84110784