内置函数

内置函数

(一)什么是内置函数

  • 内置函数就是Python给你提供的, 拿来直接用的函数,比如print,input等。
  • 截止到python版本3.6.2 ,一共提供了68个内置函数,具体如下

img

  • 和数字相关
    • 数据类型
    • 进制转换
    • 数学运算
  • 和数据结构相关
    • 序列
    • 数据集合
    • 相关内置函数
  • 和作用域相关
  • 和迭代器生成器相关
  • 字符串类型代码的执行
  • 输入输出
  • 内存相关
  • 文件操作相关
  • 模块相关
  • 帮 助
  • 调用相关
  • 查看内置属性

(二)数据类型转换(8个)

类型强转

# 强转数据类型的方法
# 强转成    整数
# 强转成    浮点数
# 强转成    字符串
# 强转成    布尔
# 强转成    列表
# 强转成    元组
# 强转成    字典
# 强转成    集合

(三)进制转换(3个)

# #十进制转换二进制
 print(bin(1000))#0b1111101000
# #十进制转换八进制
 print(oct(1000))#0o1750
# #十进制转换十六进制
 print(hex(1000))#0x3e8

(四)数学运算(8个)

  • 获取绝对值abs
  • 获取商和余数divmod
  • 四舍五入round
  • a的b次幂pow
  • 求和sum
  • 最大值max
  • 最小值min
  • 复数转换complex
# #1.绝对值abs
 print(abs(-9))#9

# #2.获取商和余数divmod
 print(divmod(10,3))#(3, 1)

# #3.四舍五入round
 print(round(4.5))#4
 print(round(4.50))#4
 print(round(4.51))#5
 print(round(4.050,1))#4.0
 print(round(4.051,2))#4.05

# # 4.幂次方
# '''
# 参数介绍:
#     x — 数值表达式(整数或者浮点数);
#     y — 数值表达式(整数或者浮点数);
#     z — 数值表达式(整数或者浮点数),默认不设置z值;
#
# 返回值:返回 xy(x的y次方)的值;如果设置了z值,则再对结果进行取模,其结果等效于pow(x,y) %z;
# '''
 print(pow(2,3))#8

# #取模
 print(pow(2,3,5))#3

# #5.求和
 print(sum([1,2,3]))#6

# #6.求最大值
 print(max([444,555,666]))#666

# #7.求最小值
 print(min([444,555,666]))#444

# #8.复数
 res=complex(3,4)
 print(res)#(3+4j)
 res1=complex(1,2)
 print(res1)#(1+2j)
 res2=res+res1
 print(res2)#(4+6j)

(五)数据结构相关(18个)

(1)序列化相关 5个

  • 翻转reversed
  • 切片slice
  • 计算长度len
  • 排序sorted
  • 枚举enumerate
# #1.序列化相关
# #(1)翻转reversed
 list_one=[1,3,5,7]
 list.reverse()
 print(list)#[7, 5, 3, 1]
 new_list=reversed(list_one)
 print(new_list)#<list_reverseiterator object at 0x0000023EC83A9660>
 print(list(new_list))#[7, 5, 3, 1]

# #2.切片slice
 name='syh123'
 print(name[1:5:2])#y1
 s=slice(1,3,2)
 print(name[s])#y

# #3.计算长度
 name='syh123'
 print(len(name))#6

# #4.排序sorted
 list=[1,5,3,4,6]
# #升序排序
 new_list=sorted(list)
 print(new_list)#[1, 3, 4, 5, 6]
# #降序排序
 list_one=sorted(list,reverse=True)
 print(list_one)#[6, 5, 4, 3, 1]

# #5.枚举 enumerate(可迭代对象,默认索引位置为0,可以修改)
 list=['syh','su',11,22,33]
 for index,i in enumerate(list):
     print(index,i)
# # 0 syh
# # 1 su
# # 2 11
# # 3 22
# # 4 33

(2)字符串 4个

  • 格式化输出format

    • format() 与具体数据相关, 用于计算各种小数, 精算等.
      • 居中对齐方式
      • 进制转换
      • 科学计数法
  • 字符串转bytes

  • 获取字节数组bytearray

  • 返回对象的字符串格式repr

    • 原样输出,过滤掉转义字符 \n \t \r 不管百分号%
# #1.格式化输出format
# # 与具体数据相关的时候,用于计算各种小数、精算等。
# #对其方式
# #居中对其
 s='syh'
 print(format(s,'^8'))#  syh
# #左对齐
 print(format(s,'<8'))#syh
# #右对齐
 print(format(s,'>8'))#     syh
#
# #进制转换
 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

# # 科学计数法
 print(format(123456789, 'e'))  # 科学计数法. 默认保留6位小数:1.234568e+08
 print(format(123456789, '0.2e'))  # 科学计数法. 保留2位小数(小写):1.23e+08
 print(format(123456789, '0.2E'))  # 科学计数法. 保留2位小数(大写):1.23E+08
 print(format(1.23456789, 'f'))  # 小数点计数法. 保留6位小数:1.234568
 print(format(1.23456789, '0.2f'))  # 小数点计数法. 保留2位小数:1.23
 print(format(1.23456789, '0.10f'))  # 小数点计数法. 保留10位小数:1.2345678900
 print(format(1.23456789e+3, 'F'))  # 小数点计数法. 很大的时候输出INF:1234.567890

# #2.字符串转bytes
 res=bytes('苏毅航',encoding='utf-8')
 print(res)#b'\xe8\x8b\x8f\xe6\xaf\x85\xe8\x88\xaa'

# #3.获取字节数组bytearray
 res=bytearray('苏毅航',encoding='utf8')
 print(res)#bytearray(b'\xe8\x8b\x8f\xe6\xaf\x85\xe8\x88\xaa')

# #4.返回对象的字符串个数repr
 res='苏\n毅\t航%s'% '哈哈'
 print(res)
# # 苏
# # 毅   航哈哈
# # 原样输出,过滤掉转义字符 \n \t \r 不管百分号%
 print(repr(res))#'苏\n毅\t航哈哈'

(3)字符编码 3个

  • 字符编码找数字ord
  • 数字找字符编码chr
  • 数字找ASCII码ascii
"""字符编码"""
# #1.字符编码找数字ord
 print(ord('a'))#97
#
# #2.数字找字符编码chr
 print(chr(65))#A
#
# #3.数字找ASCII码
# # ascii() 是ascii码中的返回该值 不是就返回u
 for i in range(65536):  #打印出0到65535的字符
     print(chr(i), end=" ")
#
 print(ascii("@"))  #'@'

(4)数据集合 1个

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

(5)判断条件 2个

  • 所有为真all
  • 任意为真any
#all() 可迭代对象中全部是True, 结果才是True
print(all([1,'hello',True,9]))  #True

#any() 可迭代对象中有一个是True, 结果就是True
print(any([0,0,0,False,1,'good']))  #True

(6)高阶函数 3个

  • 打包zip
  • zip() 函数
    • 用于将可迭代的对象作为参数
    • 将对象中对应的元素打包成一个元组
    • 然后返回由这些元组组成的列表.
  • 如果各个迭代器的元素个数不一致, 则返回列表长度与最短的对象相同
# #zip函数打包
# # zipper:拉链函数
# # 默认按照最少的元素个数进行打包
 list1=[1,2,3]
 list2=['syh','su','susu']
 print(zip(list1,list2))#<zip object at 0x0000024DD379D140>
 print(list(zip(list1,list2)))#[(1, 'syh'), (2, 'su'), (3, 'susu')]
  • 过滤fiter
  • 语法: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是迭代器
l1 = filter(func, lst)
print(l1)  # <filter object at 0x000001CE3CA98AC8>
print(list(l1))
# [1, 3, 5, 7, 9]
  • 映射map
  • 语法 : map(function, iterable)
    • 可以对可迭代对象中的每一个元素进行映射. 分别去执行 function
  • map() 会根据提供的函数对指定序列列做映射(lamda)
def f(i):
    return i


lst = [1, 2, 3, 4, 5, 6, 7, ]
# 把可迭代对象中的每一个元素传递给前面的函数进行处理.
# 处理的结果会返回成迭代器print(list(it))

it = map(f, lst)
print(it)  # <map object at 0x000001EEDDE997B0>

# 如果要查看 map 的结果需要用 list 强转
print(list(it))
# [1, 2, 3, 4, 5, 6, 7]

(六)作用域(2个)

  • locals() 返回当前作用域中的名字
  • globals() 返回全局作用域中的名字
name = "dream"


def func():
    a = 10
    # 当前作用域中的内容
    print(f"这是当前作用域中的内容 :>>>> {locals()}")
    # 全局作用域中的内容
    print(f"这是全局作用域中的内容 :>>>> {globals()}")

    print("我是函数func内部")


func()
# 这是当前作用域中的内容 :>>>> {'a': 10}

# 这是全局作用域中的内容 :>>>> {'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x000002687A368910>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, '__file__': 'E:\\PythonProjects\\09Python的内置函数\\01start.py', '__cached__': None, 'name': 'dream', 'func': <function func at 0x000002687A3D35B0>}

# 我是函数func内部

(七)迭代器生成器(3个)

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

  • range() 生成数据
print(range(1, 10))
# range(1, 10)

print([i for i in range(1, 10)])
# [1, 2, 3, 4, 5, 6, 7, 8, 9]

(2)获取迭代器(iter)

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

# __iter__()获得迭代器
it = iter(lst)
print(it)
# <list_iterator object at 0x0000016162EC97B0>

(3)向下执行(next)

  • next()
  • 迭代器向下执行一次, 内部实际使用了__ next__()方法返回迭代器的下一个项目
lst = [1, 2, 3, 4, 5]

# __iter__()获得迭代器
it = iter(lst)
print(it)
# <list_iterator object at 0x0000016162EC97B0>
print(next(it))
# 1
print(next(it))
# 2
print(next(it))
# 3
print(next(it))
# 4
print(next(it))
# 5

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

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

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

    s1 = input("请输入a+b:")
    # 输入:8+9
    
    # 可以动态的执行代码. 代码必须有返回值
    print(eval(s1))
    # 17
    

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

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

    s2 = "for i in range(5): print(i)"
    # exec 执行代码不返回任何内容
    a = exec(s2)
    # 0
    # 1
    # 2
    # 3
    # 4
    print(a)  # None
    
    # 动态执行代码
    exec("""
    def func():
        print(" 我是周杰伦")
    """)
    func()  # 我是周杰伦
    

(3)编码指令

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

    code1 = "for i in range(3): print(i)"
    # compile并不会执行你的代码.只是编译
    com = compile(code1, "", mode="exec")
    # 执行编译的结果
    exec(com)
    # 0
    # 1
    # 2
    
code2 = "5+6+7"
com2 = compile(code2, "", mode="eval")
print(eval(com2))
# 18
code3 = "name = input('请输入你的名字:')"
# 输入:hello

com3 = compile(code3, "", mode="single")
exec(com3)
print(name)  # hello

(九)输入输出(2个)

  • print() : 打印输出

    print("hello", "world", sep="*", end="@") 
    # sep:打印出的内容用什么连接
    # end:以什么为结尾
    # hello*world@
    
  • input() : 获取用户输出的内容

(十)算法(1个)

  • hash() :

    • 获取到对象的哈希值(int, str, bool, tuple).
    s = 'dream'
    print(hash(s))  
    # 1612413944648601058
    
    • 列表不允许hash
    lst = [1, 2, 3, 4, 5]
    print(hash(lst))
    # 报错,列表是不可哈希的
    r'''
    Traceback (most recent call last):
      File "E:\PythonProjects\09Python的内置函数\01start.py", line 361, in <module>
        print(hash(lst))  # 报错,列表是不可哈希的
    TypeError: unhashable type: 'list'
    '''
    
  • hash算法:

    • (1) 目的是唯一性
    • (2) dict 查找效率非常高
  • 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": "dream"}))
    
    # {"name": "dream"}
    

(十三)帮助(1个)

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

    # 查看字符串的用途
    print(help(str))  
    

(十四)调度相关(1个)

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

    • 如果返回True, object有可能调用失败
    • 但如果返回False. 那调用绝对不会成功
    a = 10
    # 变量a不能被调用
    
    print(callable(a))
    # False  
    
    def f():
        print("hello")
    
    # 函数是可以被调用的
    print(callable(f))
    # True
    

(十五)查看内置属性(1个)

  • dir() :

    • 查看对象的内置属性

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

      # 查看元组的方法
      print(dir(tuple))
      
posted @   苏苏!!  阅读(27)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示