内置函数
1.计算机基础2.编程语言和Python语言介绍3.八大基本数据类型4.python语法入门变量和常量5.python和pycharm相关补充6.计算机五大部件补充7.文件操作8.编码和解码9.字符编码10.基本数据类型的内置方法11.循坏结构12.流程控制13.基本运算符14.程序与用户交互15.迭代器16.闭包函数17.装饰器18.多层语法糖嵌套19.函数的参数20.函数的可变长参数21.命名关键字参数22.名称空间与作用域23.异常处理24.深浅拷贝问题25.函数的定义和调用26.控制文件读写内容的模式27.主动控制文件内指针移动28.文件的操作方法29.垃圾回收机制GC30.可变与不可变类型31.元类32.内置方法33.pickle模块34.单例模式35.方法补充issubclass和isinstance36.多态37.继承38.面向对象的三大特性39.封装
40.内置函数
41.面向对象42.logging模块43.subprocess模块44.正则45.datetime模块46.time模块47.绝对路径和相对路径48.random模块49.os模块50.hashlib模块51.模块与包52.json模块53.生成器54.三元运算符内置函数
(一)什么是内置函数
- 内置函数就是Python给你提供的, 拿来直接用的函数,比如print,input等。
- 截止到python版本3.6.2 ,一共提供了68个内置函数,具体如下
- 和数字相关
- 数据类型
- 进制转换
- 数学运算
- 和数据结构相关
- 序列
- 数据集合
- 相关内置函数
- 和作用域相关
- 和迭代器生成器相关
- 字符串类型代码的执行
- 输入输出
- 内存相关
- 文件操作相关
- 模块相关
- 帮 助
- 调用相关
- 查看内置属性
(二)数据类型转换(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() 与具体数据相关, 用于计算各种小数, 精算等.
- 居中对齐方式
- 进制转换
- 科学计数法
- 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: 可迭代对象
- function: 用来筛选的函数.
- 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))
-
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)