基础示例详解
本教程将通过几个简单的示例,帮助你快速入门 Python3 编程。我们将学习如何使用 Python 处理列表数据,包括查找最值、计算平均值、搜索特定元素以及统计元素频率。
1. 列表的最值与平均值
本节将演示如何在一个列表中找到最小值、最大值和平均值。我们将分别使用不使用内置函数和使用内置函数两种方法来实现。
a) 不使用内置函数实现
这段代码演示了如何手动遍历列表来找到最小值、最大值和计算平均值。
代码
python
# 创建一个空列表,用于存储用户输入的值
my_list = []
# 获取用户输入的列表长度
num_elements = int(input("请输入列表的长度: "))
# 循环读取用户输入的值,并将它们添加到列表中
for i in range(num_elements):
value = float(input(f"请输入第 {i+1} 个元素: ")) # f-string 格式化输出
my_list.append(value)
# 假设列表的第一个元素是最小值和最大值
min_value = my_list[0]
max_value = my_list[0]
sum_values = 0 # 初始化总和
# 遍历列表,更新最小值、最大值和总和
for value in my_list:
if value < min_value:
min_value = value # 找到更小的,更新最小值
if value > max_value:
max_value = value # 找到更大的,更新最大值
sum_values += value # 累加总和
# 计算平均值
average = sum_values / num_elements
# 打印结果
print("最小值:", min_value)
print("最大值:", max_value)
print("平均值:", average)
输出示例
请输入列表的长度: 5
请输入第 1 个元素: 3
请输入第 2 个元素: 2
请输入第 3 个元素: 6
请输入第 4 个元素: 9
请输入第 5 个元素: 1
最小值: 1.0
最大值: 9.0
平均值: 4.2
代码解释
- 初始化列表: 首先创建一个空列表
my_list
,用于存储用户输入的数值。 - 获取用户输入: 通过
input()
函数获取用户输入的列表长度和每个元素的值。int()
和float()
函数用于将用户输入转换为整数和浮点数。 - 初始化最值和总和: 假设列表的第一个元素是最小值和最大值,并将总和初始化为 0。
- 遍历列表: 使用
for
循环遍历列表中的每个元素。 - 更新最值和总和: 在循环中,使用
if
语句检查当前元素是否小于最小值或大于最大值,并相应地更新最小值和最大值。同时,将当前元素的值加到总和中。 - 计算平均值: 循环结束后,使用总和除以列表长度计算平均值。
- 打印结果: 使用
print()
函数打印最小值、最大值和平均值。 - f-string: 在python3.6之后,可以使用f-string进行字符串格式化,例如
f"请输入第 {i+1} 个元素: "
b) 使用内置函数实现
Python 提供了内置函数 min()
, max()
和 sum()
,可以更方便地找到列表的最值和计算总和。
代码
python
# 创建一个空列表
my_list = []
# 获取用户输入的列表长度
num_elements = int(input("请输入列表的长度: "))
# 循环读取用户输入的值,并将它们添加到列表中
for i in range(num_elements):
value = float(input(f"请输入第 {i+1} 个元素: "))
my_list.append(value)
# 使用内置函数计算最小值、最大值和平均值
min_value = min(my_list)
max_value = max(my_list)
average = sum(my_list) / num_elements
# 打印结果
print("最小值:", min_value)
print("最大值:", max_value)
print("平均值:", average)
输出示例
请输入列表的长度: 5
请输入第 1 个元素: 3
请输入第 2 个元素: 2
请输入第 3 个元素: 6
请输入第 4 个元素: 9
请输入第 5 个元素: 1
最小值: 1.0
最大值: 9.0
平均值: 4.2
代码解释
这个版本更加简洁,直接使用 min()
, max()
和 sum()
函数来计算最小值、最大值和总和,避免了手动遍历列表的过程。
2. 线性搜索
线性搜索是一种简单的搜索算法,它逐个检查列表中的每个元素,直到找到目标元素或搜索完整个列表。
代码
python
# 创建一个空列表
my_list = []
# 获取用户输入的列表长度
num_elements = int(input("请输入列表的长度: "))
# 循环读取用户输入的值,并将它们添加到列表中
for i in range(num_elements):
value = input(f"请输入第 {i+1} 个元素: ") # 允许输入字符串
my_list.append(value)
# 获取用户输入的搜索值
search_value = input("请输入要搜索的值: ")
# 初始化 found 为 False 和 position 为 -1
found = False
position = -1
# 遍历列表,查找搜索值
for i in range(num_elements):
if my_list[i] == search_value:
found = True
position = i # 记录找到的位置
break # 找到后立即退出循环
# 打印结果
if found:
print(f"搜索值 '{search_value}' 在索引 {position} 处找到")
else:
print(f"搜索值 '{search_value}' 未找到")
输出示例
请输入列表的长度: 4
请输入第 1 个元素: 2
请输入第 2 个元素: 6
请输入第 3 个元素: 3
请输入第 4 个元素: 7
请输入要搜索的值: 3
搜索值 '3' 在索引 2 处找到
请输入列表的长度: 4
请输入第 1 个元素: 2
请输入第 2 个元素: 6
请输入第 3 个元素: 3
请输入第 4 个元素: 7
请输入要搜索的值: 1
搜索值 '1' 未找到
代码解释
- 初始化变量:
found
变量用于标记是否找到搜索值,position
变量用于存储搜索值在列表中的位置。 - 遍历列表: 使用
for
循环遍历列表中的每个元素。 - 比较元素: 在循环中,使用
if
语句将当前元素与搜索值进行比较。 - 更新 found 和 position: 如果找到搜索值,将
found
设置为True
,并将position
设置为当前元素的索引。 - 退出循环: 找到搜索值后,使用
break
语句退出循环,因为没有必要继续搜索。 - 打印结果: 循环结束后,根据
found
变量的值,打印相应的消息。
3. 元素频率统计
本节将演示如何统计一个列表中每个元素的出现频率。
a) 不使用内置函数实现
代码
python
# 创建一个空列表
my_list = []
# 获取用户输入的列表长度
num_elements = int(input("请输入列表的长度: "))
# 循环读取用户输入的值,并将它们添加到列表中
for i in range(num_elements):
value = input(f"请输入第 {i+1} 个元素: ")
my_list.append(value)
# 创建两个列表:items 用于存储唯一元素,counts 用于存储每个元素的计数
items = []
counts = []
# 遍历列表,统计每个元素的频率
for value in my_list:
found_in_items = False # 标记是否已在 items 中找到
for index in range(len(items)):
if items[index] == value:
counts[index] += 1 # 增加计数
found_in_items = True
break
if not found_in_items:
items.append(value) # 添加到 items 列表
counts.append(1) # 初始化计数为 1
# 打印元素频率
print("元素频率:")
for index in range(len(items)):
print(f"{items[index]} - {counts[index]}")
输出示例
请输入列表的长度: 8
请输入第 1 个元素: 2
请输入第 2 个元素: 3
请输入第 3 个元素: 3
请输入第 4 个元素: 4
请输入第 5 个元素: 2
请输入第 6 个元素: 5
请输入第 7 个元素: 6
请输入第 8 个元素: 6
元素频率:
2 - 2
3 - 2
4 - 1
5 - 1
6 - 2
代码解释
- 创建
items
和counts
列表:items
列表用于存储列表中出现的唯一元素,counts
列表用于存储每个唯一元素的出现次数。 - 遍历列表: 使用
for
循环遍历列表中的每个元素。 - 检查元素是否已存在: 对于每个元素,检查它是否已经存在于
items
列表中。 - 更新计数或添加新元素: 如果元素已存在于
items
列表中,则增加其对应的计数。否则,将元素添加到items
列表,并将计数初始化为 1。 - 打印频率: 遍历
items
列表,并打印每个元素的频率。
b) 使用内置函数 count()
实现
代码
python
# 创建一个空列表
my_list = []
# 获取用户输入的列表长度
num_elements = int(input("请输入列表的长度: "))
# 循环读取用户输入的值,并将它们添加到列表中
for i in range(num_elements):
value = input(f"请输入第 {i+1} 个元素: ")
my_list.append(value)
# 创建一个列表,用于存储已计数的元素
counted_items = []
# 打印元素频率
print("元素频率:")
for value in my_list:
# 如果该元素尚未被计数
if value not in counted_items:
print(f"{value} - {my_list.count(value)}") # 使用 count() 函数获取频率
counted_items.append(value) # 将元素添加到已计数列表
输出示例
请输入列表的长度: 8
请输入第 1 个元素: 2
请输入第 2 个元素: 3
请输入第 3 个元素: 3
请输入第 4 个元素: 4
请输入第 5 个元素: 2
请输入第 6 个元素: 5
请输入第 7 个元素: 6
请输入第 8 个元素: 6
元素频率:
2 - 2
3 - 2
4 - 1
5 - 1
6 - 2
代码解释
这个版本使用了 Python 的内置函数 count()
,使得代码更加简洁易懂。my_list.count(value)
返回 value
在 my_list
中出现的次数。为了避免重复计数,使用 counted_items
列表来跟踪已经统计过的元素。