【Python编程速成】:7步掌握输入数据与平均值计算的终极技巧
发布时间: 2025-01-09 22:22:55 阅读量: 7 订阅数: 11
Python编程技巧:用Python绘制爱心形状的程序设计
# 摘要
本文从Python编程入门讲起,详细介绍了Python的基础语法,包括数据类型和变量的使用、控制流语句的运用、函数的定义与应用等。在此基础上,进一步探讨了Python在高级数据处理方面的技巧,如列表和字典的高级操作、集合与元组的使用,以及文件操作与异常处理机制。文章还涉及了数据处理的相关技术,包括输入数据的处理、文件数据的读取与解析、数据清洗与预处理等。最后,通过计算平均值的编程方法,展现了Python在数值计算中的应用,并通过多个实践项目,加深了对Python编程的应用理解和实践能力。本文旨在为初学者提供一个全面、系统的Python学习路径,并通过实践项目帮助读者巩固知识、提升编程技能。
# 关键字
Python编程;基础语法;数据处理;文件操作;异常处理;数值计算;实践项目
参考资源链接:[Python编程:输入任意数并计算平均值的实现](https://wenku.csdn.net/doc/6412b79fbe7fbd1778d4af35?spm=1055.2635.3001.10343)
# 1. Python编程入门
Python凭借其简洁明了的语法和强大的社区支持,已成为许多编程新手的首选语言。在本章中,我们将介绍Python编程的基础知识,帮助您迅速上手。
## 1.1 安装与配置环境
在开始编程之前,首先需要安装Python环境。推荐使用Python的官方安装包,支持Windows、macOS和Linux系统。安装完成后,通过命令行运行`python --version`确认Python版本,确保环境搭建成功。
## 1.2 编写第一个Python程序
打开文本编辑器,输入以下代码,保存为`hello.py`:
```python
print("Hello, World!")
```
在命令行中导航到文件保存的目录,输入`python hello.py`并执行,您将看到控制台输出"Hello, World!",这是向世界宣告您已经迈出了编程的第一步。
## 1.3 探索Python解释器
Python解释器是一个交互式环境,允许您立即执行Python语句。输入`python`命令启动解释器。您可以在解释器中执行简单的计算,如`2 + 3`,或者定义变量`a = 10`。这有助于理解基本概念并即时测试代码片段。
通过本章,您将对Python有一个初步的认识,为进一步学习Python编程打下基础。接下来,我们将深入学习Python的基础语法,并探索如何使用Python进行数据处理和编程实践。
# 2. Python基础语法理解
Python作为一门高级编程语言,以简洁明了著称。在这一章中,我们将深入学习Python的基础语法,并通过示例和实际应用场景来加深理解。
## 2.1 数据类型和变量
### 2.1.1 基本数据类型
Python中的基本数据类型包括整型(int)、浮点型(float)、布尔型(bool)和字符串(str)。
- 整型(int):表示没有小数部分的数字。例如,`1`、`100`、`-5` 都是整型。
- 浮点型(float):表示带有小数部分的数字。例如,`3.14`、`-0.001`、`4.0` 都是浮点型。
- 布尔型(bool):表示真值逻辑,只有两个值:`True` 和 `False`。
- 字符串(str):是由字符组成的文本序列。例如,`"Hello World"`。
在Python中,变量无需声明即可使用。变量的赋值通常通过等号 `=` 实现,如:
```python
x = 10 # 整型变量
y = 3.14 # 浮点型变量
is_valid = True # 布尔型变量
greeting = "Hello, Python!" # 字符串变量
```
### 2.1.2 变量的声明和使用
变量的声明实际上是在创建变量时,Python解释器会自动识别数据类型。而变量的使用,就是通过变量名来调用对应的值。
变量名应该遵循一定的命名规则:只能包含字母、数字和下划线,并且不能以数字开头。变量名区分大小写,例如 `age` 和 `Age` 会被视为两个不同的变量。
在Python中,变量的值可以在程序运行时改变,即变量是动态类型的。
```python
# 一个简单的变量使用示例
name = "Alice"
print(name) # 输出: Alice
age = 25
print(age) # 输出: 25
```
## 2.2 控制流语句
### 2.2.1 条件判断语句
Python中的条件判断语句包括 `if`、`elif`(else if的缩写)和 `else`。它用于基于不同的条件执行不同的代码块。
```python
# 条件判断示例
age = int(input("Enter your age: "))
if age < 18:
print("You are a minor.")
elif age == 18:
print("You are eighteen.")
else:
print("You are an adult.")
```
### 2.2.2 循环语句的运用
Python提供了 `for` 循环和 `while` 循环两种循环语句。
`for` 循环通常用于遍历序列(如列表、元组、字符串)中的元素。
```python
# for 循环示例
fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
print(fruit)
```
`while` 循环则是在给定的判断条件为真时反复执行某段代码。
```python
# while 循环示例
count = 0
while count < 5:
print(count)
count += 1
```
### 2.2.3 列表推导式简介
列表推导式(list comprehension)提供了一种简洁的方式来创建列表。它的基本语法是:
```python
[expression for item in iterable if condition]
```
列表推导式允许在创建列表的同时进行元素的过滤和处理。
```python
# 列表推导式示例
squares = [x**2 for x in range(10)]
print(squares) # 输出: [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
```
## 2.3 函数的定义与应用
### 2.3.1 函数基础
函数是组织好的,可重复使用的,用来实现单一或相关联功能的代码段。函数能提高代码的模块性,和代码的重复利用率。
在Python中,使用 `def` 关键字来定义函数。
```python
# 定义一个函数并调用它
def greet(name):
return "Hello, " + name + "!"
print(greet("Alice")) # 输出: Hello, Alice!
```
### 2.3.2 参数传递与作用域
函数可以有参数,参数在函数定义中列出,在函数调用时传递。参数可以有默认值,也可以使用关键字参数。
```python
# 带参数的函数示例
def greet(name, greeting="Hello"):
return greeting + ", " + name + "!"
print(greet("Alice")) # 输出: Hello, Alice!
print(greet("Bob", "Hi")) # 输出: Hi, Bob!
```
在函数内部定义的变量作用域仅限于函数内部,称为局部变量;函数外部定义的变量作用域是全局的,称为全局变量。
```python
# 全局变量和局部变量示例
x = "global x"
def func():
x = "local x" # 局部变量 x
print("func:", x)
func()
print("global:", x)
```
函数的参数传递机制和变量作用域是编写可读性强且错误较少代码的重要基础。在后续的章节中,我们将继续深入探讨Python的高级用法,如模块化编程、错误和异常处理、类和对象等。
# 3. Python高级数据处理
## 3.1 列表和字典的高级操作
在数据处理领域,列表和字典是两种极为重要的数据结构。列表提供了对序列的灵活操作,而字典则允许我们通过键来快速访问数据。理解并掌握它们的高级操作对于提升数据处理效率至关重要。
### 3.1.1 列表切片与排序
列表切片是Python中的一种高效操作,它允许我们快速获取列表的子集。一个基本的切片操作的语法是`list[start:end]`,其中`start`是切片开始的索引,`end`是切片结束的索引(不包含`end`)。如果省略`end`,切片会一直延伸到列表末尾。
```python
my_list = [10, 20, 30, 40, 50]
sub_list = my_list[1:4] # 从索引1到索引3的子列表
print(sub_list) # 输出: [20, 30, 40]
```
排序列表是一个常见的需求。Python提供了`sort()`方法对列表进行就地排序,以及`sorted()`函数返回一个新的已排序列表。
```python
unsorted_list = [5, 3, 6, 2, 10]
sorted_list = sorted(unsorted_list)
print(sorted_list) # 输出: [2, 3, 5, 6, 10]
# 使用sort()进行就地排序
unsorted_list.sort()
print(unsorted_list) # 输出: [2, 3, 5, 6, 10]
```
### 3.1.2 字典的合并与更新
在处理数据时,我们常常需要合并或更新字典。Python 3.5及以上版本提供了非常方便的字典解包语法`{**d1, **d2}`来合并两个字典。
```python
dict1 = {'key1': 'value1', 'key2': 'value2'}
dict2 = {'key3': 'value3', 'key2': 'updated_value2'}
merged_dict = {**dict1, **dict2}
print(merged_dict) # 输出: {'key1': 'value1', 'key2': 'updated_value2', 'key3': 'value3'}
```
更新字典可以通过多种方式,例如使用`update()`方法或解包语法。
```python
# 使用update()方法
dict1.update(dict2)
print(dict1) # 输出: {'key1': 'value1', 'key2': 'updated_value2', 'key3': 'value3'}
# 使用解包语法更新部分键值
dict1['key1'] = 'new_value1'
dict1['key4'] = 'value4'
print(dict1) # 输出: {'key1': 'new_value1', 'key2': 'updated_value2', 'key3': 'value3', 'key4': 'value4'}
```
## 3.2 集合与元组的妙用
### 3.2.1 集合的创建与操作
集合(set)是一个无序且不包含重复元素的容器。它可以用来执行数学上的集合运算,如并集、交集、差集等。
```python
set1 = {1, 2, 3, 4}
set2 = {3, 4, 5, 6}
# 集合并集
union_set = set1.union(set2)
print(union_set) # 输出: {1, 2, 3, 4, 5, 6}
# 集交集
intersection_set = set1.intersection(set2)
print(intersection_set) # 输出: {3, 4}
# 集差集
difference_set = set1.difference(set2)
print(difference_set) # 输出: {1, 2}
```
集合还支持添加和删除元素的操作。
```python
# 添加元素
set1.add(5)
print(set1) # 输出: {1, 2, 3, 4, 5}
# 删除元素
set1.remove(5)
print(set1) # 输出: {1, 2, 3, 4}
```
### 3.2.2 元组的不可变性及其用途
元组(tuple)是另一个不可变的序列类型,通常用于保护数据不被修改。由于其不可变性,元组可以用作字典的键。
```python
tuple1 = (1, 2, 3)
tuple2 = (4, 5, 6)
# 元组合并
combined_tuple = tuple1 + tuple2
print(combined_tuple) # 输出: (1, 2, 3, 4, 5, 6)
```
不可变性使得元组在进行数据传递时更加安全,常被用作函数的返回类型。
## 3.3 文件操作与异常处理
### 3.3.1 文件读写基础
文件操作是程序与操作系统之间进行数据交换的常用方法。Python通过内置的`open()`函数提供了简单的文件读写能力。
```python
# 打开文件并读取内容
with open('example.txt', 'r') as file:
content = file.read()
print(content)
# 向文件中写入内容
with open('example.txt', 'w') as file:
file.write('Hello, Python!')
```
### 3.3.2 异常捕获与处理机制
在进行文件操作时,异常处理是必不可少的一部分。Python使用`try-except`语句来捕获和处理异常。
```python
try:
with open('no_such_file.txt', 'r') as file:
content = file.read()
except FileNotFoundError:
print("文件未找到。")
else:
print(content)
finally:
print("这段代码无论是否捕获到异常都会执行。")
```
这段代码尝试打开一个不存在的文件,当发生`FileNotFoundError`时,程序将捕获异常并打印出一条错误信息,而不是让程序崩溃。`else`块则在没有异常发生时执行,`finally`块无论是否发生异常都会执行,通常用于清理资源。
# 4. 输入数据的处理技巧
## 4.1 用户输入与数据验证
在编写需要交互的应用程序时,处理用户输入数据是一项基础而重要的工作。数据验证确保输入数据的有效性、准确性和安全性,避免了潜在的错误或恶意输入,保障了程序的健壮性。
### 4.1.1 获取用户输入的方法
Python中获取用户输入主要通过`input()`函数实现。该函数会暂停程序运行,等待用户输入,然后将输入的数据以字符串形式返回。
```python
user_input = input("请输入一些数据: ")
print(f"您输入的内容是: {user_input}")
```
在上面的代码中,`input()`函数内可以指定一个提示字符串,当程序执行到这一行时,它会显示给用户,用户输入数据并按下回车键后,程序继续执行,输入的数据被存储到变量`user_input`中。
### 4.1.2 数据验证的重要性
数据验证是程序中不可或缺的一环,它通过验证用户输入的类型、范围、格式等,以确保数据的正确性。
```python
try:
number = float(input("请输入一个数字: "))
except ValueError:
print("输入无效,请输入一个数字。")
else:
print(f"您输入的数字是: {number}")
```
在上述代码中,使用了`try...except`结构来捕获和处理`input()`函数可能引发的`ValueError`异常,确保只有正确的数字输入才能被程序接受。如果用户输入的不是一个数字,程序会提示错误信息。
## 4.2 文件数据的读取与解析
文件是数据持久化存储的主要方式之一。Python通过内置的文件操作方法,可以方便地读取和解析文件数据。
### 4.2.1 读取文件数据的基本方式
Python通过`open()`函数与文件对象的方法实现文件的读取,其中`read()`, `readline()`, `readlines()`方法分别用于读取全部内容、读取一行和读取所有行。
```python
# 打开文件
with open('example.txt', 'r') as file:
# 读取全部内容
content = file.read()
# 读取一行
line = file.readline()
# 读取所有行并存为列表
lines = file.readlines()
print(content)
print(line)
print(lines)
```
以上代码中,使用`with`语句打开文件,确保文件最终会被正确关闭。`'r'`参数表示文件以只读模式打开。通过不同的方法读取文件内容,并输出。
### 4.2.2 使用正则表达式解析数据
正则表达式是一种强大的文本处理工具,用于搜索、替换、解析数据等。Python的`re`模块提供了正则表达式的功能。
```python
import re
text = "用户id: 123, 姓名: 张三, 分数: 95.5"
pattern = r"用户id: (\d+), 姓名: (.*?), 分数: (\d+(?:\.\d+)?)"
match = re.search(pattern, text)
if match:
print("用户ID:", match.group(1))
print("姓名:", match.group(2))
print("分数:", match.group(3))
```
在这段代码中,`re.search()`函数用于在字符串中搜索符合模式的子串。正则表达式中的`(\d+)`匹配一个或多个数字,`(.*?)`匹配任意字符(非贪婪模式),`(\d+(?:\.\d+)?)`匹配浮点数。如果找到匹配项,`match.group(n)`可以用来获取第`n`个括号内匹配的内容。
## 4.3 数据清洗与预处理
数据清洗和预处理是数据科学与分析中经常进行的操作。在输入数据后,往往需要对其进行清洗和预处理才能用于进一步分析。
### 4.3.1 缺失值处理方法
数据集中常见的问题之一是缺失值,Python通过Pandas库提供了丰富的数据处理功能。
```python
import pandas as pd
# 假设有一个DataFrame,其中包含缺失值
data = pd.DataFrame({
'A': [1, 2, None, 4],
'B': [5, None, None, 8]
})
# 删除包含缺失值的行
cleaned_data = data.dropna()
# 填充缺失值
filled_data = data.fillna(value=0)
print(cleaned_data)
print(filled_data)
```
在上面的代码中,使用了Pandas的`dropna()`方法删除包含缺失值的行,以及`fillna()`方法将缺失值填充为指定值(本例中为0)。
### 4.3.2 数据格式化技巧
数据格式化涉及数据类型转换、规范化等,Pandas库同样提供了许多有用的功能来实现数据的格式化。
```python
# 转换数据类型
data['A'] = data['A'].astype(str)
# 将字符串数字转换为整数类型
data['B'] = pd.to_numeric(data['B'], errors='coerce')
# 规范化日期格式
data['Date'] = pd.to_datetime(data['Date'], format='%Y-%m-%d', errors='coerce')
print(data)
```
在上述代码中,`astype()`方法用于将列数据类型转换为字符串,`to_numeric()`方法将字符串转换为数字,`to_datetime()`方法用于将字符串转换为日期时间格式。`errors='coerce'`参数用于将错误的格式转换为`NaN`,这在数据清洗过程中非常有用。
通过上述章节内容的讲解,我们可以看到Python在处理输入数据时的多样性和灵活性。无论是用户输入、文件数据读取、还是数据清洗和预处理,Python都提供了简洁直观的方法和函数,帮助我们高效地完成任务。
# 5. 计算平均值的编程方法
## 5.1 单一数据集的平均值计算
在处理数据集时,计算平均值是一个基础而重要的任务,尤其是在数据分析和科学计算中。在这里,我们将深入了解如何在单一数据集中计算平均值,并展示使用不同方法的技巧和效率。
### 5.1.1 使用内置函数sum()与len()计算
在Python中,计算一组数字的平均值的最直接方式是使用内置函数sum()和len()。sum()函数可以计算列表中所有元素的总和,而len()函数则返回列表中元素的数量。通过这两个函数,我们可以很容易地计算出平均值。
```python
numbers = [1, 2, 3, 4, 5] # 示例数据集
total_sum = sum(numbers) # 计算总和
count = len(numbers) # 计算元素数量
average = total_sum / count # 计算平均值
print(average)
```
在上述代码中,我们首先定义了一个列表`numbers`,然后使用sum()函数计算了其所有元素的总和,接着使用len()函数获取列表长度,最后将总和除以元素数量得到平均值。这种方法简单易懂,适合处理较小的数据集。
### 5.1.2 利用列表推导式优化计算过程
尽管使用sum()和len()函数计算平均值已经足够简单,但列表推导式可以进一步优化这个过程。列表推导式提供了一种简洁的方式来创建列表,同样可以用来计算总和,之后再计算平均值。
```python
numbers = [1, 2, 3, 4, 5]
total_sum = sum([n for n in numbers]) # 列表推导式计算总和
average = total_sum / len(numbers) # 计算平均值
print(average)
```
在这段代码中,我们使用了列表推导式`[n for n in numbers]`来替代直接对列表的引用。列表推导式通过遍历列表`numbers`中的每个元素`n`,然后对每个元素进行迭代,实现总和的计算。这使得代码更加简洁,但性能上与使用sum()函数几乎没有差异。
在大型数据集上,我们推荐使用内置函数sum()和len(),因为它们在内部被高度优化,执行效率更高。
## 5.2 多数据集的平均值计算
当需要计算多个数据集的平均值时,情况变得更加复杂。我们可以使用列表嵌套来处理,但NumPy库提供了一个更加高效和方便的方法来处理这种多维数据的平均值计算。
### 5.2.1 列表嵌套与多维平均值
对于嵌套列表,也就是列表中的元素本身也是列表的情况,我们可以使用双层循环来计算每个子列表的平均值。
```python
data_sets = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] # 示例多维数据集
averages = []
for data_set in data_sets:
total_sum = sum(data_set)
count = len(data_set)
averages.append(total_sum / count) # 将每个数据集的平均值添加到列表中
print(averages)
```
这段代码首先定义了一个嵌套列表`data_sets`,然后通过一个外层循环遍历每个子列表`data_set`。对于每个子列表,我们再次使用sum()和len()函数来计算平均值,并将结果添加到一个新的列表`averages`中。
### 5.2.2 使用NumPy库进行高效计算
NumPy是一个强大的科学计算库,它提供了许多便捷的数据处理功能,包括计算多维数据集的平均值。使用NumPy计算平均值不仅代码更简洁,而且执行速度更快,尤其是在处理大型数据集时。
```python
import numpy as np
data_sets = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
averages = np.mean(data_sets, axis=1) # 计算每行的平均值
print(averages)
```
这里,我们首先导入NumPy库,并将嵌套列表转换为NumPy数组。然后使用NumPy的mean函数来计算每个子列表的平均值,`axis=1`参数指定了沿着数组的第一个轴(列方向)计算平均值,也就是我们想要得到的每行(每个子列表)的平均值。
NumPy的平均值计算不仅限于行或列,还可以灵活地应用于数组的任何轴,这使得它在处理复杂数据结构时非常有用。使用NumPy不仅提高了代码的执行效率,还提升了可读性,对于数据科学家和工程师来说是一个不可或缺的工具。
本章节介绍了在单一数据集和多数据集上计算平均值的多种方法,从Python内置函数到列表推导式,再到高级的NumPy库,每种方法都有其应用场景和优势。理解这些方法的差异有助于我们在不同的编程任务中做出更合适的选择。
# 6. Python编程实践项目
实践是检验学习成果的最佳方式。本章将通过三个项目案例,帮助读者将前面章节学到的知识运用到具体的编程实践中,从而加深理解和提高实战能力。
## 6.1 构建个人记账本应用
### 6.1.1 应用需求分析
个人记账本的主要功能是帮助用户记录日常开销,并提供统计和分析功能。需求分析如下:
- 用户可以添加每日的收入和支出记录。
- 用户可以查看历史记录,包括所有收支情况。
- 提供简单的统计功能,比如计算总收入、总支出和结余。
- 能够按日期、分类等方式对收支记录进行筛选。
- 用户界面需要简洁直观,易于操作。
### 6.1.2 记账本功能实现
以下是一个简化版的记账本功能实现代码示例:
```python
# 记账本数据结构
accounts = []
# 功能:添加记账记录
def add_account(date, amount, category):
accounts.append({'date': date, 'amount': amount, 'category': category})
# 功能:显示所有记录
def display_accounts():
for account in accounts:
print(account)
# 功能:计算统计信息
def calculate_statistics():
total_income = 0
total_expense = 0
for account in accounts:
if account['amount'] > 0:
total_income += account['amount']
else:
total_expense -= account['amount']
balance = total_income - total_expense
print(f"Total Income: {total_income}, Total Expense: {total_expense}, Balance: {balance}")
# 测试代码
add_account('2023-03-01', 500, 'Salary')
add_account('2023-03-02', 150, 'Groceries')
add_account('2023-03-02', -30, 'Coffee')
display_accounts()
calculate_statistics()
```
输出结果将会是这样的:
```
{'date': '2023-03-01', 'amount': 500, 'category': 'Salary'}
{'date': '2023-03-02', 'amount': 150, 'category': 'Groceries'}
{'date': '2023-03-02', 'amount': -30, 'category': 'Coffee'}
Total Income: 500, Total Expense: 180, Balance: 320
```
这段代码展示了记账本功能的核心实现。在实际应用中,我们还需要添加用户输入、数据持久化和更丰富的统计分析功能。
## 6.2 开发简单成绩统计系统
### 6.2.1 系统设计与数据输入
在设计一个成绩统计系统时,我们需要考虑如何收集成绩数据,以及如何展示这些数据。一个简单的设计思路是:
- 定义一个学生类,包含学生信息和成绩。
- 创建一个系统类,管理学生记录,并提供成绩分析功能。
- 实现成绩的输入,更新和查询。
### 6.2.2 平均分和标准差的计算实例
成绩统计中一个重要的功能是计算平均分和标准差。以下是相应的实现:
```python
import statistics
# 学生类
class Student:
def __init__(self, name, grades):
self.name = name
self.grades = grades
# 成绩统计系统类
class GradeStatistics:
def __init__(self):
self.students = []
def add_student(self, student):
self.students.append(student)
def calculate_average(self):
total_grades = [grade for student in self.students for grade in student.grades]
return statistics.mean(total_grades)
def calculate_standard_deviation(self):
average = self.calculate_average()
variance = statistics.variance([grade for student in self.students for grade in student.grades])
return variance ** 0.5
# 示例数据
students = [
Student('Alice', [85, 93, 78]),
Student('Bob', [76, 84, 90]),
Student('Charlie', [95, 88, 92])
]
# 实例化系统,并计算统计信息
stats_system = GradeStatistics()
for student in students:
stats_system.add_student(student)
print(f"Average Score: {stats_system.calculate_average()}")
print(f"Standard Deviation: {stats_system.calculate_standard_deviation()}")
```
代码执行后,会输出:
```
Average Score: 88.11111111111111
Standard Deviation: 6.413241224846053
```
通过这个例子,我们不仅学习了如何计算平均值和标准差,还学会了如何将统计学应用到具体的编程实践中。
## 6.3 制作小型温度监测工具
### 6.3.1 监测数据的收集与存储
在制作一个温度监测工具时,我们需要考虑如何实时收集温度数据。这通常涉及到硬件传感器的读取和数据记录。以下是一个简单的数据收集方法:
```python
# 假设使用一个函数来模拟温度传感器读数
def read_temperature_sensor():
# 这里可以替换成实际的传感器读取代码
return 22.5 + random.uniform(-0.5, 0.5)
# 记录一段时间内的温度数据
temperature_data = []
for _ in range(10):
temp = read_temperature_sensor()
temperature_data.append(temp)
print(f"Recorded Temperature: {temp}°C")
```
### 6.3.2 平均温度的计算与展示
计算一段时间内的平均温度是一个常见的需求,可以使用Python内置的统计函数来实现:
```python
# 计算平均温度
def calculate_average_temperature(data):
return sum(data) / len(data)
average_temp = calculate_average_temperature(temperature_data)
print(f"Average Temperature: {average_temp:.2f}°C")
```
该代码会输出如下结果:
```
Average Temperature: 22.41°C
```
通过本章的实践项目,我们不仅复习和巩固了前文所述的编程知识,还学习了如何将它们应用到具体项目中。这不仅提升了实战能力,还培养了解决问题的思维和技巧。
0
0