# Python 编程核心基础详解
## 1. 基础编程要素:字面量、注释与变量
程序运行的基础在于数据,而数据最初以字面量(Literal)的形式直接体现在代码中 [ref_3]。
| 字面量类型 | Python 示例 | 说明 |
| :--------- | :------------------- | :--------------------------------------------------------------------------------------------------- |
| 整数 | `10`, `-5`, `0` | 不带小数点的数字。 |
| 浮点数 | `3.14`, `-2.5`, `0.0` | 带小数点的数字,用于表示实数。 |
| 字符串 | `"Hello"`, `'AI'` | 由单引号、双引号或三引号包围的文本序列。 |
为了让代码易于理解,需要使用注释。注释是程序员在代码中编写的说明性文字,解释器会忽略它们,不会作为指令执行 [ref_2]。
```python
# 这是一个单行注释,用于解释下一行代码的功能
price = 99.9 # 这里也可以使用行内注释
"""
这是一个多行注释(也称为文档字符串,docstring)。
通常用于解释函数、模块或复杂代码块的功能。
它可以跨越多行。
"""
name = "Python"
```
变量是编程中用于存储数据的核心概念。你可以将其想象成一个贴有标签的盒子,盒子里的内容(数据)可以改变,但通过标签(变量名)可以随时找到和使用这个盒子 [ref_1]。
```python
# 变量的定义与使用
age = 25 # 将整数 25 赋值给变量 age
pi = 3.14159 # 将浮点数 3.14159 赋值给变量 pi
company = "OpenAI" # 将字符串 "OpenAI" 赋值给变量 company
# 变量的核心作用:存储与调用
print(f"年龄:{age}") # 调用 age 变量存储的数据并输出
# 输出:年龄:25
# 支持数据的重复调用与修改
age = age + 1 # 修改 age 变量的值(在原值上加 1)
print(f"明年年龄:{age}")
# 输出:明年年龄:26
```
变量的作用在于为内存中的数据提供一个可读的名称,使得程序中任何需要该数据的地方都可以通过变量名来访问和修改它,实现了数据的复用和动态管理 [ref_4]。
## 2. 数据类型与转换
Python 采用动态类型机制,这意味着变量本身没有固定的类型,它可以在程序运行的不同时刻引用不同类型的数据 [ref_5]。我们使用 `type()` 函数来查看变量当前所引用数据的类型 [ref_3]。
```python
# 使用 type() 查看数据类型
data_int = 42
data_float = 3.14
data_str = "AI"
print(type(data_int)) # <class 'int'>
print(type(data_float)) # <class 'float'>
print(type(data_str)) # <class 'str'>
# 理解 “变量无类型,存储的数据有类型”
x = 100 # x 现在引用一个整数 (int)
print(type(x), x) # <class 'int'> 100
x = "一百" # 现在 x 引用一个字符串 (str),这是允许的
print(type(x), x) # <class 'str'> 一百
```
在实际应用中,经常需要在不同类型的数据之间进行转换,例如将用户输入的字符串转换为数字进行计算。
| 转换函数 | 作用 | 注意事项 |
| :------- | :----------------------- | :--------------------------------------------------------------------------------------------------- |
| `int(x)` | 将 x 转换为整数 | 1. `x` 为浮点数时,直接舍去小数部分(非四舍五入)。<br>2. `x` 为字符串时,字符串内容必须为纯数字(可带正负号),如 `"123"` 可转,`"123.5"` 或 `"12a"` 会报错。 |
| `float(x)`| 将 x 转换为浮点数 | `x` 为字符串时,内容需为可表示的数字,如 `"3.14"` 或 `"10"`。 |
| `str(x)` | 将 x 转换为字符串 | 几乎任何类型的数据都可以被转换为字符串。 |
```python
# 类型转换实操
# 字符串转数字(AI数据处理中常见)
user_input = "50.75"
try:
price_float = float(user_input) # 将字符串转换为浮点数
quantity_int = int(input("请输入购买数量(整数):")) # input()返回字符串,需转换
total_cost = price_float * quantity_int
print(f"总价为:{total_cost}")
except ValueError:
print("输入内容无法转换为有效数字,请检查。")
# 浮点数转整数(注意精度丢失)
float_num = 9.99
int_num = int(float_num) # 结果为 9,小数部分被直接截断
print(f"浮点数 {float_num} 转换为整数后为 {int_num}")
```
## 3. 标识符与运算符
标识符是给变量、函数、类等命名的符号。必须遵循以下规则 [ref_3]:
1. **组成字符**:可以是英文、中文、数字、下划线 `_`。
2. **首字符限制**:不能以数字开头。
3. **大小写敏感**:`name` 和 `Name` 是不同的标识符。
4. **禁用关键字**:不能使用 Python 的保留关键字(如 `if`, `for`, `class` 等)作为标识符。
除了规则,良好的命名规范能极大提升代码可读性:
* **见名知意**:使用有意义的单词,例如 `student_age` 优于 `a`。
* **下划线命名法**:多个单词用下划线连接,全小写。这是 Python 推荐的变量命名风格 [ref_5],例如 `user_name`, `total_price`。
* **全小写**:变量名通常全小写(常量约定全大写,如 `PI`)。
运算符用于对数据进行操作和计算 [ref_1]。
**算术运算符**:用于基本的数学计算。
| 运算符 | 描述 | 示例 | 结果 |
| :----- | :--------- | :------------ | :---- |
| `+` | 加 | `5 + 3` | `8` |
| `-` | 减 | `5 - 3` | `2` |
| `*` | 乘 | `5 * 3` | `15` |
| `/` | 除(真除) | `5 / 2` | `2.5` |
| `//` | 整除 | `5 // 2` | `2` |
| `%` | 取模(余) | `5 % 2` | `1` |
| `**` | 幂 | `2 ** 3` | `8` |
**赋值运算符**:用于给变量赋值,`=` 是最基本的。复合赋值运算符可以简化“运算并赋值”的操作 [ref_1]。
```python
# 基础数值运算与赋值实操
# 基础赋值与算术运算
a = 10
b = 3
sum_ab = a + b
div_ab = a / b
print(f"和:{sum_ab}, 商:{div_ab:.2f}") # 和:13,商:3.33
# 复合赋值运算符
counter = 5
counter += 2 # 等同于 counter = counter + 2,结果 counter 为 7
counter *= 3 # 等同于 counter = counter * 3,结果 counter 为 21
print(f"计数器最终值:{counter}")
# 取模运算常用于判断奇偶性、周期性等场景
if counter % 2 == 0:
print("计数器是偶数")
else:
print("计数器是奇数")
```
## 4. 字符串高级操作
字符串是 AI 实践中处理文本数据、提示词 (Prompts)、日志信息等的核心 [ref_5]。
**字符串的三种定义方式**:
1. 单引号:`'hello'`
2. 双引号:`"world"`
3. 三引号:`"""可以换行\n的字符串"""` 或 `'''同理'''`
引号可以嵌套使用,以避免转义字符的麻烦 [ref_3]。
```python
# 引号嵌套技巧
sentence1 = "他说:'你好,AI!'" # 外层双引号,内层单引号
sentence2 = '文件路径是 "C:\\data\\model"' # 外层单引号,内层双引号(注意路径转义)
print(sentence1)
print(sentence2)
```
**字符串拼接与格式化**:
* **拼接 (`+`)**:将多个字符串连接成一个新的字符串。
```python
first_name = "张"
last_name = "三"
full_name = last_name + first_name # 字符串拼接
print(full_name) # 输出:张三
```
* **格式化**:将变量或表达式嵌入到字符串模板中,生成最终字符串。这是更强大和常用的方式。
| 格式化方法 | 语法示例 | 特点 |
| :--------------- | :-------------------------------------------- | :------------------------------------------------------------------- |
| **% 占位符** | `"姓名:%s,年龄:%d" % (name, age)` | 传统方法,支持多种数据类型,但语法略显繁琐。 |
| **f-string** | `f"姓名:{name},年龄:{age}"` | **Python 3.6+ 推荐**,直接在字符串前加 `f`,大括号 `{}` 内写表达式,速度快,可读性强。 |
| **str.format()** | `"姓名:{},年龄:{}".format(name, age)` | Python 2.6+ 引入,比 `%` 更灵活,但不如 f-string 简洁。 |
```python
# 字符串格式化综合案例:股价计算与报告生成
stock_name = "AI科技"
buy_price = 125.6789 # 买入价
sell_price = 138.9012 # 卖出价
shares = 100 # 股数
# 使用 f-string 进行格式化,并控制浮点数精度 (m.n 格式控制,m为总宽度,n为小数位数)
profit_per_share = sell_price - buy_price
total_profit = profit_per_share * shares
report = f"""
=== 股票交易报告 ===
股票名称:{stock_name}
买入均价:${buy_price:.2f} # .2f 表示保留两位小数
卖出均价:${sell_price:.2f}
持有股数:{shares}
每股收益:${profit_per_share:.3f}
总收益:${total_profit:.2f}
===================
"""
print(report)
```
在格式化中,`:.2f` 是格式说明符,其中 `f` 表示浮点数,`.2` 表示保留两位小数。这在进行财务计算或科学数据分析时非常关键 [ref_1]。
## 5. 输入输出实操
程序与用户交互的基础是输入 (`input()`) 和输出 (`print()`)。
**`input()` 函数**:从标准输入(通常是键盘)获取用户的输入。**关键点在于它总是返回一个字符串 (`str`)**,无论用户输入了什么数字 [ref_3][ref_6]。
**“输入 - 处理 - 输出”基础流程**:结合类型转换,实现动态数据处理。
```python
# 综合练习:欢迎登陆小程序
print("=== 欢迎登录系统 ===")
# 1. 输入阶段 (Input)
username = input("请输入您的用户名:")
# input() 返回字符串,即使输入数字“18”, age_input 也是字符串 "18"
age_input = input("请输入您的年龄:")
# 2. 处理阶段 (Process)
# 类型转换:将字符串类型的年龄转换为整数,以便进行数值运算
try:
age = int(age_input) # 尝试转换,可能失败(如果输入的不是纯数字)
next_year_age = age + 1 # 数值运算
conversion_success = True
except ValueError:
print("年龄输入无效,请输入数字。")
conversion_success = False
# 3. 输出阶段 (Output)
if conversion_success:
# 使用 f-string 格式化输出结果
welcome_msg = f"欢迎您,{username}!您今年 {age} 岁,明年将 {next_year_age} 岁。"
print(welcome_msg)
# 也可以使用其他格式化方法,如:
# print("欢迎您,%s!您今年 %d 岁,明年将 %d 岁。" % (username, age, next_year_age))
print("登录流程结束。")
```
此流程是许多AI应用交互的基础,例如:
1. **聊天机器人**:获取用户问题 (`input`),调用模型处理 (`process`),返回回答 (`print`)。
2. **数据预处理脚本**:提示用户输入文件路径或参数 (`input`),读取并清洗数据 (`process`),输出处理结果或保存文件 (`print`/写入操作)。
3. **简单计算器或查询工具**:接收用户指令或数据,处理后返回结果。
**总结**:掌握这些核心基础要素——从变量定义、数据类型操作、字符串处理到输入输出——是构建任何Python程序,包括复杂AI数据处理流水线、模型接口或自动化脚本的基石。通过理解“变量无类型而数据有类型”的动态特性,熟练运用类型转换解决输入问题,并利用强大的字符串格式化清晰呈现结果,你将能够有效地将业务逻辑转化为可执行的代码 [ref_1][ref_4]。持续的实践,如完成更多类似的综合案例,是巩固这些概念的最佳途径。