🎉 目录-Python常用内置函数(二)
一、说明
Python技能树:Python入门技能树。
版本:Python 3.10。
IDE:PyCharm。
参考书籍:《Python数据分析、挖掘与可视化》。
基础文章:
1、【Python】Python基础知识总结。
2、【Python】PyCharm中调用另一个文件的函数或类。
3、【Python数据分析】Python基础知识篇。
4、【Python数据分析】Python基本数据类型。
二、基本输入/输出
1、input()
num = int(input('请输入一个大于2的自然:'))
# 除2的余数为1的整数为奇数,能被2整除的整数为偶数
if num%2 == 1:
print('这个是奇数')
else:
print('这个是偶数')
# 运行结果:
请输入一个大于2的自然:11
这个是奇数
lst = eval(input('请输入一个若干自然数的列表:'))
print('列表中所有元素之和为:', sum(lst))
# 运行结果:
请输入一个若干自然数的列表:[1,2,3,4,5]
列表中所有元素之和为: 15
2、print()
print()
的语法格式如下:
print(value1,value2,...,sep='',end='\n')
sep
参数之前为需要输出的内容(可以有多个);
sep
参数用于指定数据之间的分隔符,如果不指定则默认为空格;
end
参数表示输出完所有数据之后的结束符,如果不指定则默认为换行符。
print(1,2,3,4,5) # 默认情况,使用空格作为分隔符
print(1,2,3,4,5,sep=',') # 指定使用逗号作为分隔符
print(1,2,3,4,5,end=' ') # 输出完所有数据之后,以空格结束,不换行
print(6,7)
# 运行结果:
1 2 3 4 5
1,2,3,4,5
1 2 3 4 5 6 7
三、range()
range()
的语法格式如下:
range([start,] stop [, step] ),
range1 = range(4) # 只指定stop为4,start默认为0,step默认为1
range2 = range(5,8) # 指定start=5和stop=8,step默认为1
range3 = range(3,20,4) # 指定start=3,stop=20,step=4
range4 = range(20,0,-3) # step也可以是负数
print(range1,range2,range3,range4)
print(range4[2])
print(list(range1),list(range2),list(range3),list(range4))
for i in range(10):
print(i,end=' ')
# 运行结果:
range(0, 4) range(5, 8) range(3, 20, 4) range(20, 0, -3)
14
[0, 1, 2, 3] [5, 6, 7] [3, 7, 11, 15, 19] [20, 17, 14, 11, 8, 5, 2]
0 1 2 3 4 5 6 7 8 9
四、zip()
data = zip('1234', [1,2,3,4,5,6])
print(data)
# 在转换为列表时,使用了zip对象中的全部元素,zip对象中不再包含任何内容
print(list(data))
# 如果需要再次访问其中的元素,必须重新创建zip对象
data = zip('1234', [1,2,3,4,5,6])
print(tuple(data))
data = zip('1234', [1,2,3,4,5,6])
# zip对象是可迭代的,可以使用for循环逐个遍历和访问其中的元素
for item in data:
print(item)
# 运行结果:
<zip object at 0x0000026601D5BE40>
[('1', 1), ('2', 2), ('3', 3), ('4', 4)]
(('1', 1), ('2', 2), ('3', 3), ('4', 4))
('1', 1)
('2', 2)
('3', 3)
('4', 4)
五、map()、reduce()、filter()
1、map()
map()
的语法格式如下:
map(func, *iterables)
from operator import add
print(map(str, range(5)))
print(list(map(str, range(5))))
print(list(map(len, ['abc', '1234', 'test'])))
# 使用operator标准库中的add运算,add运算相当于运算符+
# 如果map()函数的第一个参数func,是能够接收两个参数的可调用对象,则可以映射到两个序列上
for num in map(add, range(5), range(5,10)):
print(num)
# 运行结果:
<map object at 0x00000141CE8D2380>
['0', '1', '2', '3', '4']
[3, 4, 4]
5
7
9
11
13
2、reduce()
reduce()
的语法格式:
reduce(func, seq[, initial])
from functools import reduce
from operator import add, mul, or_
seq = range(1,10)
print(reduce(add, seq)) # 累加seq中的数字
print(reduce(mul, seq)) # 累乘seq中的数字
seq = [{1}, {2}, {3}, {4}]
print(reduce(or_, seq)) # 对seq中的集合连续进行并集运算
# 运行结果:
45
362880
{1, 2, 3, 4}
3、filter()
filet()的语法格式如下:
filter(func or None, iterable)
seq = ['abcd', '1234', '.,?!', '']
print(list(filter(str.isdigit, seq))) # 只保留数字字符串
print(list(filter(str.isalpha, seq))) # 只保留英文字母字符串
print(list(filter(str.isalnum, seq))) # 只保留数字字符串和英文字符串
print(list(filter(None, seq))) # 只保留等价于True的元素
# 运行结果:
['1234']
['abcd']
['abcd', '1234']
['abcd', '1234', '.,?!']