【Python 零基础入门】内容补充 1 常用内置函数
- Python 简介
- 为什么要学习内置函数
- 数据类型和转换
- int(): 转为整数
- float(): 转为浮点数
- list(): 转为列表
- tuple(): 转换为元组
- set():转换为集合
- dict(): 创建字典:
- 数学运算
- abs(): 绝对值
- pow(): 幂运算
- round(): 四舍五入
- min(): 最小值
- max():最大值
- sum(): 求和
- divmod(): 商和余数
Python 简介
Python 是一种解释性, 高级和通用的变成语言. Python 由 Guido van Rossum 创建并 1991 年首次发布. Python 的设计强调代码的可读性, 其雨大允许我们使用相较于 C++ 或 Java 更少的代码表达概念. Python 使得变成变得更简单, 更快捷. 下面就跟着小白我来一起看一下 Python 常用的内置函数.
为什么要学习内置函数
Python 内置函数 (Built-In Function) 是 Python 解释器直接提供的函数, 相较于别的 Python 函数, 无需导入任何模块即可使用. 熟悉掌握 Python 的内置函数不仅可以帮助我们快速的完成常见的变成任务, 还可以使得我们的代码更加简洁, 易读.
数据类型和转换
int(): 转为整数
int()
函数可以用于将一个字符串 (string) 或数字转换为整形 (int).
格式:
num_int = int(需要转换的变量)
例子:
# float->int
x = int(2.8) # 输出 x=2
y = int("3") # 输出 y=3
常见用法:
# 将一个字符串组成的列表转换为整型
list_str = ["1", "2", "3", "4", "5"]
list_int = [int(i) for i in list_str]
print(list_str)
print(list_int)
输出结果:
['1', '2', '3', '4', '5']
[1, 2, 3, 4, 5]
float(): 转为浮点数
float()
函数用于将一个字符串或数字转换为浮点数.
格式:
num_float = float(需要转换的白能量)
例子:
# int->float
x = float(2) # 输出 x=2.0
# string->float
y = float("3") # 输出 y=3.0
z = float("4.2") # 输出 z=4.2
list(): 转为列表
list()
函数用于将一个序列转为列表 (list).
格式:
convert_list = list(需要转换的序列)
例子:
# string->list
x = list("我是小白呀") # 输出 x=['我', '是', '小', '白', '呀']
# tuple->list
y = list((1, 2, 3, 4, 5)) # 输出 y=[1, 2, 3, 4, 5]
tuple(): 转换为元组
tuple()
函数用于将一个序列转换为元组.
格式:
convert_tuple = tuple(需要转换的序列)
例子:
# string->tuple
x = tuple("我是小白呀") # 输出 x=('我', '是', '小', '白', '呀')
# list->tuple
y = tuple([1, 2, 3, 4, 5]) # 输出 y=(1, 2, 3, 4, 5)
z = tuple(['1', '2', 3, 4, 5]) # 输出 z=('1', '2', 3, 4, 5)
set():转换为集合
set()
函数用于创建一个无序不重复元素集.
格式:
convert_set = set(需要转换的变量)
例子:
# string->set
x = set("hello") # 输出 x={'o', 'e', 'h', 'l'}
# list->set
y = set([1, 2, 2, 3, 4]) # 输出 y={1, 2, 3, 4}
常见用法:
# 对列表进行去重
original_list = [1, 2, 2, 3, 4, 5]
unique_list = list(set(original_list))
print("原始列表:", original_list)
print("去重列表:", unique_list)
# 对字符串进行去重
original_str = "abbccd"
unique_list = list(set(original_str))
print("原始字符串:", original_str)
print("去重列表:", unique_list)
输出结果:
原始列表: [1, 2, 2, 3, 4, 5]
去重列表: [1, 2, 3, 4, 5]
原始字符串: abbccd
去重列表: ['d', 'b', 'a', 'c']
dict(): 创建字典:
dict()
函数用于创建一个字典.
例子:
# 创建字典
x = dict(name="我是小白呀", age=18) # x={'name': '我是小白呀', 'age': 18}
常见用法, 通过zip()
函数创建字典:
# 将2个数组合并为字典
list_name = ["张三", "李四", "我是小白呀"] # 名字数组
list_age = [45, 63, 18] # 年龄数组
dict_age = dict(zip(list_name, list_age)) # 字典
# 调试输出
print("名字数组:", list_name)
print("年龄数组:", list_age)
print("合并的字典:", dict_age)
输出结果:
名字数组: ['张三', '李四', '我是小白呀']
年龄数组: [45, 63, 18]
合并的字典: {'张三': 45, '李四': 63, '我是小白呀': 18}
数学运算
接下来, 小白我带大家来了解一下 Python 中的数学运算符相关的内置函数.
abs(): 绝对值
abs()
返回数字的绝对值.
格式:
num_abs = bas(需要取绝对值的变量)
例子:
x = abs(-2) # 输出 x=2
y = abs(-3.1415926) # 输出 y=3.1415926
pow(): 幂运算
pow()
函数返回 x 的 y 次幂.
格式:
output = pow(x, y)
例子:
x = pow(4, 3) # 输出 x=4^3=64
y = pow(2, 10) # 输出 y=2^10=1024
常用方法:
# 获取平方数组
original_list = [1, 2, 3, 4, 5]
squared_list = [pow(i, 2) for i in original_list]
# 调试输出
print("原始数组:", original_list)
输出结果:
原始数组: [1, 2, 3, 4, 5]
平方数组: [1, 4, 9, 16, 25]
round(): 四舍五入
round()
函数返回浮点数的四舍五入值.
格式:
num_round = round(number, ndigits=None)
参数:
- num: 浮点数
- digits: 保留小数点后几位, 默认为 None, 及四舍五入到整数
例子:
x = round(3.1415926) # 输出 x=3
y = round(3.1415926, 2) # 输出 y=3.14
常用方法:
# Todo: 将 DataFrame 中的数据取整
np.random.seed(0) # 设置随机数种子
list_id = [i for i in range(1, 11)] # 创建 id 数组 (1-11)
list_score = [np.random.rand() * 10 for _ in range(10)] # 创建 score 数组 [0-10) 随机小数
# 创建一个模拟 DataFrame, 数据为0-10的分数
df = pd.DataFrame({"id": list_id, "score":list_score})
print(df)
# 取整
df["score"] = round(df["score"])
print(df)
输出结果:
id score
0 1 5.488135
1 2 7.151894
2 3 6.027634
3 4 5.448832
4 5 4.236548
5 6 6.458941
6 7 4.375872
7 8 8.917730
8 9 9.636628
9 10 3.834415
id score
0 1 5.0
1 2 7.0
2 3 6.0
3 4 5.0
4 5 4.0
5 6 6.0
6 7 4.0
7 8 9.0
8 9 10.0
9 10 4.0
min(): 最小值
min()
函数返回给定参数的最小值, 参数可以为序列.
格式
out = min(iterable, *, key=None)
- iterable: 可迭代对象, 包括列表, 元组, 字符串等
- key: 指定函数, 默认为 None, 及比较元素本身
例子:
# 列表 min() 使用
list1 = [1, 2, 3, 4, 5]
list2 = ["a", "b", "c"]
min1 = min(list1)
min2 = min(list2)
# 元组 min() 使用
tuple1 = (2, 5, 9)
min3 = min(tuple1)
# 字典 min() 使用
dict1 = {'a': 70, 'b': 20, 'c': 30, 'd': 40}
min4 = min(dict1)
min5 = min(dict1, key=dict1.get)
# 调试输出
print(list1, "中列表元素最小值:", min1)
print(list2, "中列表元素最小值:", min2)
print(tuple1, "中元组元素最小值:", min3)
print(dict1, "中字典 key 最小值:", min4)
print(dict1, "中字典 value 最小值对应的 key:", min5)
输出结果:
[1, 2, 3, 4, 5] 中列表元素最小值: 1
['a', 'b', 'c'] 中列表元素最小值: a
(2, 5, 9) 中元组元素最小值: 2
{'a': 70, 'b': 20, 'c': 30, 'd': 40} 中字典 key 最小值: a
{'a': 70, 'b': 20, 'c': 30, 'd': 40} 中字典 value 最小值对应的 key: b
max():最大值
max()
函数返回给定参数的最大值, 参数可以为序列.
格式
out = max(iterable, *, key=None)
- iterable: 可迭代对象, 包括列表, 元组, 字符串等
- key: 指定函数, 默认为 None, 及比较元素本身
例子:
# 列表 max() 使用
list1 = ["abc", "bc", "c", "d"]
max1 = max(list1)
max2 = max(list1, key=len)
list2 = [3, -6, 7, -8, 2]
max3 = max(list2)
max4 = max(list2, key=abs)
# 字典 max() 使用
students = [
{"name": "Alice", "score": 85},
{"name": "Bob", "score": 90},
{"name": "Charlie", "score": 78}
]
max5 = max(students, key=lambda x: x['score'])
# 调试输出
print(list1, "中列表元素最大值:", max1)
print(list1, "中列表元素最长值:", max2)
print(list2, "中列表元素最大值:", max3)
print(list2, "中列表元素最大绝对值:", max4)
print(students, "中字典特定键最大值:", max5)
输出结果:
['abc', 'bc', 'c', 'd'] 中列表元素最大值: d
['abc', 'bc', 'c', 'd'] 中列表元素最长值: abc
[3, -6, 7, -8, 2] 中列表元素最大值: 7
[3, -6, 7, -8, 2] 中列表元素最大绝对值: -8
[{'name': 'Alice', 'score': 85}, {'name': 'Bob', 'score': 90}, {'name': 'Charlie', 'score': 78}] 中字典特定键最大值: {'name': 'Bob', 'score': 90}
sum(): 求和
sum()
: 函数用于对集合进行求和计算.
例子:
numbers = [1, 2, 3, 4, 5]
numbers_sum = sum(numbers) # 输出numbers_sum=15
常用方法:
# Todo: 将 DataFrame 中的学生每天用餐消费进行求和
# 创建数据
student_id = [111, 111, 111, 111, 112, 112, 112, 113, 113, 113, 113]
day = [1, 1, 2, 2, 1, 2, 3, 1, 2, 3, 3]
pay = [12, 23, 18, 26, 8, 11, 14, 15, 20, 21, 16]
df = pd.DataFrame({"student id": student_id, "day": day, "pay": pay})
print(df)
# 按 id 求和
result = df.groupby(["student id"])["pay"].sum().reset_index()
print("每个学生总消费:", result, sep="\n")
# 按 id 和日期求和
result = df.groupby(["student id", "day"])["pay"].sum().reset_index()
print("每个学生每日消费:", result, sep="\n")
输出结果:
每个学生总消费:
student id pay
0 111 79
1 112 33
2 113 72
每个学生每日消费:
student id day pay
0 111 1 35
1 111 2 44
2 112 1 8
3 112 2 11
4 112 3 14
5 113 1 15
6 113 2 20
7 113 3 37
divmod(): 商和余数
divmod()
函数接收两非复数的参数, 返回一对数的商和余数.
格式:
output = divmod(a, b)
参数:
- a: 除数
- b:被除数
- return: 商, 余, 同 (a // b, a % b)
例子:
# 8 对 3 的商和余数
result = divmod(8, 3) # 输出 result=(2, 2)