内置函数

发布时间 2024-01-04 21:13:10作者: dhyuannn

【一】什么是内置函数?

  • 内置函数就是Python给你提供的, 拿来直接用的函数,比如print,input等。
Built-in Functions
Aabs()aiter()all()any()anext()ascii()
Bbin()bool()breakpoint()bytearray()bytes()
Ccallable()chr()classmethod()compile()complex()
Ddelattr()dict()dir()divmod()
Eenumerate()eval()exec()
Ffilter()float()format()frozenset()
Ggetattr()globals()
Hhasattr()hash()help()hex()
Iid()input()int()isinstance()issubclass()iter()
Llen()list()locals()
Mmap()max()memoryview()min()
Nnext()
Oobject()oct()open()ord()
Ppow()print()property()
Rrange()repr()reversed()round()
Sset()setattr()slice()sorted()staticmethod()str()sum()super()
Ttuple()type()
Vvars()
Zzip()
___import__()
  • 和数字相关
    • 数据类型
    • 进制转换
    • 数学运算
  • 和数据结构相关
    • 序列
    • 数据集合
    • 相关内置函数
  • 和作用域相关
  • 和迭代器生成器相关
  • 字符串类型代码的执行
  • 输入输出
  • 内存相关
  • 文件操作相关
  • 模块相关
  • 帮 助
  • 调用相关
  • 查看内置属性

【二】数据类型转换(8)

【1】数字类型转换

(1)整数类型转换(int)

  • int : 整型(整数)
res = '1'
print(int(res))

(2)浮点数类型转换(float)

  • float : 浮点型(小数)
res = '1.2'
print(float(res))

【2】字符串类型转换(str)

  • str() 将数据转化成字符串

    print(str(123)+'456')
    

【3】布尔类型转换(bool)

  • bool: 布尔类型(True / False)
ddd = 1
ddd_bool = bool(ddd)
print(res_bool)
# True 

dddd = 0
dddd_bool = bool(dddd)
print(res_bool)
# False

【4】列表类型转换(list)

  • list() 将一个可迭代对象转换成列表

    print(list((1,2,3,4,5,6)))  
     
    # [1, 2, 3, 4, 5, 6]
    

【5】元祖类型转换(tuple)

  • tuple() 将一个可迭代对象转换成元组

    print(tuple([1,2,3,4,5,6]))  
    
    # (1, 2, 3, 4, 5, 6)
    

【6】字典类型转换(dict)

  • 字典:dict 创建一个字典
  • 注释: dict() 函数可接受可迭代对象,用键值对初始化字典。
dic = dict([(1, 'd'), (2, 'h'), (3, 'y)])
print(dic)
# {1: 'd', 2: 'h', 3: 'y'}

【7】集合类型转换(set)

  • 集合:set 创建一个集合
  • 注释: set() 函数用于创建一个集合,自动去除重复元素。
my_set = set([1, 2, 3, 3, 4, 5])
print(my_set)
# {1, 2, 3, 4, 5}

【三】数学进制转换(3)

【1】十进制转二进制(bin)

  • bin() 将给的参数转换成二进制

    number = 77
    number_bin = bin(number)
    print(number_bin) 0b1001101
    

【2】十进制转八进制(oct)

  • oct() 将给的参数转换成八进制

    number = 77
    number_oct = oct(number)
    print(number_oct)  # 0o115
    

【3】十进制转十六进制(hex)

  • hex() 将给的参数转换成十六进制

    number = 77
    number_hex = hex(number)
    print(number_hex)  # 0x4d
    

【四】数学运算(8)

(1)获取绝对值(abs)

  • abs() 返回绝对值

    number = -99
    print(abs(number)) #99
    

(2)获取商和余数(divmod)

  • divmod() 返回商和余数

    number_start = 10
    number_end = 3
    
    result = divmod(number_start, number_end)
    print(result)  # (3, 1)
    

(3)四舍五入(round)

  • round() 四舍五入

    • 给定数字的四舍五入版本,有指定的小数位数。
    • 默认情况下,小数点的数量是0。
    • 因此,如果你调用 round() 时没有第二个参数,该函数将返回最近的整数。
    print(round(4.51)) # 5
    print(round(4.50)) # 4
    print(round(4.49)) # 4
    

(4)a的b次幂(pow)

  • pow(a, b) 求a的b次幂, 如果有三个参数. 则求完次幂后对第三个数取余

    print(pow(3, 5))  # 243
    print(pow(3, 3))  # 27
    print(pow(3, 3, 5))  # 2
    

(5)求和(sum)

  • sum() 求和

    print(sum([1,2,3,4,5,6,7,8,9,10]))  
    #55
    

(6)最小值(min)

  • min() 求最小值

    print(min(5,3,9,12,7,2))  
    #2
    

(7)最大值(max)

  • max() 求最大值

    print(max(7,3,15,9,4,13))  
    
    #15
    

(8)复数转换(complex)

  • complex : 复数
start = complex(3, 4)
print(start)  # (3+4j)

second = complex(5, 9)
print(second)  # (5+9j)

res = start + second
print(res) # (8+13j)

【五】数据结构相关(18)

【1】序列相关(5)

(1)翻转(reversed)

  • reversed() 将一个序列翻转, 返回翻转序列的迭代器

    list1 = [1, 2,  3, 4, 5, 6, 7,8,9,10]
    list2 = reversed(list1)
    print(list(list2))  #[10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
    

(2)切片(slice)

  • slice() 列表的切片

    list1 = [1, 2,  3, 4, 5, 6, 7,8,9,10]
    print(list1[2:9:2]) #[3, 5, 7, 9]
    s = slice(2, 9, 2)
    print(list1[s]) #[3, 5, 7, 9]
    

(3)计算长度(len)

  • len() 返回一个对象中的元素的个数
list1 = [1, 2,  3, 4, 5, 6, 7,8,9,10]

(4)排序(sorted)

  • 语法:sorted(Iterable, key=函数(排序规则), reverse=False)

    • Iterable: 可迭代对象
    • key: 排序规则(排序函数), 在sorted内部会将可迭代对象中的每一个元素传递给这个函数的参数. 根据函数运算的结果进行排序
    • reverse: 是否是倒叙. True: 倒叙, False: 正序
  • sorted() 对可迭代对象进行排序操作 (lamda)

    list1 = [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
    ll = sorted(list1)
    print(ll)#[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
    # 倒序
    l2 = sorted(ll, reverse=True)
    print(l2)#[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
    

(5)枚举(enumerate)

  • enumerate() 获取集合的枚举对象

    list1 = [1, 2,  3, 4, 5, 6, 7,8,9,10]
    for index, el in enumerate(list1, 1):
        print(index)
        print(el)
    # 1
    # 1
    # 2
    # 2
    # 3
    # 3
    ...
    

【2】字符串(4)

(1)格式化输出(format)

  • format() 与具体数据相关, 用于计算各种小数, 精算等.

    • 居中对齐方式
    d = "good morning"  # 12 个长度
    print(format(d, "^20"))  # 居  中
    #    good morning
    print(format(d, "<20"))  # 左对齐 ljust
    # good morning
    print(format(d, ">20"))  # 右对齐 rjust
    #        good morning
    
    #进制转换
    print(format(3, 'b'))  # 二进制:11
    print(format(97, 'c'))  # 转换成unicode字符:a
    print(format(11, 'd'))  # ⼗进制:11
    print(format(11, 'o'))  # 八进制:13
    print(format(11, 'x'))  # 十六进制(⼩写字母):b
    print(format(11, 'X'))  # 十六进制(大写字母):B
    print(format(11, 'n'))  # 和d⼀样:11
    print(format(11))  # 和d⼀样:11
    

(2)字符串转bytes(bytes)

  • bytes() 把字符串转化成bytes类型

    print(bytes('你好', encoding='utf8'))  # b'\xe4\xbd\xa0\xe5\xa5\xbd'
    

(3)获取字节数组(bytearray)

  • bytearray()

    • 返回一个新字节数组. 这个数字的元素是可变的, 并且每个元素的值得范围是[0,256)

      data = bytearray('戴戴戴', encoding='utf8')
      print(list(res))#[230, 136, 180, 230, 136, 180, 230, 136, 180]
      

(4)返回对象的字符串格式(repr)

  • repr() 返回一个对象的string形式

    word = "今天\n天气%s真\t好" % 3
    print(repr(word))
    # '今天\n天气3真\t好' 不管百分号
    

【3】字符编码(3)

(1)字符编码找数字(ord)

  • ord() 输入字符找带字符编码的位置

    print(ord('A'))  # 65
    

(2)数字找字符编码(chr)

  • chr() 输入位置数字找出对应的字符

    print(chr(65))  #A
    

(3)数字找ASCII码(ascii)

  • ascii() 是ascii码中的返回该值 不是就返回u

    for i in range(65536):
        print(chr(i), end=" ")
    print(ascii("戴"))  #'戴'
    

【4】数据集合(1)

  • 创建一个冻结的集合(frozenset)
  • frozenset() 创建一个冻结的集合,冻结的集合不能进行添加和删除操作。
  • 注释: frozenset() 函数返回一个不可变的 frozenset 对象,适用于作为字典的键或集合的元素。
num1= {1, 2, 3}
num1.add(9)
print(num1)  # {1, 2, 3, 9}
num1= {1, 2, 3, 4, 5}
frozen1 = frozenset(num1)
print(frozen1)  # frozenset({1, 2, 3, 4, 5})
num1.add(9)
print(num1)  # {1, 2, 3, 4, 5, 9}

【5】判断条件(2)

(1)所有为真(all)

  • all() 可迭代对象中全部是True, 结果才是True

    if 1 and 'good' and []:
        print(True)
    else:
        print(False)
    print(all([1, 'good', []]))
    

(2)任意为真(any)

  • any() 可迭代对象中有一个是True, 结果就是True

    print(any([1, '', []]))
    

【6】高阶函数(3)

(1)打包(zip)

  • zip() 函数
    • 用于将可迭代的对象作为参数
    • 将对象中对应的元素打包成一个元组
    • 然后返回由这些元组组成的列表.
  • 如果各个迭代器的元素个数不一致, 则返回列表长度与最短的对象相同
# zipper : 拉链函数
lst1 = [1, 2, 3, 4, 5, 6]
lst2 = ['醉乡民谣', '驴得水', '放牛班的春天', '美丽人生', '辩护人', '被嫌弃的松子的一生']
lst3 = ['美国', '中国', '法国', '意大利', '韩国']
for el in zip(lst1, lst2, lst3):
    print(el)

(2)过滤(filter)

  • 语法:fiter(function. Iterable)
    • function: 用来筛选的函数.
      • 在filter中会自动的把iterable中的元素传递给function.
      • 然后根据function返回的True或者False来判断是否保留留此项数据
    • Iterable: 可迭代对象
  • filter() 过滤 (lamda)
def func(i):
    return i % 2 == 1
lst = [1, 2, 3, 4, 5, 6, 7, 8, 9]
l1 = []
for i in lst:
    if func(i):
        l1.append(i)
print(l1)  # [1, 3, 5, 7, 9]
l1 = filter(func, lst)
print(list(l1))  # [1, 3, 5, 7, 9]

(3)映射(map)

  • 语法 : map(function, iterable)
    • 可以对可迭代对象中的每一个元素进行映射. 分别去执行 function
  • map() 会根据提供的函数对指定序列列做映射(lamda)
def func(i):
    return i ** 2
num = [1, 2, 3, 4, 5, 6, 7, 8, 9]
print(list(map(func, num)))  # [1, 4, 9, 16, 25, 36, 49, 64, 81]
print(list(map(lambda x: x ** 2, (1, 2, 3, 4, 5, 6))))  # [1, 4, 9, 16, 25, 36]

【六】作用域(2)

  • locals() 返回当前作用域中的名字
  • globals() 返回全局作用域中的名字
name = "dhy"
def func():
    a = 111
    print(f"作用域 :>>>> {locals()}")
    print(f"全局作用域 :>>>> {globals()}")
func()
#作用域 :>>>> {'a': 111}
#全局作用域 :>>>> {'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x0000019575B382B0>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, '__file__': 'F:\\shanghai\\day27_ATM\\interface\\bank_interface.py', '__cached__': None, 'name': 'dhy', 'func': <function func at 0x0000019575A551F0>}

【七】迭代器生成器(3)

【1】循环生成数据(range)

  • range() 生成数据
for i in range(5):
    print(i)
#0
1
2
3
4

【2】获取迭代器(iter)

  • iter()
  • 获取迭代器, 内部实际使用的是__ iter__()方法来获取迭代器
num_list = [1, 2, 3]

num_iter = iter(num_list)
print(num_iter)  # <list_iterator object at 0x000002F5BB5F3E80>

【3】向下执行(next)

  • next()
  • 迭代器向下执行一次, 内部实际使用了__ next__()方法返回迭代器的下一个项目
num_iter = iter([1, 2, 3])
print(num_iter)  # <list_iterator object at 0x000001E10F901F10>
print(next(num_iter))  # 1
print(next(num_iter))  # 2
print(next(num_iter))  # 3

【八】字符串类型代码的执行(3)

【1】指定指令并返回结果(eval)

  • eval() 执行字符串类型的代码. 并返回最终结果

    user_input = input("输入数字: ")
    result = eval(user_input)
    print("结果:", result)
    #2+2
    #4
    

【2】指定指令不返回结果(exec)

  • exec() 执行字符串类型的代码

    user_input = input("请输入一个数学表达式: ")
    result = exec(user_input)
    print("结果:", result)
    #2+2
    #None
    

【3】编码指令

  • compile() 将字符串类型的代码编码. 代码对象能够通过exec语句来执行或者eval()进行求值

    user_code = input("请输入一段Python代码: ")
    compiled_code = compile(user_code, '<string>', 'exec')
    exec(compiled_code)
    

【九】输入输出(2)

  • print() : 打印输出

    print("hello", "world") 
    # hello world
    
  • input() : 获取用户输出的内容

【十】算法(1)

  • hash() :

    • 获取到对象的哈希值(int, str, bool, tuple).
    # 字符串的哈希值
    string_hash = hash("Hello World!")
    print(string_hash)#1620342921928355231
    
    # 整数的哈希值
    int_hash = hash(42)
    print(int_hash) #42
    
    # 列表的哈希值
    list_hash = hash([1, 2, 3])
    print(list_hash)#报错 不能用列表
    

【十一】文件操作(1)

  • open() : 用于打开一个文件, 创建一个文件句柄

    f = open('file',mode='r',encoding='utf-8')
    f.read()
    f.close()
    

【十二】导入模块(1)

  • __ import__() : 用于动态加载类和函数

    name = input("请输入你要导入的模块:")
    json = __import__(name)
    print(json.dumps({"name": "dhy"}))
    # {"name: "dhy"}
    

【十三】帮助(1)

  • help() : 函数用于查看函数或模块用途的详细说明

    print(help(int))  
    

【十四】调度相关(1)

  • callable() : 用于检查一个对象是否是可调用的

    • 如果返回True, object有可能调用失败
    • 但如果返回False. 那调用绝对不会成功
    def my_function():
        print("这是一个函数")
    
    class CallableClass:
        def __call__(self):
            print("这是一个可调用的类实例")
    
    obj_function = my_function
    obj_class = CallableClass()
    
    print("my_function 是可调用的吗?", callable(obj_function))  # True
    print("CallableClass 实例是可调用的吗?", callable(obj_class))  # True
    print("字符串 'hello' 是可调用的吗?", callable('hello'))  # False
    

【十五】查看内置属性(1)

  • dir() :

    • 查看对象的内置属性

    • 访问的是对象中的 __dir__() 方法

      print(dir(int))