Skip to content

基础示例详解

本教程将通过几个简单的示例,帮助你快速入门 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

代码解释

  1. 初始化列表: 首先创建一个空列表 my_list,用于存储用户输入的数值。
  2. 获取用户输入: 通过 input() 函数获取用户输入的列表长度和每个元素的值。int()float() 函数用于将用户输入转换为整数和浮点数。
  3. 初始化最值和总和: 假设列表的第一个元素是最小值和最大值,并将总和初始化为 0。
  4. 遍历列表: 使用 for 循环遍历列表中的每个元素。
  5. 更新最值和总和: 在循环中,使用 if 语句检查当前元素是否小于最小值或大于最大值,并相应地更新最小值和最大值。同时,将当前元素的值加到总和中。
  6. 计算平均值: 循环结束后,使用总和除以列表长度计算平均值。
  7. 打印结果: 使用 print() 函数打印最小值、最大值和平均值。
  8. 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' 未找到

代码解释

  1. 初始化变量: found 变量用于标记是否找到搜索值,position 变量用于存储搜索值在列表中的位置。
  2. 遍历列表: 使用 for 循环遍历列表中的每个元素。
  3. 比较元素: 在循环中,使用 if 语句将当前元素与搜索值进行比较。
  4. 更新 found 和 position: 如果找到搜索值,将 found 设置为 True,并将 position 设置为当前元素的索引。
  5. 退出循环: 找到搜索值后,使用 break 语句退出循环,因为没有必要继续搜索。
  6. 打印结果: 循环结束后,根据 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

代码解释

  1. 创建 itemscounts 列表: items 列表用于存储列表中出现的唯一元素,counts 列表用于存储每个唯一元素的出现次数。
  2. 遍历列表: 使用 for 循环遍历列表中的每个元素。
  3. 检查元素是否已存在: 对于每个元素,检查它是否已经存在于 items 列表中。
  4. 更新计数或添加新元素: 如果元素已存在于 items 列表中,则增加其对应的计数。否则,将元素添加到 items 列表,并将计数初始化为 1。
  5. 打印频率: 遍历 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) 返回 valuemy_list 中出现的次数。为了避免重复计数,使用 counted_items 列表来跟踪已经统计过的元素。