Python 基础与环境配置

Python 基础与环境配置

第一篇:Python 基础与环境配置

在这里插入图片描述

学习目标

💡 掌握 Python 语言的基本语法和编程思想
💡 学会安装和配置 Python 开发环境
💡 理解并熟练运用 Python 的数据类型、变量和运算符
💡 掌握 Python 的流程控制语句(条件判断、循环)
💡 学会使用 Python 的函数和模块
💡 了解 Python 的常用开发工具和集成开发环境(IDE)
💡 具备编写简单 Python 程序的能力

重点内容

  • Python 语言的发展历程与特点
  • Python 开发环境的安装与配置
  • Python 的基本语法(变量、数据类型、运算符)
  • 流程控制语句(if 语句、for 循环、while 循环)
  • 函数的定义、调用和参数传递
  • 模块和包的使用
  • 常用开发工具和 IDE 介绍
  • 实战项目:编写简单的数据分析程序

一、Python 语言概述

1.1 Python 的发展历程

Python 是一种高级编程语言,由荷兰计算机科学家 Guido van Rossum 于 1989 年圣诞节期间开始设计开发。Python 的设计理念强调代码的可读性和简洁性,使用缩进来表示代码块,而非传统的大括号。

Python 的发展历程如下:

  • 1989 年:Guido van Rossum 开始设计 Python 语言
  • 1991 年:Python 0.9.0 发布
  • 2000 年:Python 2.0 发布
  • 2008 年:Python 3.0 发布,这是一个不兼容 Python 2.x 的重大版本
  • 2020 年:Python 2.7 停止官方支持,用户需迁移到 Python 3.x
  • 至今:Python 3.x 不断更新,已成为最流行的编程语言之一

1.2 Python 的特点

Python 具有以下特点:

1.2.1 可读性高

Python 的语法简洁清晰,使用缩进来表示代码块,代码的可读性非常高。这使得 Python 代码易于维护和理解。

1.2.2 功能强大

Python 具有丰富的标准库和第三方库,支持多种编程范式,包括面向对象编程、函数式编程和过程式编程。

1.2.3 跨平台

Python 是一种跨平台的编程语言,可以在 Windows、macOS 和 Linux 等操作系统上运行。

1.2.4 易于学习

Python 的语法简单,入门门槛低,适合初学者学习。同时,Python 社区提供了大量的学习资源和支持。

1.2.5 广泛应用

Python 在数据科学、人工智能、Web 开发、自动化运维等领域都有广泛的应用。

1.3 Python 的应用领域

Python 的应用领域非常广泛,主要包括以下几个方面:

1.3.1 数据科学与人工智能

Python 在数据科学和人工智能领域的应用非常广泛。它提供了丰富的数据处理和分析库,如 NumPy、Pandas、Matplotlib 等,同时也支持深度学习框架,如 TensorFlow、PyTorch 等。

1.3.2 Web 开发

Python 在 Web 开发领域也有广泛的应用。它提供了多种 Web 开发框架,如 Django、Flask 等,可以快速构建高性能的 Web 应用。

1.3.3 自动化运维

Python 在自动化运维领域的应用也非常广泛。它可以帮助运维人员自动化处理大量的重复性工作,提高工作效率。

1.3.4 科学计算

Python 在科学计算领域也有广泛的应用。它提供了丰富的科学计算库,如 SciPy、SymPy 等,可以帮助科学家解决复杂的科学计算问题。

1.3.5 游戏开发

Python 在游戏开发领域也有一定的应用。虽然 Python 的性能不如 C++,但它可以用于开发一些简单的游戏和游戏原型。


二、Python 开发环境安装与配置

2.1 Python 解释器安装

Python 解释器是运行 Python 代码的核心组件。我们可以从 Python 官方网站下载 Python 解释器的安装包。

2.1.1 下载 Python 解释器

访问 Python 官方网站(https://www.python.org/),点击 “Downloads” 菜单,选择相应的操作系统和版本进行下载。

目前,Python 的最新版本是 3.12。建议下载最新版本的 Python 解释器。

2.1.2 安装 Python 解释器

下载完成后,运行安装包进行安装。在安装过程中,需要注意以下几点:

  • 勾选 “Add Python to PATH” 选项,以便在命令行中可以直接运行 Python 解释器。
  • 选择安装路径,建议使用默认路径。
  • 点击 “Install Now” 按钮,开始安装。

安装完成后,可以在命令行中输入以下命令验证是否安装成功:

python --version 

如果输出 Python 的版本号,说明安装成功。

2.2 集成开发环境(IDE)选择

集成开发环境(IDE)可以帮助开发者提高开发效率。以下是一些常用的 Python IDE:

2.2.1 PyCharm

PyCharm 是 JetBrains 公司开发的一款专业的 Python IDE。它提供了代码自动补全、语法高亮、调试功能等,是 Python 开发者的首选工具之一。

PyCharm 分为社区版和专业版。社区版是免费的,适合初学者使用;专业版需要付费,但提供了更多的功能。

2.2.2 VS Code

VS Code 是微软开发的一款开源的代码编辑器。它支持多种编程语言,包括 Python。VS Code 提供了丰富的插件和扩展,可以满足开发者的需求。

2.2.3 Sublime Text

Sublime Text 是一款轻量级的代码编辑器。它支持多种编程语言,包括 Python。Sublime Text 提供了丰富的插件和扩展,可以满足开发者的需求。

2.2.4 Jupyter Notebook

Jupyter Notebook 是一种交互式计算环境。它可以将代码、文本、图像等内容结合在一起,形成一个可分享的文档。Jupyter Notebook 适合数据科学和机器学习领域的开发。

2.3 包管理工具

Python 的包管理工具可以帮助开发者安装和管理第三方库。以下是一些常用的包管理工具:

2.3.1 pip

pip 是 Python 的官方包管理工具。它可以帮助开发者安装和管理第三方库。在 Python 3.4 及以上版本中,pip 已经默认安装。

可以使用以下命令验证 pip 是否安装成功:

pip --version 

如果输出 pip 的版本号,说明安装成功。

2.3.2 conda

conda 是 Anaconda 发行版的包管理工具。它可以帮助开发者安装和管理第三方库,同时也可以管理 Python 环境。

可以使用以下命令验证 conda 是否安装成功:

conda --version 

如果输出 conda 的版本号,说明安装成功。

2.4 环境配置实战

2.4.1 安装 PyCharm
  1. 访问 PyCharm 官方网站(https://www.jetbrains.com/pycharm/),下载 PyCharm 的安装包。
  2. 运行安装包进行安装。在安装过程中,需要注意以下几点:
    • 选择安装路径,建议使用默认路径。
    • 选择安装选项,建议勾选 “Create desktop shortcut” 和 “Add launchers dir to PATH” 选项。
    • 点击 “Install” 按钮,开始安装。
  3. 安装完成后,启动 PyCharm。
2.4.2 配置 Python 解释器

在 PyCharm 中,需要配置 Python 解释器。以下是配置步骤:

  1. 打开 PyCharm,点击 “File” → “Settings” → “Project: [项目名]” → “Python Interpreter”。
  2. 点击齿轮图标,选择 “Add”。
  3. 选择 “System Interpreter”,点击 “Next”。
  4. 选择 Python 解释器的安装路径,点击 “OK”。
  5. 点击 “Apply” 按钮,保存配置。
2.4.3 安装第三方库

在 PyCharm 中,可以使用 pip 安装第三方库。以下是安装步骤:

  1. 打开 PyCharm,点击 “File” → “Settings” → “Project: [项目名]” → “Python Interpreter”。
  2. 点击 “+” 图标,打开 “Available Packages” 窗口。
  3. 在搜索框中输入要安装的第三方库的名称,如 “numpy”。
  4. 选择要安装的第三方库,点击 “Install Package” 按钮。
  5. 等待安装完成。

三、Python 基本语法

3.1 变量与数据类型

3.1.1 变量定义

在 Python 中,变量的定义非常简单,不需要声明变量类型。变量的类型会根据赋值自动确定。

例如:

x =10# 整数类型 y =3.14# 浮点数类型 z ="Hello, Python!"# 字符串类型
3.1.2 数据类型

Python 支持多种数据类型,主要包括以下几种:

  1. 整数类型(int):表示整数,如 10、-5、0 等。
  2. 浮点数类型(float):表示浮点数,如 3.14、-0.5 等。
  3. 字符串类型(str):表示字符串,如 “Hello”、‘World’ 等。
  4. 布尔类型(bool):表示布尔值,只有 True 和 False 两个值。
  5. 列表类型(list):表示列表,是一种有序的集合,可以包含任意类型的元素。
  6. 元组类型(tuple):表示元组,是一种有序的集合,但元素不能修改。
  7. 字典类型(dict):表示字典,是一种无序的键值对集合。
  8. 集合类型(set):表示集合,是一种无序的、不重复的元素集合。
3.1.3 类型转换

在 Python 中,可以使用内置函数进行类型转换。以下是一些常用的类型转换函数:

  1. int():将其他类型转换为整数类型。
  2. float():将其他类型转换为浮点数类型。
  3. str():将其他类型转换为字符串类型。
  4. bool():将其他类型转换为布尔类型。

例如:

x =10 y =float(x)# 将整数转换为浮点数,y 的值为 10.0 z =str(x)# 将整数转换为字符串,z 的值为 "10" a =3.14 b =int(a)# 将浮点数转换为整数,b 的值为 3 c ="Hello" d =bool(c)# 将字符串转换为布尔类型,d 的值为 True

3.2 运算符

Python 支持多种运算符,主要包括以下几种:

3.2.1 算术运算符

算术运算符用于进行数学运算。以下是一些常用的算术运算符:

运算符功能示例
+加法2 + 3 = 5
-减法5 - 2 = 3
*乘法2 * 3 = 6
/除法6 / 2 = 3.0
//整数除法7 // 2 = 3
%取模7 % 2 = 1
**幂运算2 ** 3 = 8
3.2.2 比较运算符

比较运算符用于比较两个值的大小。以下是一些常用的比较运算符:

运算符功能示例
==等于2 == 3 → False
!=不等于2 != 3 → True
>大于2 > 3 → False
<小于2 < 3 → True
>=大于等于2 >= 3 → False
<=小于等于2 <= 3 → True
3.2.3 逻辑运算符

逻辑运算符用于进行逻辑运算。以下是一些常用的逻辑运算符:

运算符功能示例
and逻辑与True and False → False
or逻辑或True or False → True
not逻辑非not True → False
3.2.4 赋值运算符

赋值运算符用于给变量赋值。以下是一些常用的赋值运算符:

运算符功能示例
=赋值x = 10
+=加法赋值x += 5 → x = x + 5
-=减法赋值x -= 5 → x = x - 5
*=乘法赋值x *= 5 → x = x * 5
/=除法赋值x /= 5 → x = x / 5
//=整数除法赋值x //= 5 → x = x // 5
%=取模赋值x %= 5 → x = x % 5
**=幂运算赋值x **= 5 → x = x ** 5
3.2.5 位运算符

位运算符用于进行位运算。以下是一些常用的位运算符:

运算符功能示例
&按位与5 & 3 = 1
|按位或5 | 3 = 7
^按位异或5 ^ 3 = 6
~按位取反~5 = -6
<<左移5 << 1 = 10
>>右移5 >> 1 = 2
3.2.6 成员运算符

成员运算符用于检查值是否在集合中。以下是一些常用的成员运算符:

运算符功能示例
in在集合中3 in [1, 2, 3] → True
not in不在集合中4 not in [1, 2, 3] → True
3.2.7 身份运算符

身份运算符用于检查两个变量是否指向同一个对象。以下是一些常用的身份运算符:

运算符功能示例
is是同一个对象x is y
is not不是同一个对象x is not y

3.3 流程控制语句

3.3.1 条件判断语句(if 语句)

条件判断语句用于根据条件执行不同的代码块。以下是 if 语句的基本语法:

if 条件:# 条件成立时执行的代码块elif 条件:# 条件成立时执行的代码块else:# 所有条件都不成立时执行的代码块

例如:

x =10if x >5:print("x 大于 5")elif x ==5:print("x 等于 5")else:print("x 小于 5")
3.3.2 循环语句(for 循环和 while 循环)

循环语句用于重复执行代码块。Python 支持两种循环语句:for 循环和 while 循环。

3.3.2.1 for 循环

for 循环用于遍历可迭代对象(如列表、元组、字符串等)。以下是 for 循环的基本语法:

for 变量 in 可迭代对象:# 循环体

例如:

fruits =["apple","banana","cherry"]for fruit in fruits:print(fruit)
3.3.2.2 while 循环

while 循环用于根据条件重复执行代码块。以下是 while 循环的基本语法:

while 条件:# 循环体

例如:

x =1while x <=5:print(x) x +=1
3.3.3 循环控制语句(break 和 continue)

循环控制语句用于控制循环的执行。Python 支持两种循环控制语句:break 和 continue。

3.3.3.1 break 语句

break 语句用于终止循环。例如:

x =1while x <=5:if x ==3:breakprint(x) x +=1

输出结果:

1 2 
3.3.3.2 continue 语句

continue 语句用于跳过当前循环的剩余部分,进入下一次循环。例如:

x =1while x <=5:if x ==3: x +=1continueprint(x) x +=1

输出结果:

1 2 4 5 

3.4 函数

3.4.1 函数定义与调用

函数是一段可重用的代码块。在 Python 中,可以使用 def 关键字定义函数。以下是函数定义的基本语法:

def 函数名(参数列表):# 函数体return 返回值 

例如:

defadd(x, y):return x + y # 调用函数 result = add(3,5)print(result)# 输出 8
3.4.2 参数传递

函数的参数传递分为位置参数、默认参数、可变参数和关键字参数。

3.4.2.1 位置参数

位置参数是最常见的参数类型,参数的位置决定了参数的值。例如:

defadd(x, y):return x + y result = add(3,5)# x = 3, y = 5print(result)# 输出 8
3.4.2.2 默认参数

默认参数是在函数定义时指定的参数值。如果调用函数时没有传入该参数,会使用默认值。例如:

defadd(x, y=5):return x + y result1 = add(3)# y = 5,结果为 8 result2 = add(3,7)# y = 7,结果为 10print(result1)print(result2)
3.4.2.3 可变参数

可变参数允许传入任意数量的参数。在 Python 中,可变参数分为 *args 和 **kwargs 两种。

  • args:表示任意数量的位置参数,会被转换为元组。
  • kwargs:表示任意数量的关键字参数,会被转换为字典。

例如:

defadd(*args): total =0for num in args: total += num return total result1 = add(1,2,3)# 结果为 6 result2 = add(1,2,3,4,5)# 结果为 15print(result1)print(result2)
defprint_info(**kwargs):for key, value in kwargs.items():print(f"{key}: {value}") print_info(name="张三", age=18, gender="男")

输出结果:

name: 张三 age: 18 gender: 男 
3.4.3 函数返回值

函数的返回值可以是任意类型,包括整数、浮点数、字符串、列表、元组、字典等。如果函数没有返回值,会默认返回 None。

例如:

defget_info(name):return{"name": name,"age":18,"gender":"男"} info = get_info("张三")print(info)# 输出 {'name': '张三', 'age': 18, 'gender': '男'}

3.5 模块与包

3.5.1 模块

模块是一个包含 Python 代码的文件。在 Python 中,可以使用 import 语句导入模块。

例如,我们可以导入 math 模块,使用其中的函数:

import math print(math.sqrt(16))# 输出 4.0print(math.sin(math.pi /2))# 输出 1.0

也可以使用 from … import … 语句导入模块中的特定函数:

from math import sqrt, sin, pi print(sqrt(16))# 输出 4.0print(sin(pi /2))# 输出 1.0
3.5.2 包

包是一个包含多个模块的目录。在 Python 中,包的目录必须包含一个名为 init.py 的文件。

例如,我们可以创建一个名为 my_package 的包,包含以下文件:

my_package/ __init__.py module1.py module2.py 

在 module1.py 中,我们可以定义以下函数:

defadd(x, y):return x + y 

在 module2.py 中,我们可以定义以下函数:

defmultiply(x, y):return x * y 

init.py 中,我们可以导入包中的模块:

from.import module1 from.import module2 

然后,我们可以使用以下语句导入包中的模块和函数:

import my_package print(my_package.module1.add(3,5))# 输出 8print(my_package.module2.multiply(3,5))# 输出 15

或者,我们可以使用以下语句导入包中的特定函数:

from my_package.module1 import add from my_package.module2 import multiply print(add(3,5))# 输出 8print(multiply(3,5))# 输出 15

四、实战项目:简单数据分析程序

4.1 项目需求分析

4.1.1 应用目标

构建一个简单的数据分析程序,能够读取数据文件,进行简单的数据处理和分析,然后输出结果。

4.1.2 用户需求
  • 支持读取 CSV 格式的数据文件
  • 支持对数据进行简单的统计分析(如平均值、最大值、最小值、中位数等)
  • 支持将分析结果可视化(如条形图、折线图等)
  • 提供友好的用户界面,使用简单方便
4.1.3 功能范围
  • 数据文件读取
  • 数据统计分析
  • 数据可视化
  • 用户界面

4.2 系统架构设计

4.2.1 应用架构

该简单数据分析程序的架构采用分层设计,分为以下几个层次:

  1. 用户界面层:提供用户与系统的交互接口,包括数据文件选择、分析选项设置等功能
  2. 应用逻辑层:处理用户请求、业务逻辑和应用控制
  3. 数据处理层:对数据进行读取、清洗、统计分析等处理
  4. 数据可视化层:将分析结果可视化
  5. 数据存储层:存储数据文件和分析结果
4.2.2 数据存储方案

该系统的数据存储方案包括以下几个部分:

  1. 数据文件存储:使用 CSV 格式存储数据文件
  2. 分析结果存储:使用 CSV 格式存储分析结果
  3. 可视化图表存储:使用图片格式存储可视化图表

4.3 系统实现

4.3.1 开发环境搭建

首先,需要搭建开发环境。该系统使用 Python 作为开发语言,使用 Pandas 库进行数据处理,使用 Matplotlib 库进行数据可视化。

# 安装 Pandas 库 pip install pandas # 安装 Matplotlib 库 pip install matplotlib 
4.3.2 数据文件读取

数据文件读取是系统的基础功能。以下是数据文件读取的实现代码:

import pandas as pd defread_data(file_path):try: df = pd.read_csv(file_path)return df except Exception as e:print(f"读取数据文件失败:{e}")returnNone
4.3.3 数据统计分析

数据统计分析是系统的核心功能。以下是数据统计分析的实现代码:

import pandas as pd defanalyze_data(df):try:# 计算平均值 mean = df.mean()# 计算最大值 max_value = df.max()# 计算最小值 min_value = df.min()# 计算中位数 median = df.median()# 计算标准差 std = df.std()# 计算方差 var = df.var()# 计算相关性 corr = df.corr()# 计算协方差 cov = df.cov()return{"mean": mean,"max_value": max_value,"min_value": min_value,"median": median,"std": std,"var": var,"corr": corr,"cov": cov }except Exception as e:print(f"数据分析失败:{e}")returnNone
4.3.4 数据可视化

数据可视化是系统的另一个核心功能。以下是数据可视化的实现代码:

import matplotlib.pyplot as plt import pandas as pd defvisualize_data(df, analyze_result, output_dir):try:# 绘制平均值条形图 mean = analyze_result["mean"] plt.figure(figsize=(10,6)) plt.bar(mean.index, mean.values) plt.title("平均值") plt.xlabel("列名") plt.ylabel("平均值") plt.xticks(rotation=45) plt.tight_layout() plt.savefig(f"{output_dir}/mean.png") plt.close()# 绘制最大值条形图 max_value = analyze_result["max_value"] plt.figure(figsize=(10,6)) plt.bar(max_value.index, max_value.values) plt.title("最大值") plt.xlabel("列名") plt.ylabel("最大值") plt.xticks(rotation=45) plt.tight_layout() plt.savefig(f"{output_dir}/max.png") plt.close()# 绘制最小值条形图 min_value = analyze_result["min_value"] plt.figure(figsize=(10,6)) plt.bar(min_value.index, min_value.values) plt.title("最小值") plt.xlabel("列名") plt.ylabel("最小值") plt.xticks(rotation=45) plt.tight_layout() plt.savefig(f"{output_dir}/min.png") plt.close()# 绘制中位数条形图 median = analyze_result["median"] plt.figure(figsize=(10,6)) plt.bar(median.index, median.values) plt.title("中位数") plt.xlabel("列名") plt.ylabel("中位数") plt.xticks(rotation=45) plt.tight_layout() plt.savefig(f"{output_dir}/median.png") plt.close()# 绘制标准差条形图 std = analyze_result["std"] plt.figure(figsize=(10,6)) plt.bar(std.index, std.values) plt.title("标准差") plt.xlabel("列名") plt.ylabel("标准差") plt.xticks(rotation=45) plt.tight_layout() plt.savefig(f"{output_dir}/std.png") plt.close()# 绘制方差条形图 var = analyze_result["var"] plt.figure(figsize=(10,6)) plt.bar(var.index, var.values) plt.title("方差") plt.xlabel("列名") plt.ylabel("方差") plt.xticks(rotation=45) plt.tight_layout() plt.savefig(f"{output_dir}/var.png") plt.close()# 绘制相关性热力图 corr = analyze_result["corr"] plt.figure(figsize=(10,8)) plt.imshow(corr, cmap="coolwarm") plt.title("相关性热力图") plt.colorbar() plt.xticks(range(len(corr.columns)), corr.columns, rotation=45) plt.yticks(range(len(corr.columns)), corr.columns) plt.tight_layout() plt.savefig(f"{output_dir}/corr.png") plt.close()# 绘制协方差热力图 cov = analyze_result["cov"] plt.figure(figsize=(10,8)) plt.imshow(cov, cmap="coolwarm") plt.title("协方差热力图") plt.colorbar() plt.xticks(range(len(cov.columns)), cov.columns, rotation=45) plt.yticks(range(len(cov.columns)), cov.columns) plt.tight_layout() plt.savefig(f"{output_dir}/cov.png") plt.close()returnTrueexcept Exception as e:print(f"数据可视化失败:{e}")returnFalse
4.3.5 用户界面

用户界面是系统的交互部分。以下是用户界面的实现代码:

import tkinter as tk from tkinter import filedialog, messagebox import pandas as pd import os from data_reader import read_data from data_analyzer import analyze_data from data_visualizer import visualize_data classDataAnalyzerApp:def__init__(self, root): self.root = root self.root.title("简单数据分析程序")# 创建控件 self.file_label = tk.Label(root, text="数据文件:") self.file_label.grid(row=0, column=0, padx=10, pady=10, sticky=tk.W) self.file_entry = tk.Entry(root, width=50) self.file_entry.grid(row=0, column=1, padx=10, pady=10) self.browse_button = tk.Button(root, text="浏览", command=self.browse_file) self.browse_button.grid(row=0, column=2, padx=10, pady=10) self.analyze_button = tk.Button(root, text="分析数据", command=self.analyze_data) self.analyze_button.grid(row=1, column=0, columnspan=3, padx=10, pady=10) self.output_label = tk.Label(root, text="输出目录:") self.output_label.grid(row=2, column=0, padx=10, pady=10, sticky=tk.W) self.output_entry = tk.Entry(root, width=50) self.output_entry.grid(row=2, column=1, padx=10, pady=10) self.browse_output_button = tk.Button(root, text="浏览", command=self.browse_output_dir) self.browse_output_button.grid(row=2, column=2, padx=10, pady=10) self.visualize_button = tk.Button(root, text="可视化数据", command=self.visualize_data) self.visualize_button.grid(row=3, column=0, columnspan=3, padx=10, pady=10)defbrowse_file(self): file_path = filedialog.askopenfilename(filetypes=[("CSV 文件","*.csv")])if file_path: self.file_entry.delete(0, tk.END) self.file_entry.insert(0, file_path)defbrowse_output_dir(self): output_dir = filedialog.askdirectory()if output_dir: self.output_entry.delete(0, tk.END) self.output_entry.insert(0, output_dir)defanalyze_data(self): file_path = self.file_entry.get()ifnot file_path: messagebox.showerror("错误","请选择数据文件")return df = read_data(file_path)if df isNone:return analyze_result = analyze_data(df)if analyze_result isNone:return# 保存分析结果 output_dir = self.output_entry.get()ifnot output_dir: output_dir = os.path.dirname(file_path) analyze_result_file = os.path.join(output_dir,"analyze_result.csv")withopen(analyze_result_file,"w")as f:for key, value in analyze_result.items(): f.write(f"{key}:\n") f.write(f"{value}\n\n") messagebox.showinfo("成功","数据分析完成")defvisualize_data(self): file_path = self.file_entry.get()ifnot file_path: messagebox.showerror("错误","请选择数据文件")return df = read_data(file_path)if df isNone:return analyze_result = analyze_data(df)if analyze_result isNone:return output_dir = self.output_entry.get()ifnot output_dir: output_dir = os.path.dirname(file_path) success = visualize_data(df, analyze_result, output_dir)if success: messagebox.showinfo("成功","数据可视化完成")else: messagebox.showerror("错误","数据可视化失败")if __name__ =="__main__": root = tk.Tk() app = DataAnalyzerApp(root) root.mainloop()

4.4 系统运行与测试

4.4.1 系统运行

运行系统时,需要执行以下步骤:

  1. 安装 Pandas 库和 Matplotlib 库
  2. 运行 main.py 文件
  3. 选择数据文件和输出目录
  4. 点击 “分析数据” 按钮,进行数据统计分析
  5. 点击 “可视化数据” 按钮,进行数据可视化
4.4.2 系统测试

系统测试时,需要使用一些测试数据。以下是一个简单的测试数据示例:

name,age,gender,score 张三,18,男,85 李四,20,女,90 王五,19,男,88 赵六,21,女,92 钱七,18,男,87 

将测试数据保存为 test_data.csv 文件,然后运行系统,选择该文件进行分析和可视化。


五、总结

本章介绍了 Python 语言的发展历程、特点和应用领域,以及 Python 开发环境的安装与配置。同时,本章还介绍了 Python 的基本语法,包括变量与数据类型、运算符、流程控制语句、函数和模块与包。最后,通过实战项目,展示了如何编写一个简单的数据分析程序。

Python 是一种非常强大的编程语言,具有丰富的功能和广泛的应用领域。通过学习本章的内容,读者可以掌握 Python 的基本语法和编程思想,具备编写简单 Python 程序的能力。

Read more

用 Codex + GitHub Spec-Kit 做一次“规格驱动开发”实战

用 Codex + GitHub Spec-Kit 做一次“规格驱动开发”实战

* 用 Codex + GitHub Spec-Kit 做一次“规格驱动开发”实战 * 1) 初始化:把 spec-kit 工作区真正建起来(多种方式) * 方式 A:uvx 一次性运行(推荐) * 方式 B:uv tool install(全局安装 specify) * 方式 C:pipx 安装(Python 工具常用法) * 2) 初始化后,正确的目录结构长什么样( * 3) 在 Codex 里跑 speckit:统一输入规则(非常重要) * 4) 标准流水线:Constitution → Spec → Plan → Tasks → Implement * Step 1:

By Ne0inhk
VSCode Github Copilot使用OpenAI兼容的自定义模型方法

VSCode Github Copilot使用OpenAI兼容的自定义模型方法

背景 VSCode 1.105.0发布了,但是用户最期待的Copilot功能却没更新!!! (Github Copilot Chat 中使用OpenAI兼容的自定义模型。) 🔥官方也关闭了Issue,并且做了回复,并表示未来也不会更新这个功能: “实际上,这个功能在可预见的未来只面向内部人员开放,作为一种“高级”实验功能。是否实现特定模型提供者的功能,我们交由扩展作者自行决定。仅限内部人员使用可以让我们快速推进,并提供一种可能并非始终百分之百完善,但能够持续改进并快速修复 bug 的体验。如果这个功能对你很重要,我建议切换到内部版本 insider。” 🤗 官方解决方案:安装VSCode扩展支持 你们完全不用担心只需要在 VS Code 中安装扩展:OAI Compatible Provider for Copilot 通过任何兼容 OpenAI 的提供商驱动的 GitHub Copilot Chat,使用前沿开源大模型,如 Kimi K2、DeepSeek

By Ne0inhk
使用 VS Code 将项目代码上传到 Gitee 的完整指南

使用 VS Code 将项目代码上传到 Gitee 的完整指南

在现代软件开发流程中,版本控制是不可或缺的一环。 Gitee(码云)作为国内领先的代码托管平台,为开发者提供了稳定、快速的 Git 服务。 本文将详细介绍如何使用 Visual Studio Code(VS Code)将本地项目代码上传至 Gitee 仓库,涵盖从环境配置、初始化仓库到推送代码的完整流程。 一、准备工作 1. 安装必要工具 * Git:确保你的系统已安装 Git。 可通过终端运行 git --version  或 git -v 验证是否安装成功。 * VS Code:下载并安装 Visual Studio Code。 * Gitee 账号:前往 Gitee 官网 注册账号(如尚未注册)。 2. 安装 VS

By Ne0inhk
使用Git将代码从远程仓库拉取到本地(详细图解、简单易懂)

使用Git将代码从远程仓库拉取到本地(详细图解、简单易懂)

目录 一、前言 二、全流程 一、前言 本博客主要记录一下使用Git将代码从远程仓库拉取到本地的全流程,使用Git拉取代码在学校内多同学合作开发项目或者是实习拉取公司代码等场景都很常见,单纯记录希望对你有帮助 二、全流程 首先在你想要存放代码的位置新建一个文件夹并改名 进入刚刚创建的空文件中,右键然后点击显示更多选项 然后点击Git Bash Here 然后就会出现如图所示的命令行窗口 此时先不用管命令行窗口,找到你要远程仓库所在的平台(我这里以Gitee演示),如图点击克隆/下载按钮 HTTPS下方就是远程仓库的url地址,只要有远程仓库的url地址,只需要在刚刚的命令行窗口打上git clone在将url地址复制在后面再回车即可(Gitee下面的提示也给了,直接复制带git clone的命令就行,没有的话就自己敲git clone) 复制到命令行窗口之后,等待片刻即可 然后点开刚刚创建的文件夹就可以看到拉取下来的代码了,后续用IDEA打开该文件就可以在本地进行开发了

By Ne0inhk