CentOS上安装Python 3:从新手到专家的详细教程
发布时间: 2024-06-21 02:35:59 阅读量: 96 订阅数: 33
STM32F103单片机连接EC800-4G模块采集GNSS定位数据和多组传感器数据上传到ONENET云平台并接收控制指令.zip
![CentOS上安装Python 3:从新手到专家的详细教程](https://img-blog.csdnimg.cn/f02a06875d3d4680a5de06e1f5cad258.png)
# 1. CentOS系统简介
CentOS(Community Enterprise Operating System)是一个基于Red Hat Enterprise Linux(RHEL)的免费和开源的Linux发行版。它与RHEL完全二进制兼容,这意味着为RHEL开发的软件包也可以在CentOS上运行。
CentOS由一个由Linux爱好者和专业人士组成的社区维护。它定期更新,以提供最新的安全补丁和功能。CentOS广泛用于服务器、工作站和嵌入式系统。它以其稳定性、可靠性和安全性而闻名。
# 2. Python 3安装与配置
### 2.1 Python 3下载与安装
**步骤:**
1. 访问官方网站(https://www.python.org/downloads/)下载最新版本的Python 3安装包。
2. 根据系统类型选择相应的安装包。
3. 运行安装程序并按照提示进行安装。
**参数说明:**
- `--prefix=/usr/local`:指定安装目录,默认安装在`/usr/local`。
- `--enable-optimizations`:启用优化,提高性能。
- `--with-ensurepip=install`:安装pip包管理器。
### 2.2 Python 3环境变量配置
**步骤:**
1. 编辑系统环境变量文件(如`/etc/profile`)。
2. 添加以下行:
```
export PATH=/usr/local/bin:$PATH
```
3. 保存并退出文件。
4. 重新加载环境变量:
```
source /etc/profile
```
**参数说明:**
- `PATH`:环境变量,指定可执行文件搜索路径。
- `/usr/local/bin`:Python 3安装目录下的可执行文件路径。
### 2.3 Python 3版本验证
**步骤:**
1. 打开终端窗口。
2. 输入以下命令:
```
python3 --version
```
**代码逻辑分析:**
- `python3`:调用Python 3解释器。
- `--version`:显示Python 3版本信息。
**输出示例:**
```
Python 3.10.8
```
# 3. Python 3基础语法
### 3.1 Python 3数据类型
Python 3支持多种数据类型,包括:
- **整型(int):**表示整数,如 1、-2、0。
- **浮点型(float):**表示小数,如 1.23、-4.56、0.0。
- **字符串(str):**表示文本,用单引号(')或双引号(")括起来,如 'Hello'、"World"。
- **布尔型(bool):**表示真假值,只有 True 和 False 两种值。
- **列表(list):**表示有序的可变集合,用方括号([])括起来,如 [1, 2, 3]、['a', 'b', 'c']。
- **元组(tuple):**表示有序且不可变的集合,用圆括号(())括起来,如 (1, 2, 3)、('a', 'b', 'c')。
- **字典(dict):**表示无序的可变映射,用花括号({})括起来,键值对之间用冒号(:)分隔,如 {'name': 'John', 'age': 30}。
- **集合(set):**表示无序且不可变的集合,用花括号({})括起来,如 {1, 2, 3}、{'a', 'b', 'c'}。
### 3.2 Python 3变量
变量用于存储数据,在 Python 3 中,使用赋值运算符(=)将值分配给变量。变量名必须遵循以下规则:
- 以字母或下划线开头。
- 只能包含字母、数字和下划线。
- 不能使用保留字(如 if、else、for)。
例如:
```python
name = 'John'
age = 30
```
### 3.3 Python 3运算符
Python 3支持多种运算符,包括:
- **算术运算符:**用于执行算术运算,如 +、-、*、/、%(求余)。
- **比较运算符:**用于比较两个值,如 ==、!=、<、>、<=、>=。
- **逻辑运算符:**用于执行逻辑运算,如 and、or、not。
- **赋值运算符:**用于将值分配给变量,如 =、+=、-=、*=、/=。
- **成员运算符:**用于检查元素是否属于集合或序列,如 in、not in。
### 3.4 Python 3流程控制
流程控制语句用于控制程序执行的流程,包括:
- **if 语句:**根据条件执行代码块。
- **elif 语句:**如果第一个 if 语句的条件不满足,则执行 elif 语句。
- **else 语句:**如果所有 if 和 elif 语句的条件都不满足,则执行 else 语句。
- **for 循环:**遍历序列或范围中的元素。
- **while 循环:**只要条件为真,就执行代码块。
- **break 语句:**退出循环。
- **continue 语句:**跳过当前循环迭代。
# 4. Python 3进阶语法
### 4.1 Python 3函数
#### 定义和调用函数
```python
def greet(name):
print(f"Hello, {name}!")
greet("John")
```
**逻辑分析:**
1. `def` 关键字定义一个函数,后跟函数名和圆括号。
2. 函数参数 `name` 存储要问候的名称。
3. `print` 语句输出问候消息,使用 f-字符串格式化名称。
4. `greet("John")` 调用函数,传递 "John" 作为参数。
#### 参数和返回值
```python
def sum_numbers(a, b):
return a + b
result = sum_numbers(10, 20)
print(result) # 输出:30
```
**逻辑分析:**
1. `sum_numbers` 函数接收两个参数 `a` 和 `b`,表示要相加的数字。
2. `return` 语句返回函数的结果,即两个参数的和。
3. `result` 变量存储函数的返回值。
4. `print(result)` 输出函数的结果。
#### 默认参数和可变参数
```python
def greet(name="John", age=25):
print(f"Hello, {name}! You are {age} years old.")
greet() # 输出:Hello, John! You are 25 years old.
greet("Alice", 30) # 输出:Hello, Alice! You are 30 years old.
```
**逻辑分析:**
1. `greet` 函数定义了两个默认参数 `name` 和 `age`,分别为 "John" 和 25。
2. 当调用函数时,可以省略参数,使用默认值。
3. 当提供参数时,会覆盖默认值。
#### 4.2 Python 3模块
#### 模块导入和使用
```python
import math
print(math.pi) # 输出:3.141592653589793
```
**逻辑分析:**
1. `import math` 语句导入 `math` 模块。
2. `math.pi` 访问模块中定义的 `pi` 常量。
#### 自定义模块
```python
# my_module.py
def greet(name):
print(f"Hello, {name}!")
# main.py
import my_module
my_module.greet("John") # 输出:Hello, John!
```
**逻辑分析:**
1. `my_module.py` 定义了一个 `greet` 函数。
2. `main.py` 导入 `my_module` 并调用其 `greet` 函数。
#### 4.3 Python 3面向对象编程
#### 类和对象
```python
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def greet(self):
print(f"Hello, my name is {self.name} and I am {self.age} years old.")
john = Person("John", 25)
john.greet() # 输出:Hello, my name is John and I am 25 years old.
```
**逻辑分析:**
1. `Person` 类定义了一个 `__init__` 方法,用于初始化对象。
2. `self` 引用对象本身,允许访问其属性和方法。
3. `john` 是 `Person` 类的实例,具有 `name` 和 `age` 属性。
4. `john.greet()` 调用对象的方法,输出问候消息。
#### 继承和多态
```python
class Employee(Person):
def __init__(self, name, age, salary):
super().__init__(name, age)
self.salary = salary
def get_salary(self):
return self.salary
john = Employee("John", 25, 50000)
print(john.get_salary()) # 输出:50000
```
**逻辑分析:**
1. `Employee` 类继承自 `Person` 类。
2. `super().__init__(name, age)` 调用父类的 `__init__` 方法。
3. `Employee` 类定义了一个 `get_salary` 方法,返回员工的工资。
4. `john` 是 `Employee` 类的实例,具有 `name`、`age` 和 `salary` 属性。
5. `john.get_salary()` 调用对象的方法,返回员工的工资。
#### 4.4 Python 3异常处理
#### 异常类型和处理
```python
try:
number = int(input("Enter a number: "))
except ValueError:
print("Invalid input. Please enter a valid number.")
```
**逻辑分析:**
1. `try` 块包含可能引发异常的代码。
2. `except` 块指定要处理的异常类型,这里是 `ValueError`。
3. 如果 `try` 块中的代码引发 `ValueError`,则执行 `except` 块中的代码。
#### 自定義異常
```python
class MyError(Exception):
def __init__(self, message):
self.message = message
try:
raise MyError("This is a custom error.")
except MyError as e:
print(e.message) # 输出:This is a custom error.
```
**逻辑分析:**
1. `MyError` 类定义了一个自定义异常。
2. `raise MyError("This is a custom error.")` 抛出自定义异常。
3. `except MyError as e` 捕获自定义异常并将其存储在 `e` 变量中。
4. `print(e.message)` 访问异常消息。
# 5.1 Python 3文件操作
Python 3提供了一个强大的文件操作模块,允许开发者轻松地读取、写入和修改文件。
### 打开文件
要打开一个文件,可以使用`open()`函数。该函数接受两个参数:文件路径和打开模式。打开模式指定了文件将如何被打开,最常用的模式包括:
- `r`:以只读模式打开文件。
- `w`:以只写模式打开文件,如果文件不存在则创建它。
- `a`:以追加模式打开文件,如果文件不存在则创建它。
- `r+`:以读写模式打开文件。
- `w+`:以读写模式打开文件,如果文件不存在则创建它。
```python
# 打开一个只读文件
with open('myfile.txt', 'r') as f:
# 读取文件内容
contents = f.read()
# 打开一个只写文件
with open('myfile.txt', 'w') as f:
# 写入文件内容
f.write('Hello, world!')
# 打开一个追加文件
with open('myfile.txt', 'a') as f:
# 追加内容到文件
f.write('This is a new line.')
```
### 读取文件
一旦文件被打开,可以使用`read()`方法读取其内容。`read()`方法返回一个字符串,其中包含文件中的所有内容。
```python
# 读取文件内容
with open('myfile.txt', 'r') as f:
contents = f.read()
```
### 写入文件
要写入文件,可以使用`write()`方法。`write()`方法接受一个字符串作为参数,并将其写入文件。
```python
# 写入文件内容
with open('myfile.txt', 'w') as f:
f.write('Hello, world!')
```
### 关闭文件
在完成对文件的操作后,必须使用`close()`方法关闭文件。这将释放与文件关联的资源。
```python
# 关闭文件
f.close()
```
0
0