06-12 内置函数介绍

1. all

"""
如果bool(x)对迭代中的所有x值都为真,则返回True。(作用: 利用第一个特性, 判断用户输入内容是否有空)
如果iterable为空,则返回True
"""
print(all([1, 2, '']))  # False
print(all([]))  # True

2. dir

"""
dir([object]) -> 返回值为: 字符串列表
如果没有参数调用: 则返回当前范围中的名称。否则,返回包含(一些)属性的按字母顺序排列的名称列表给定对象的属性,以及从该对象可以访问的属性。
如果对象提供了一个名为__dir__的方法,则使用该方法;否则使用默认的dir()逻辑并返回:
    模块对象: 模块的属性。
    对于一个类对象: 它的属性,递归的属性, 它的基类。
    对于任何其他对象: 它的属性、类的属性和递归地表示类的基类的属性
    
作用:	
	可以查看某一个对象下可以有哪些属性. 返回属性列表, 值都是字符串类型.    
"""
# 没有参数调用
print(dir())

# 有参数调用
class Foo:
    pass
print(dir(Foo))  # print(Foo.__dir__)

3. divmod

"""
返回元组(x//y, x%y)。 
第一个参数: 返回整除数
第二个参数: 返回余数
"""
print(divmod(10, 4))  # (2, 2)
print(divmod(10, 3))  # (3, 1)

4. enumerate

"""
# print(help(enumerate))
enumerate(iterable, start=0) 返回一个枚举对象。
enumerate对象生成包含计数(从开始, 默认为0)和由iterable参数生成的值的对。
枚举对于获得索引列表很有用: 
    (0, seq[0]), (1, seq[1]), (2, seq[2]), ...  # seq 序列
"""
for index, item in enumerate(['a', 'b', 'c']):
    print(index, item)

5. isinstance

"""
返回对象是否是类的实例, 或者是由该类创建的实例.(作用: 用于类型判断, 判断一个值是否是某个类型)
"""
# 对象1是否是"int"类的实例
print(isinstance(1, int))
print(isinstance(1, str))

# "obj"是由该"Foo"类创建的实例.
class Foo:
    pass
obj = Foo()
print(isinstance(obj, Foo))  # True

# 不推荐使用:
print(type(1) is int)  # True

6. __import__

"""
通过转换字符串变成导入模块的形式, 拿到的返回值可以进行模块的操作(作用: 一般用于从文件中读取字符串, 通过这个类似模块的名字使用__import__实现导入模块执行功能的操作)
"""
time = __import__('time')
print(time.time())

二. 不常用的内置函数

1. abs

"""
返回参数的绝对值。
"""
print(abs(-1))

2. any

"""
如果bool(x)对迭代中的任意x都为真,则返回真。
如果iterable为空,则返回False。
"""
print(any([0, None, 1]))
print(any([]))

3. bin, oct, hex

"""
返回整数的二进制表示形式。
>>> bin(2796202)
'0b1010101010101010101010'
"""
print(bin(97))

"""
返回整数的八进制表示形式.
>>> oct(342391)
'0o1234567'
"""
print(oct(97))

"""
返回一个整数的十六进制表示形式.
>>> hex(12648430)
'0xc0ffee'
"""
print(hex(97))

4. callable

"""
返回对象是否可调用某种功能。
注意: 类是可调用的,类的实例也是可调用的
"""
def func():
    pass

class Foo:
    pass

print(callable(func))
print(callable(Foo))

5. chr, ord

"""
返回一个包含序号i的一个字符的Unicode字符串; 
0 <= i <= 0x10ffff.  # print(int('0x10ffff', 16))  # 1114111
"""
print(chr(65))  # A
print(chr(65 + 25))  # Z
# chr(-1)  # ValueError: chr() arg not in range(0x110000)

"""
返回一个单字符字符串的Unicode编码点
"""
print(ord('a'))  # 97

6. frozenset

"""
不可变集合. 可以使用print(help(s))查看用法
"""
s = frozenset({1, 2, 3})
print(s, type(s))  # frozenset({1, 2, 3}) <class 'frozenset'>

7. hash

"""
返回给定对象的哈希值。判断对象是否是可哈希的类型. 不可变类型是可被哈希的: 整数,浮点数,字符串,元组,不可变集合等等
"""
print(hash(111))  # 111
print(hash(111.1111))  # 256179158323626095
print(hash('hello world'))  # 3482440874574981704
print(hash((1, 2, 3)))  # 529344067295497451
print(hash(frozenset({1, 2, 3})))  # -272375401224217160

8. pow

"""
有2个参数: 基数 ** 指数 = 商
有3个参数: 基数 ** 指数 % 除数 = 余数
某些类型,如int,能够使用更有效的算法
"""
print(pow(10, 2))  # 100
print(pow(10, 2, 3))  # 1  # print(10 ** 2 % 3)

9. round

"""
将一个数字四舍五入到给定到十进制精度。
如果省略了ndigits或没有,则返回值为整数。否则返回值的类型与数字相同。ndigits可能是负数。
补充: ndigit 是自定义变量或自定义函数名。 意思是数字的个数。 digit是数字的意思,n是个数的意思
"""
# 第二个参数是ndigits, 指定的是第一个参数的保留个数
print(round(1.4))  # 1   注意: 没有指定ndigits返回整数, 支持四舍五入
print(round(1.5))  # 2

print(round(1.5, 2))  # 1.5
print(round(1.50, 3))  # 1.5  注意: 不会保留分数位后的0
print(round(1.55, 3))  # 1.55
print(round(1.55, 3))  # 1.55

print(round(-1111.2, -1))  # -1110.0
print(round(-1111.2, -2))  # -1100.0

10. slice

"""
# print(help(slice))
slice(stop)
slice(start, stop[, step])
 
创建一个切片对象。这是用于扩展切片.
"""
li = [1, 2, 3, 4, 5, 6, 7]
res = slice(1, 3, 1)
print(res)  # slice(1, 3, 1)
print(li[res])  # print(li[1:3: 1])

posted @ 2020-04-11 01:23  给你加马桶唱疏通  阅读(164)  评论(0编辑  收藏  举报