内置函数
内置函数就是python安装后就自带有的函数
任何一门编程语言的核心操作都是操作内存中的数据,但内存中的数据又是通过编程语言的API来实现,所谓的API,就是系统提供给我们的函数,有一种函数是系统预先定义的函数,也就是我们安装python就自带的函数,这种我们把它称为内置函数,也叫内嵌函数
内置函数官网文档:https://docs.python.org/3/library/functions.html
常见的 Python 内置函数及其说明:
id(object)
: 返回对象的唯一标识符,通常是其内存地址。
type(object)
: 返回对象的类型。
dir([object])
: 返回对象的属性名和方法名列表。如果不传递参数,它会返回当前范围内的变量、方法和定义的类型列表。
help([object])
: 返回对象的帮助信息。
len(s)
: 返回对象的长度。
callable(object)
: 检查对象是否可调用。
sorted(iterable, key=None, reverse=False)
: 返回一个新的排序列表。
sum(iterable, start=0)
: 返回迭代器所有元素的总和。
all(iterable)
: 如果可迭代对象的所有元素都是真值,则返回 True。
any(iterable)
: 如果可迭代对象的任何元素为真值,则返回 True。
eval(expression[, globals[, locals]])
: 计算表达式的值并返回结果。
exec(object[, globals[, locals]])
: 执行对象中的 Python 代码。
filter(function, iterable)
: 返回一个新的迭代器,其中包含函数指定为真值的所有元素。
map(function, *iterables)
: 返回一个新的迭代器,其中包含函数应用于每个输入迭代器元素的结果。
zip(*iterables)
: 返回一个新的迭代器,其中包含来自每个迭代器的元组。
range(stop)
: 创建一个整数列表。
bin(x)
: 返回一个整数的二进制字符串表示。
oct(x)
: 返回一个整数的八进制字符串表示。
hex(x)
: 返回一个整数的十六进制字符串表示。
ascii(object)
: 返回一个表示对象的字符串,适合在 ASCII 终端上输出。
repr(object)
: 返回一个表示对象的字符串,适合在解释器中输出。
str(object='')
:返回一个字符串,表示对象
Python有许多内置函数,共有66个。以下是这些内置函数的详细解释和示例代码:
1、abs(x):返回一个数的绝对值
python
x = -10
print(abs(x)) # 输出:10
2、all(iterable):如果可迭代对象中所有元素都为真,则返回True;否则返回False
python
iterable = [True, True, False]
print(all(iterable)) # 输出:False
3、any(iterable):如果可迭代对象中任何一个元素为真,则返回True;否则返回False
python
iterable = [False, False, True]
print(any(iterable)) # 输出:True
4、bin(x):将一个整数转换为二进制字符串
python
x = 10
print(bin(x)) # 输出:0b1010
5、bool(x):将一个值转换为布尔类型
python
x = 0
print(bool(x)) # 输出:False
6、bytearray([source[, encoding[, errors]]]):创建一个可变的字节数组对象
python
source = b'Hello'
arr = bytearray(source)
print(arr) # 输出:bytearray(b'Hello')
7、bytes([source[, encoding[, errors]]]):创建一个不可变的字节对象
python
source = 'Hello'
b = bytes(source, encoding='utf-8')
print(b) # 输出:b'Hello'
8、callable(object):检查一个对象是否可调用(函数、方法等)
python
def func():
pass
print(callable(func)) # 输出:True
9、chr(i):返回一个Unicode编码的整数对应的字符
python
i = 65
print(chr(i)) # 输出:A
10、classmethod(func):将一个普通方法转换为类方法
python
class MyClass:
attr = 10
@classmethod
def class_method(cls):
print(cls.attr)
MyClass.class_method() # 输出:10
11、compile(source, filename, mode[, flags[, dont_inherit]]):编译源代码为代码或AST对象
python
source = "print('Hello, World!')"
code = compile(source, filename="", mode="exec")
exec(code) # 输出:Hello, World!
12、complex(real[, imag]):创建一个复数
python
real = 3
imag = 4
c = complex(real, imag)
print(c) # 输出:(3+4j)
13、delattr(object, name):删除对象的属性
python
class MyClass:
attr = 10
obj = MyClass()
delattr(obj, 'attr')
print(hasattr(obj, 'attr')) # 输出:False
14、dict([arg]):创建一个字典
python
d = dict(a=1, b=2, c=3)
print(d) # 输出:{'a': 1, 'b': 2, 'c': 3}
15、dir([object]):返回一个包含对象所有属性和方法名的列表
python
class MyClass:
attr = 10
def method(self):
pass
obj = MyClass()
print(dir(obj))
16、divmod(a, b):返回a除以b的商和余数
python
a = 10
b = 3
result = divmod(a, b)
print(result) # 输出:(3, 1)
17、enumerate(iterable, start=0):返回一个枚举对象,包含索引和值
python
iterable = ['a', 'b', 'c']
for i, value in enumerate(iterable):
print(i, value) # 输出: # 0 a # 1 b # 2 c
18、eval(expression[, globals[, locals]]):执行一个字符串表达式,并返回结果
python
expression = "2 + 3"
result = eval(expression)
print(result) # 输出:5
19、exec(object[, globals[, locals]]):执行Python代码
python
code =""" x = 5 if x > 0:
print("Positive") else:
print("Non-positive") """
exec(code) # 输出:Positive
20、filter(function, iterable):使用给定的函数对可迭代对象进行过滤
python
def is_positive(x):
return x > 0
numbers = [1, -2, 3, -4, 5]
result = filter(is_positive, numbers)
print(list(result)) # 输出:[1, 3, 5]
21、float(x):将一个数转换为浮点数
python
x = 10
print(float(x)) # 输出:10.0
22、format(value[, format_spec]):格式化一个值
python
value = 3.14159
result = format(value, ".2f")
print(result) # 输出:3.14
23、frozenset([iterable]):创建一个不可变的集合
python
iterable = [1, 2, 3]
fs = frozenset(iterable)
print(fs) # 输出:frozenset({1, 2, 3})
24、getattr(object, name[, default]):返回对象的属性值
python
class MyClass:
attr = 10
obj = MyClass()
print(getattr(obj, 'attr')) # 输出:10
25、globals():返回当前全局作用域的字典
python
print(globals())
26、hasattr(object, name):检查对象是否有指定的属性
python
class MyClass:
attr = 10
obj = MyClass()
print(hasattr(obj, 'attr')) # 输出:True
27、hash(object):返回对象的哈希值
python
x = 10
print(hash(x))
28、help([object]):获取对象的帮助信息
python
help(list)
29、hex(x):将一个整数转换为十六进制字符串
python
x = 255
print(hex(x)) # 输出:0xff
30、id(object):返回对象的唯一标识符
python
x = 10
print(id(x))
31、input([prompt]):接收用户输入,并返回一个字符串
python
name = input("请输入您的姓名:")
print("您好," + name + "!")
32、int(x=0):将一个数转换为整数
python
x = 3.14
print(int(x)) # 输出:3
33、isinstance(object, classinfo):检查一个对象是否为指定类或类型元组的实例
python
class MyClass:
pass
obj = MyClass()
print(isinstance(obj, MyClass)) # 输出:True
34、issubclass(class, classinfo):检查一个类是否为另一个类的子类
python
class Parent:
pass
class Child(Parent):
pass
print(issubclass(Child, Parent)) # 输出:True'
35、iter(iterable[, sentinel]):创建一个迭代器对象
python
iterable = [1, 2, 3]
iterator = iter(iterable)
print(next(iterator)) # 输出:1
36、len(s):返回一个对象的长度(元素个数)
python
s = "Hello"
print(len(s)) # 输出:5
37、list([iterable]):创建一个列表
python
iterable = (1, 2, 3)
lst = list(iterable)
print(lst) # 输出:[1, 2, 3]
38、locals():返回当前局部作用域的字典
python
print(locals())
39、map(function, iterable, ...):对可迭代对象中的每个元素应用一个函数
python
def square(x):
return x ** 2
numbers = [1, 2, 3, 4, 5]
result = map(square, numbers)
print(list(result)) # 输出:[1, 4, 9,16, 25]
40、max(iterable[, key]):返回可迭代对象中的最大值
python
numbers = [3, 1, 4, 2, 5]
print(max(numbers)) # 输出:5
41、memoryview(obj):创建一个内存视图对象,用于访问其他对象的内存
python
lst = [1, 2, 3, 4, 5]
mv = memoryview(lst)
print(mv[0]) # 输出:1
42、min(iterable[, key]):返回可迭代对象中的最小值
python
numbers = [3, 1, 4, 2, 5]
print(min(numbers)) # 输出:1
43、next(iterator[, default]):返回迭代器中的下一个元素
python
iterable = [1, 2, 3]
iterator = iter(iterable)
print(next(iterator)) # 输出:1
44、object():返回一个新的空对象
python
obj = object()
print(obj)
45、oct(x):将一个整数转换为八进制字符串
python
x = 8
print(oct(x)) # 输出:0o10
46、open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None):打开一个文件,并返回文件对象
python
file = open("example.txt", "w")
file.write("Hello, World!")
file.close()
47、rd©:返回一个字符的Unicode编码
python
c = 'A'
print(ord(c)) # 输出:65
48、pow(x, y[, z]):返回x的y次幂,如果提供z,则返回x的y次幂对z取模的结果
python
x = 2
y = 3
z = 5
result = pow(x, y, z)
print(result) # 输出:3
49、print(_objects, sep=' ', end='\n', file=sys.stdout, flush=False):打印输出到控制台
python
name = "Alice"
age = 25
print("My name is", name, "and I am", age, "years old.") # 输出:My name is Alice and I am 25 years old.
50、property(fget=None, fset=None, fdel=None, doc=None):创建一个属性
python
class MyClass:
def __init__(self):
self._attr = 0 @property
def attr(self):
return self._attr @attr.setter
def attr(self, value):
self._attr = value
obj = MyClass()
obj.attr = 10
print(obj.attr) # 输出:10
51、range(stop):返回一个包含从0到stop-1的整数序列的可迭代对象
python
for i in range(5):
print(i) # 输出: # 0 # 1 # 2 # 3 # 4
52、repr(object):返回一个对象的字符串表示形式
python
s = "Hello"
print(repr(s)) # 输出:'Hello'
53、reversed(seq):返回一个反向的迭代器对象
python
seq = [1, 2, 3]
rev_seq = reversed(seq)
print(list(rev_seq)) # 输出:[3, 2, 1]
54、round(number[, ndigits]):对一个数进行四舍五入
python
x = 3.14159
print(round(x, 2)) # 输出:3.14
55、set([iterable]):创建一个集合
python
iterable = [1, 2, 3]
s = set(iterable)
print(s) # 输出:{1, 2, 3}
56、setattr(object, name, value):设置对象的属性值
python
class MyClass:
attr = 10
obj = MyClass() s
etattr(obj, 'attr', 20)
print(obj.attr) # 输出:20
57、slice(stop):创建一个切片对象,用于切片操作
python
numbers = [1, 2, 3, 4, 5]
s = slice(2)
print(numbers[s]) # 输出:[1, 2]
58、sorted(iterable[, key][, reverse]):返回一个排序后的列表
python
numbers = [3, 1, 4, 2, 5]
sorted_numbers = sorted(numbers)
print(sorted_numbers) # 输出:[1, 2, 3, 4, 5]
59、staticmethod(function):将一个函数转换为静态方法
python
class MyClass: @staticmethod
def my_method():
print("This is a static method.")
MyClass.my_method() # 输出:This is a static method.
60、str(object=''):将一个对象转换为字符串
python
x = 10
print(str(x)) # 输出:'10'
61、sum(iterable[, start]):返回可迭代对象中所有元素的总和
python
numbers = [1, 2, 3, 4, 5]
print(sum(numbers)) # 输出:15
62、super([type[, object-or-type]]):返回父类的对象
python
class Parent:
def __init__(self):
self.attr = 10
class Child(Parent):
def __init__(self):
super().__init__()
child = Child()
print(child.attr) # 输出:10
63、tuple([iterable]):创建一个元组。
python
iterable = [1, 2, 3]
t = tuple(iterable)
print(t) # 输出:(1, 2, 3)
64、type(object):返回一个对象的类型。
python
x = 10
print(type(x)) # 输出:<class 'int'>
65、vars([object]):返回对象的属性和属性值的字典。
python
class MyClass:
attr = 10
obj = MyClass()
print(vars(obj)) # 输出:{'attr': 10}
66、zip(_iterables):将多个可迭代对象中对应位置的元素打包成元组,并返回一个由这些元组组成的可迭代对象。
python
numbers = [1, 2, 3]
letters = ['a', 'b', 'c']
zipped = zip(numbers, letters)
print(list(zipped)) # 输出:[(1, 'a'), (2, 'b'), (3, 'c')]
细分类如下:
一、输入输出
- print():打印输出文本
- input():获取用户输入文本
python
print('你好, 我是@程序员小明')
#控制台输出 你好,我是@程序员小明
s = input('等待你的输入:')
print('你输入的内容是' + s)
#再与用户交互中可以使用input来获取到用户的指令。
二、基本数据类型
1、数字
- int():整型
python
# 直接赋值
a = 1
# 类型转换
b = int('2')
- float():浮点型
python
# 直接赋值
a = 1.0
# 类型转换
b = float('2.0')
- bool():布尔型
python
# 直接赋值
a = True
# 类型转换
b = bool(0)
- complex():复数类型
python
# 复数类型结构为 a + bj,其中 a 为实部,b 为虚部
data1 = 1 + 2j
data2 = 2 + 3j
print("data1 + data2 :", data1 + data2)
# 运行结果
# data1 + data2 : (3+5j)
2、字符串
- str():字符串类型
python
# 直接赋值
str1 = 'abcd'
# 类型转换
string = str(123456)
3、列表
- list():列表类型,将一个可迭代对象转换为列表
python
# 直接赋值,用中括号包裹,用逗号分隔元素
list1 = [1, 2, 3, 4, 5]
# 可以利用range函数赋值
list2 = list(range(1, 10))
4、元组
- tuple():元组类型,将一个可迭代对象转换为元组
python
# 直接赋值,使用小括号包裹,用逗号分隔元素(小括号其实也可以省略)
tuple1 = ("Python教程", "学习Python")
# 使用tuple函数创建
tuple2 = tuple("hello")
5、集合
- set():集合类型,创建一个集合
python
# set集合接受可迭代对象作为参数
set1 = set([1, 2, 3, 4, 5])
set2 = set(('python', 'xiaolong'))
6、字典
- dict():字典类型,创建一个字典
python
# 直接赋值,使用花括号包裹,key和value中间使用冒号,用逗号分隔元素
dict1 = {'品类': '苹果', '价格': '10'}
# 使用zip函数将两个列表转为字典
keys = ['苹果', '梨', '香蕉']
values = [10, 20, 30]
dict2 = dict(zip(keys, values))
三、数学运算
- abs():返回绝对值
- divmod():返回商和余数
python
a = divmod(5, 3)
print(a) # (1, 2)
- round():四舍五入
python
a = round(10.2453, 2)
print(a) # 10.25
- pow(a,b):返回a的b次幂,如果有第三个参数,则求完幂次后对第三个数取余
python
a = pow(10, 2)
print(a) # 100
- sum():求和
python
list1 = [1, 2, 3, 4, 5]
a = sum(list1)
print(a) # 15
- min():求最小值
python
list1 = [1, 2, 3, 4, 5]
a = min(list1)
print(a) # 1
- max():求最大值
python
list1 = [1, 2, 3, 4, 5]
a = max(list1)
print(a) # 5
四、进制转换
- bin():将给定的参数转换为二进制
python
a = bin(6)
print(a) # 0b110 6的二进制是110
- oct():将给定的参数转换为八进制
python
a = oct(8)
print(a) # 0o10
- hex():将给定的参数转换为十六进制
python
a = hex(8)
print(a) # 0x8
五、序列集合操作
- reversed():将一个序列翻转,返回一个反向的迭代器
python
# reversed接受一个序列参数,返回的是一个逆迭代对象,所以需要在使用序列再转换回去
list1 = [1, 2, 3, 4, 5]
print(list(reversed(list1)))
# 输出[5, 4, 3, 2, 1]
- slice():列表的切片
python
# slice主要做序列切片,可以从其中切取部分重新组成新的序列
list1 = [1, 2, 3, 4, 5]
s = slice(1, 3)
print(list1[s])
# 推荐使用简写方式:lst[start:stop]
list1 = [1, 2, 3, 4, 5]
print(list1[1:3])
- bytes():把字符串转化为bytes类型
python
b = bytes('@程序员小明', encoding='utf-8')
print(b) # b'@\xe7\xa8\x8b\xe5\xba\x8f\xe5\x91\x98\xe5\xb0\x8f\xe9\xbe\x99'
- ord():输入字符找到对应编码的位置
python
print(ord('a')) # 97
print(ord('小')) # 31243
- chr():输入位置数字找出对应的字符
python
# 输出33~1000数字对应的字符
for i in range(33, 1000):
print(chr(i), end=' ')
- ascii():将Unicode字符串转换为ASCII字符串
python
print(ascii('Hello,@程序员小明\n'))
#'Hello,@\u7a0b\u5e8f\u5458\u5c0f\u9f99\n'
- repr():返回一个对象的字符串形式
python
# repr原样输出,会过滤掉转义字符
s = 'Hello,\t@程序员\n小明\n'
print(s)
# Hello, @程序员
# 小明
print(repr(s)) # 'Hello,\t@程序员\n小明\n'
- len():返回一个对象中元素的个数
python
# 获取个数
list1 = [1, 2, 3, 4, 5]
print(len(list1))
- sorted():对可迭代对象进行排序操作
语法: sorted(iterable[, cmp[, key[, reverse]]])
参数: iterable -- 可迭代对象 cmp -- 比较的函数,这个具有两个参数,参数的值都是从可迭代对象中取出,此函数必须遵守的规则为,大于则返回1,小于则返回-1,等于则返回0 key -- 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序 reverse -- 排序规则,reverse = True 降序 , reverse = False 升序(默认)
返回值:返回重新排序的列表
python
# 对迭代对象进行排序,可以选择正序,逆序
list1 = [1, 5, 8, 3, 4, 2]
print(sorted(list1))
print(sorted(list1, reverse=True))
# 自定义规则
list2 = ['one', 'two', 'three', 'four', 'five', 'six']
def func(s):
return len(s)
print(sorted(list2, key=func))
sort与sorted 区别:
sort是应用在 list 上的方法,sorted 可以对所有可迭代的对象进行排序操作, list 的 sort 方法返回的是对已经存在的列表进行操作,而内建函数 sorted 方法返回的是一个新的 list,而不是在原来的基础上进行的操作
- enumerate():获取集合的枚举对象
python
score_dict = {
'张三': 33,
'李四': 36,
'王五': 74,
'赵六': 56,
'李白': 88,
'王维': 98,
'杜甫': 100,
'王昌龄': 89,
'王之涣': 97,
'王羲之': 93
}
score_dict_sorted = sorted(score_dict.items(), key=lambda x:x[1], reverse=True)
for index, (name, score) in enumerate(score_dict_sorted, start=1):
print(f'第{index}名:{name}\t成绩:{score}')
# 第1名:杜甫 成绩:100
# 第2名:王维 成绩:98
# 第3名:王之涣 成绩:97
# 第4名:王羲之 成绩:93
# 第5名:王昌龄 成绩:89
# 第6名:李白 成绩:88
# 第7名:王五 成绩:74
# 第8名:赵六 成绩:56
# 第9名:李四 成绩:36
# 第10名:张三 成绩:33
- all():可迭代对象中所有元素都为True,返回结果才为True
- any():可迭代对象中只要有一个是True,返回结果就是True
- zip():在多个迭代器上并行迭代,从每个迭代器返回一个数据项组成元组,如果各个迭代器的元素个数不同,则返回列表长度与最短的对象相同
python
# zip可以将多个迭代器转换成元组
list1 = [1, 2, 3]
list2 = ['苹果', '香蕉', '梨']
list3 = [10, 20, 15]
for data in zip(list1, list2, list3):
print(data)
# (1, '苹果', 10)
# (2, '香蕉', 20)
# (3, '梨', 15)
- filter():过滤器可以接收一个自定义筛选函数,将迭代器中的元素传到函数中进行判断,用来确定是否保留这个元素。
python
# 过滤出数据中的偶数
def func(i):
return i % 2 == 0
list1 = [1, 2, 3, 4, 5, 6, 7, 8, 9]
lst = filter(func, list1)
print(list(lst))
# [2, 4, 6, 8]
- map():可以对可迭代对象中的元素进行映射,分别去执行自定义函数
python
# 给数据中每个元素加1
def func(i):
return i + 1
list1 = [1, 2, 3, 4, 5, 6, 7, 8, 9]
lst = map(func, list1)
print(list(lst))
# [2, 3, 4, 5, 6, 7, 8, 9, 10]
六、文件操作
- open():用于打开一个文件,创建文件句柄
python
f = open("name.txt", 'r', encoding='utf-8')
f.read()
f.close()
七、和迭代器相关
- range():生成可迭代数据
- next():迭代器向下执行一次
- iter():获取迭代器
python
# 使用range生成数据给列表
# iter获取序列的一个迭代器,然后可以使用next进行逐个输出
list1 = list(range(1, 6)) # [1, 2, 3, 4, 5]
it = iter(list1)
print(next(it)) # 1
八、作用域相关(用于查错)
- locals():返回当前作用域中的变量名字
- globals():返回全局作用域中的变量名字
python
# 当前作用域和全局作用域的用法
def func():
a = 100
b = 'abc'
print(locals())
print('-------')
print(globals())
func()
# {'a': 100, 'b': 'abc'}
#-------
# {'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x10e13ef70>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, '__file__': '/Users/troy/Documents/2_team-workspace/python-dev/0_utils/1.py', '__cached__': None, 'func': <function func at 0x10e1430d0>}
九、集合
set(集合) 也是python中的一种数据类型,是一个无序且不重复的元素集合
创建集合方式
python
# 第一种方式
set1 = {"1","2"}
# 第二种方式
list1 = ['1','5','4','3']
set2 = set(list1)
- add()添加一个元素
python
set1 = {'1','2'}
set1.add('3')
print('无序集合:',set1)
输出:
无序集合: {'2', '1', '3'}
- clear()清空集合的元素
python
set2 = set([1,2,3,4,5,6,7,8,9])
set2.clear()
print('清空集合set2后:',set2)
输出:
清空集合set2后: set()
- difference() 两个集合的差集,a中存在,b中不存在
python
a = {32,12,34}
b = {12,43,23}
print(a.difference(b))
输出
{32, 34}
- intersection()两个集合的交集,a中存在,b中也存在的
python
a = {32,12,34}
b = {12,43,23}
print(a.intersection(b))
输出
{12}
- union 并集 包含a中的元素,也包含b中的元素
python
a = {32, 12, 34}
b = {12, 43, 23}
print(a.union(b))
输出:
{32, 34, 23, 43, 12}
- pop 集合pop随机移除某个元素并且获取那个参数,集合pop没有参数
python
a = {32,12,34}
print(a.pop())
输出
32
- discard 移除指定元素
python
a = {32,12,34}
a.discard(12)
print(a)
输出
{32,34}
- update 更新集合
python
a={1,2,3}
b={4,5,6}
a.update(b)
print(a)
输出
{1, 2, 3, 4, 5, 6}
十、其他
- help():函数用于查看其他函数或者模块的说明
python
# 获取list函数的帮助文档
print(help(list))
- callable():用于检查一个对象是否可以调用
python
s = '@程序员小明'
print(callable(s)) # False
def hello():
pass
print(callable(hello)) # True
- hash():获取到hash值,用于做key
python
# 基本使用方法,hash是唯一的,可以用来做数据的key值
s = '@程序员小明'
print(hash(s))
- dir():查看对象的内置属性
python
# 查询str的内置方法
print(dir(str))
- import():用于动态加载类和函数
python
# 动态加载os模块
name = input("请输入你要导入的模块:") # 输入os
os = __import__(name)
print(os.getcwd())