跳到主要内容
极客日志极客日志
首页博客AI提示词GitHub精选代理工具
搜索
|注册
博客列表
PythonAI算法

Python 数学建模基础语法与常用库应用指南

Python 基础语法涵盖标识符、变量赋值、数据类型及转换。包含算术、比较、逻辑等运算符,以及判断循环结构。函数定义支持默认参数和可变参数。文件操作涉及读写与上下文管理器。重点介绍 NumPy 数值计算、Pandas 数据处理及 Matplotlib 可视化在数学建模中的应用案例,展示多模块协同分析学生成绩数据的方法。

落日余晖发布于 2025/10/20更新于 2026/4/231 浏览
Python 数学建模基础语法与常用库应用指南

Python 数学建模基础语法与常用库应用指南

一、基础语法

1. 标识符

由字母、数字、下划线组成,不能以数字开头,且区分大小写。单下划线开头的(_foo),表明是不能直接访问的类属性;双下划线开头的(__foo),代表类的私有成员;双下划线开头和结尾的(__foo__),用于特殊方法标识。

2. 保留字符

像 and、if 等关键词,不能用作标识符。

3. 行和缩进

Python 利用缩进来表示代码块,同一代码块内,缩进的空格数必须保持一致。建议使用单个制表符、两个或四个空格,严禁混用。

a = 1
if a == 1:
    print(a)
    print("true")
    print("a 是等于 1 的")
    print("go")

4. 注释

单行注释以 # 开头;多行注释使用三个单引号'''或三个双引号"""。

5. print 输出

默认情况下,print 会换行输出。在变量末尾加上逗号(,),可实现不换行输出(Python 2 风格,建议统一为 Python 3)。

x = "a"
y = "b"
# 换行输出
print(x)
print(y)
print('---------')
# 不换行输出
print(x, end='')
print(y, end='')

在同一行书写多个语句时,使用分号(;)进行分隔。

6. 代码组

缩进相同的一组语句构成代码组。if、while 等复合语句,首行以关键字开头,以冒号结束,后续的代码组构成子句。

二、基本数据类型

(一)、变量赋值

1.1 无需类型声明

Python 中的变量赋值不需要类型声明。每个变量在内存中创建,都包括变量的标识,名称和数据这些信息。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。

等号 = 用来给变量赋值。等号运算符左边是一个变量名,等号运算符右边是存储在变量中的值。

counter = 100  # 赋值整型变量
miles = 1000.0  # 浮点型
name = "John"  # 字符串
print(counter)
print(miles)
print(name)
1.2 多种赋值方式
  • 单个变量赋值:通过 等号,直接将值赋予变量。如 miles = 1000.0,将浮点型数据 1000.0 赋给变量 miles。
  • 多个变量赋相同值:使用 a = b = c = 1 的形式,系统会创建一个值为 1 的整型对象,让 a、b、c 三个变量同时指向这一内存空间。
  • 多个变量赋不同值:采用 a, b, c = 1, 2, "john" 的方式,可分别将不同类型的值,对应地赋给多个变量。

(二)、标准数据类型

2.1 数字(Numbers)
2.1.1 不可变类型

数字数据类型用于存储数值。值得注意的是,当数字变量的值发生改变时,系统会为其分配新的对象。

2.1.2 支持类型
  • int(有符号整型):主要用于表示整数,如 10、-786 等。
  • float(浮点型):用于表示带有小数部分的数值,如 0.0、15.20 等。
  • complex(复数):由实部和虚部组成,书写形式为 a + bj。
2.1.3 删除对象引用

可使用 del 语句删除数字对象的引用。例如,del var1 可删除变量 var1 的引用。

2.2 字符串(String)
2.2.1 组成与索引

字符串由数字、字母、下划线等字符组成。在字符串中,索引从左至右默认从 0 开始,从右至左默认从 -1 开始。

2.2.2 切片操作

借助 [头下标:尾下标] 的方式,可对字符串进行切片操作,从而截取子字符串。需要注意的是,截取的结果包含头下标对应的字符,但不包含尾下标对应的字符。(包头不包尾)

2.2.3 运算符

字符串类型支持多种运算符:

  • 连接运算符(+):将两个字符串连接成一个新的字符串。
  • 重复运算符(*):将字符串重复指定次数。

(三)、数据类型的转换

a = 100
print(type(a))
b = 100.9
print(type(b))
c = True
print(type(c))

type() 打印数据类型的函数。

3.1 隐式类型转换——自动完成
# 隐式转换
ab = a + b
print(type(ab))
3.2 显式类型转换——使用类型函数来转换
# 强制转换
ab = a + int(b)
print(type(ab))
ab = int(a + b)
print(type(ab))

就是在想要转换的变量前面加一个类型标识。

(四)、复合数据类型

4.1 列表
  1. 基本概念:列表是一种有序、可变的数据类型,可以存储任意类型的数据,元素之间用逗号分隔,整体用方括号 [] 包裹。

    • append() 方法在列表末尾添加一个元素。
    • insert() 方法在指定位置插入一个元素。
    • 使用 del 语句删除指定位置的元素。
    • pop() 方法删除并返回指定位置的元素(默认删除最后一个)。
    • remove() 方法删除指定值的第一个匹配项。
  2. 注意点:

    • 索引不能超出列表范围,否则会抛出 IndexError 异常。
    • 列表的切片操作(如 fruits[1:3])会返回一个新的列表。
fruits = ['apple', 'banana', 'cherry']
numbers = [1, 2, 3, 4, 5]
mixed = [1, 'hello', True, [1, 2, 3]]

# 删除元素
del fruits[2]
removed = fruits.pop(1)
fruits.remove('pear')

# 添加元素
fruits.append('pear')
fruits.insert(1, 'grape')

# 修改元素
fruits[1] = 'orange'

# 访问元素
print(fruits[0])
4.2 元组
  1. 基本概念:元组是一种有序、不可变的数据类型,元素之间用逗号分隔,整体用圆括号 () 包裹。虽然不可变,但元组内如果包含可变对象(如列表),可变对象本身是可以修改的。
  2. 注意点:由于元组不可变,所以没有添加、删除、修改元素的方法。元组在需要保证数据不被意外修改的场景下很有用,并且相比列表,元组的访问速度更快。
point = (1, 2)
fruits = ('apple', 'banana', 'cherry')
single = (1,)  # 单个元素的元组需要逗号
4.3 集合(set)
  1. 基本概念:集合是一种无序、可变、不重复的数据类型,元素之间用逗号分隔,整体用花括号 {} 包裹(注意:创建空集合需用 set(),因为 {} 创建的是空字典)。
  2. 注意点:集合中的元素必须是不可变的,所以不能包含列表等可变对象。集合常用于快速判断元素是否存在、去除重复元素以及进行集合运算。
set1 = {1, 2, 3, 4}
set2 = {3, 4, 5, 6}
print(set1 | set2)  # 并集
print(set1 & set2)  # 交集
print(set1 - set2)  # 差集

# 删除元素
numbers.remove(3)
numbers.discard(9)

# 添加元素
numbers.add(5)
numbers.update([6, 7, 8])
4.4 字典(dict)
  1. 基本概念:字典是一种无序的、可变的数据类型,以键值对(key-value)的形式存储数据。键必须是唯一且不可变的(如字符串、数字、元组),值可以是任意数据类型。
  2. 注意点:
    • 键的唯一性:字典中键必须唯一,后出现的相同键会覆盖前面的值。
    • 键的不可变性:键只能使用不可变数据类型,如不能使用列表作为键。
    • 性能优势:字典查找速度快,适合大规模数据的快速查询场景。
person = {'name': 'Alice', 'age': 25}
info = dict(name='Bob', age=30)

# 遍历字典
for key in person.keys():
    print(key)

for value in person.values():
    print(value)

for key, value in person.items():
    print(key, value)

# 删除元素
del person['height']
age = person.pop('age')

# 修改和添加元素
person['age'] = 26
person['height'] = 165

# 访问字典元素
print(person['name'])
print(person.get('height', '暂无数据'))

三、运算符

1. 算术运算符

算术运算符主要用于执行基本的数学运算,涵盖加、减、乘、除等操作。

运算符描述示例及结果
+加法5 + 3 结果为 8
-减法5 - 3 结果为 2
*乘法5 * 3 结果为 15
/除法5 / 3 结果为 1.666...
%取模5 % 3 结果为 2
**幂运算5 ** 3 结果为 125
//取整除5 // 3 结果为 1

2. 比较运算符

比较运算符用于对两个值进行大小或相等关系的比较,其运算结果为布尔类型(True 或 False)。

运算符描述示例及结果
==判断相等5 == 3 结果为 False
!=判断不相等5 != 3 结果为 True
>大于5 > 3 结果为 True
<小于5 < 3 结果为 False
>=大于等于5 >= 3 结果为 True
<=小于等于5 <= 3 结果为 False

3. 赋值运算符

运算符等价操作示例
+=a = a + ba = 5; a += 3 -> 8
-=a = a - ba = 5; a -= 3 -> 2
*=a = a * ba = 5; a *= 3 -> 15
/=a = a / ba = 5; a /= 3 -> 1.66...
%=a = a % ba = 5; a %= 3 -> 2
**=a = a ** ba = 5; a **= 3 -> 125
//=a = a // ba = 5; a //= 3 -> 1

4. 逻辑运算符

运算符描述示例及结果
and逻辑与True and False 结果为 False
or逻辑或True or False 结果为 True
not逻辑非not True 结果为 False

5. 位运算符

运算符描述示例及结果
&按位与a & b 结果为 12
^按位异或a ^ b 结果为 49
~按位取反~a 结果为 -61
<<左移a << 2 结果为 240
>>右移a >> 2 结果为 15

6. 成员运算符

运算符描述示例及结果
in判断存在3 in my_list 结果为 True
not in判断不存在6 not in my_list 结果为 True

7. 身份运算符

运算符描述示例及结果
is判断同一对象a is b 结果为 True
is not判断不同对象a is not c 结果为 True

8. 运算符优先级

运算符类型优先级从高到低
算术运算符** > ~、+、- > *、/、%、// > +、-
位运算符<<、>> > & > ^、
比较运算符==、!=、>、<、>=、<=
逻辑运算符not > and > or
result = 3 + 5 * 2  # 先执行乘法,再执行加法,结果为 13
result = (3 + 5) * 2  # 先执行括号内的加法,再执行乘法,结果为 16

四、判断与循环

1. 判断

if 语句
if condition:
    # 条件为 True 时执行的代码块
    pass
if - else 语句
if condition:
    pass
else:
    pass
if - elif - else 语句
if condition1:
    pass
elif condition2:
    pass
else:
    pass

2. 循环语句

for 循环
for item in iterable:
    # 针对每个 item 执行的代码块
    pass
fruits = ["苹果", "香蕉", "橙子"]
for fruit in fruits:
    print(fruit)
while 循环
while condition:
    # 条件为 True 时执行的代码块
    pass
循环控制语句
  • break:用于立即终止循环。
  • continue:用于跳过当前循环的剩余代码,直接开始下一次循环。

五、函数

(一)、函数基础

1. 定义函数

在 Python 中,使用 def 关键字定义函数。

def add(a, b):
    return a + b
2. 调用函数
result = add(3, 5)
print(result)

(二)、函数参数

1. 默认参数
def greet(name, message="Hello"):
    print(f"{message}, {name}!")

greet("Alice")
greet("Bob", "Hi")
2. 可变参数
  • *args:收集多个位置参数,封装成元组。
  • **kwargs:收集多个关键字参数,封装成字典。
def print_args(*args):
    for arg in args:
        print(arg)

def print_kwargs(**kwargs):
    for key, value in kwargs.items():
        print(f"{key}: {value}")

(三)、匿名函数

square = lambda x: x ** 2
print(square(4))

(四)、函数作为对象

def operate(a, b, func):
    return func(a, b)

def multiply(a, b):
    return a * b

result = operate(3, 4, multiply)
print(result)

六、文件操作

(一)、文件操作基础

1. 打开文件
file = open('example.txt', 'r')
2. 读取文件
with open('example.txt', 'r') as file:
    content = file.read()
    print(content)
3. 写入文件
with open('example.txt', 'w') as file:
    file.write('这是新写入的内容')

(二)、上下文管理器

with open('example.txt', 'r') as file:
    content = file.read()
    print(content)

(三)、二进制文件操作

with open('image.jpg', 'rb') as input_file:
    with open('new_image.jpg', 'wb') as output_file:
        data = input_file.read()
        output_file.write(data)

七、模块导入与应用

1. Numpy:数值计算的基石

1.1 安装 Numpy
pip install numpy
1.2 导入 Numpy
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
print(arr)

2. Pandas:数据处理的利器

2.1 安装 Pandas
pip install pandas
2.2 导入 Pandas
import pandas as pd
data = pd.read_csv('example.csv')
print(data.head())

3. Matplotlib:数据可视化大师

3.1 安装 Matplotlib
pip install matplotlib
3.2 导入 Matplotlib
import matplotlib.pyplot as plt
x = np.linspace(0, 10, 100)
y = np.sin(x)
plt.plot(x, y)
plt.show()

4. 多模块协同使用

案例:分析学生成绩数据

假设有一份学生成绩的 CSV 文件,包含学生姓名、各科成绩等信息。我们将使用 Pandas 读取数据,Numpy 进行数据计算,Matplotlib 绘制成绩分布图表。

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

# 读取数据
data = pd.read_csv('scores.csv')

# 计算平均成绩
data['Average'] = np.mean(data[['Math', 'Science', 'English']], axis=1)

# 绘制平均成绩分布直方图
plt.hist(data['Average'], bins=10, edgecolor='black')
plt.xlabel('Average Score')
plt.ylabel('Number of Students')
plt.title('Distribution of Average Scores')
plt.show()

目录

  1. Python 数学建模基础语法与常用库应用指南
  2. 一、基础语法
  3. 1. 标识符
  4. 2. 保留字符
  5. 3. 行和缩进
  6. 4. 注释
  7. 5. print 输出
  8. 换行输出
  9. 不换行输出
  10. 6. 代码组
  11. 二、基本数据类型
  12. (一)、变量赋值
  13. 1.1 无需类型声明
  14. 1.2 多种赋值方式
  15. (二)、标准数据类型
  16. 2.1 数字(Numbers)
  17. 2.1.1 不可变类型
  18. 2.1.2 支持类型
  19. 2.1.3 删除对象引用
  20. 2.2 字符串(String)
  21. 2.2.1 组成与索引
  22. 2.2.2 切片操作
  23. 2.2.3 运算符
  24. (三)、数据类型的转换
  25. 3.1 隐式类型转换——自动完成
  26. 隐式转换
  27. 3.2 显式类型转换——使用类型函数来转换
  28. 强制转换
  29. (四)、复合数据类型
  30. 4.1 列表
  31. 删除元素
  32. 添加元素
  33. 修改元素
  34. 访问元素
  35. 4.2 元组
  36. 4.3 集合(set)
  37. 删除元素
  38. 添加元素
  39. 4.4 字典(dict)
  40. 遍历字典
  41. 删除元素
  42. 修改和添加元素
  43. 访问字典元素
  44. 三、运算符
  45. 1. 算术运算符
  46. 2. 比较运算符
  47. 3. 赋值运算符
  48. 4. 逻辑运算符
  49. 5. 位运算符
  50. 6. 成员运算符
  51. 7. 身份运算符
  52. 8. 运算符优先级
  53. 四、判断与循环
  54. 1. 判断
  55. if 语句
  56. if - else 语句
  57. if - elif - else 语句
  58. 2. 循环语句
  59. for 循环
  60. while 循环
  61. 循环控制语句
  62. 五、函数
  63. (一)、函数基础
  64. 1. 定义函数
  65. 2. 调用函数
  66. (二)、函数参数
  67. 1. 默认参数
  68. 2. 可变参数
  69. (三)、匿名函数
  70. (四)、函数作为对象
  71. 六、文件操作
  72. (一)、文件操作基础
  73. 1. 打开文件
  74. 2. 读取文件
  75. 3. 写入文件
  76. (二)、上下文管理器
  77. (三)、二进制文件操作
  78. 七、模块导入与应用
  79. 1. Numpy:数值计算的基石
  80. 1.1 安装 Numpy
  81. 1.2 导入 Numpy
  82. 2. Pandas:数据处理的利器
  83. 2.1 安装 Pandas
  84. 2.2 导入 Pandas
  85. 3. Matplotlib:数据可视化大师
  86. 3.1 安装 Matplotlib
  87. 3.2 导入 Matplotlib
  88. 4. 多模块协同使用
  89. 案例:分析学生成绩数据
  90. 读取数据
  91. 计算平均成绩
  92. 绘制平均成绩分布直方图
  • 💰 8折买阿里云服务器限时8折了解详情
  • 💰 8折买阿里云服务器限时8折购买
  • 🦞 5分钟部署阿里云小龙虾了解详情
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog

更多推荐文章

查看全部
  • C++进阶:unordered_set 和 unordered_map 详解及哈希表模拟实现
  • 解决 GitHub SSH 连接端口 22 超时问题
  • SpringBoot 整合 Spring Data JDBC
  • 程序员如何入局 AI 大模型及职业发展路径
  • Linux LVM 磁盘管理工具详解:物理卷、卷组与逻辑卷操作
  • 软件设计各个模块分析
  • 交换瓶子问题 Java 最小交换次数解法
  • Java Cookie 技术原理与应用
  • CopyOnWriteArrayList 源码解析
  • Python 学习后如何找工作及就业方向分析
  • Windows 环境下如何将本地代码推送到 Git 远程仓库
  • Vue 中使用 Less 样式预处理
  • 大语言模型框架-Megatron-LM 源码分析
  • CSS 子元素选择器
  • Webpack Loader 一览表
  • ThinkPHP 5.1 环境安装与配置指南
  • Ubuntu SSH 服务安装与配置详解
  • 云原生容器技术入门:Docker 与 K8s 基本原理及用途
  • CSS 常用标签与属性详解
  • WebLogic MIB 与 AdventNet MIB Browser 工具使用指南

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online