首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >当Python遇上数学建模,你学废了嘛?

当Python遇上数学建模,你学废了嘛?

作者头像
钮祜禄.爱因斯晨
发布于 2025-06-11 10:29:12
发布于 2025-06-11 10:29:12
11600
代码可运行
举报
运行总次数:0
代码可运行

本文只针对python在数学建模比赛中的应用,不是很全面哦~

一、基础语法

1. 标识符

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

2. 保留字符

andif等关键词,不能用作标识符。

3. 行和缩进

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
a=1
if a==1:
    print(a)
    print("ture")
    print("a是等于1的")
print("go")
4.注释

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

5. print 输出

默认情况下,print 会换行输出。在变量末尾加上逗号(, ),可实现不换行输出。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
x="a"
y="b"
# 换行输出
print x
print y

print '---------'
# 不换行输出
print x,
print y,

# 不换行输出
print x,y

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

6. 代码组

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

二、基本数据类型

(一)、变量赋值
1.1 无需类型声明

Python 中的变量赋值不需要类型声明。

每个变量在内存中创建,都包括变量的标识,名称和数据这些信息。

每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。

等号 = 用来给变量赋值。

等号**=** 运算符左边是一个变量名,等号**=** 运算符右边是存储在变量中的值。例如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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 不可变类型

数字数据类型用于存储数值。值得注意的是,当数字变量的值发生改变时,系统会为其分配新的对象。例如,当var1 = 1,若后续修改var1的值,系统将重新分配内存空间。

2.1.2 支持类型
  • int(有符号整型):主要用于表示整数,如10、-786等,涵盖了正整数、负整数和零。
  • long(长整型,仅 Python 2.X):在 Python 2.2 及之后的版本中,当int数据发生溢出时,会自动转换为long类型。在表示长整型数据时,可使用大写L或小写l,为避免与数字1混淆,建议使用大写L,如51924361L。
  • float(浮点型):用于表示带有小数部分的数值,如0.0、15.20等。
  • complex(复数):由实部和虚部组成,书写形式为a + bj,或者通过complex(a,b)函数创建,如3.14j。
2.1.3 删除对象引用

可使用del语句删除数字对象的引用。例如,del var1可删除变量var1的引用;del var_a, var_b则可同时删除多个变量的引用。

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

字符串由数字、字母、下划线等字符组成。在字符串中,索引从左至右默认从0开始,从右至左默认从-1开始。例如,对于字符串’abcdef’,字符’a’的索引为0,字符’f’的索引为-1。

2.2.2 切片操作

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

2.2.3 运算符

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

  • 连接运算符(+):将两个字符串连接成一个新的字符串,如’Hello,’ + 'World!‘结果为’Hello,World!’。
  • 重复运算符(*):将字符串重复指定次数,如’Hi’ * 3结果为’HiHiHi’。
(三)、数据类型的转换
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
a=100
print (type(a))
b=100.9
print (type(b))
c=True
print (type(c))

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

3.1隐式类型转换——自动完成
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#隐式转换
ab=a+b
print(type(ab))
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<class 'float'>
3.2显式类型转换——使用类型函数来转换
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#强制转换
ab=a+int(b)
print(type(ab))
ab=int(a+b)
print(type(ab))
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<class 'int'>
<class 'int'>

就是在想要转换的变量前面加一个身份

(四)、复合数据类型
4.1列表

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

创建列表

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
fruits = ['apple', 'banana', 'cherry']
numbers = [1, 2, 3, 4, 5]
mixed = [1, 'hello', True, [1, 2, 3]]

访问元素:

通过索引(从 0 开始)访问列表元素。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
print(fruits[0])  

修改元素:

可以直接通过索引修改指定位置的元素。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
fruits[1] = 'orange'

添加元素

  • append() 方法在列表末尾添加一个元素。
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
fruits.append('pear')
  • insert() 方法在指定位置插入一个元素。
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
fruits.insert(1, 'grape')

删除元素

  • 使用 del 语句删除指定位置的元素.
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
del fruits[2]
  • pop() 方法删除并返回指定位置的元素(默认删除最后一个)。
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
removed = fruits.pop(1)
  • remove() 方法删除指定值的第一个匹配项。
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
fruits.remove('pear')

注意点:

  • 索引不能超出列表范围,否则会抛出 IndexError 异常。
  • 列表的切片操作(如 fruits[1:3])会返回一个新的列表。
4.2 元组

基本概念:元组是一种有序、不可变的数据类型,元素之间用逗号分隔,整体用圆括号 () 包裹。虽然不可变,但元组内如果包含可变对象(如列表),可变对象本身是可以修改的。

创建元组

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
point = (1, 2)
fruits = ('apple', 'banana', 'cherry')
single = (1,)  # 单个元素的元组需要逗号

访问元素:

和列表一样通过索引访问。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
print(fruits[1])  

注意点:

  • 由于元组不可变,所以没有添加、删除、修改元素的方法。
  • 元组在需要保证数据不被意外修改的场景下很有用,并且相比列表,元组的访问速度更快。
4.3集合(set)

基本概念:集合是一种无序、可变、不重复的数据类型,元素之间用逗号分隔,整体用花括号 {} 包裹(注意:创建空集合需用 set(),因为 {} 创建的是空字典)。

创建集合

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
numbers = {1, 2, 3, 4, 4}  # 重复元素会被自动去除
fruits = set(['apple', 'banana', 'cherry'])

添加元素:

使用 add() 方法添加单个元素,update() 方法添加多个元素(可以是列表、元组等可迭代对象)。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
numbers.add(5)
numbers.update([6, 7, 8])

删除元素:

remove() 方法删除指定元素(元素不存在时会报错),discard() 方法删除指定元素(元素不存在时不会报错)。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
numbers.remove(3)
numbers.discard(9)

集合运算:支持并集(|union() 方法)、交集(&intersection() 方法)、差集(-difference() 方法)等。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
set1 = {1, 2, 3, 4}
set2 = {3, 4, 5, 6}
print(set1 | set2)  
print(set1 & set2)  
print(set1 - set2)  

注意点:

  • 集合中的元素必须是不可变的,所以不能包含列表等可变对象。
  • 集合常用于快速判断元素是否存在、去除重复元素以及进行集合运算。
4.4字典(dict)

基本概念:字典是一种无序的、可变的数据类型,以键值对(key - value)的形式存储数据。键必须是唯一且不可变的(如字符串、数字、元组),值可以是任意数据类型。

创建字典

  • 直接赋值
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
person = {'name': 'Alice', 'age': 25}
  • 使用 dict() 函数
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
info = dict(name='Bob', age=30)

访问字典元素:通过键获取对应的值。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
print(person['name'])  
  • 使用 get() 方法,避免键不存在时抛出异常。
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
print(person.get('height', '暂无数据'))  

修改和添加元素:修改已有键的值,添加新的键值对。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
person['age'] = 26
person['height'] = 165

删除元素

  • 使用 del 语句删除指定键值对。
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
del person['height']
  • 使用 pop() 方法删除并返回指定键的值。
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
age = person.pop('age')

遍历字典

  • 遍历键
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
for key in person.keys():
    print(key)
  • 遍历值
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
for value in person.values():
    print(value)
  • 遍历键值对
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
for key, value in person.items():
    print(key, value)

注意点:

  • 键的唯一性:字典中键必须唯一,后出现的相同键会覆盖前面的值。
  • 键的不可变性:键只能使用不可变数据类型,如不能使用列表作为键。
  • 性能优势:字典查找速度快,适合大规模数据的快速查询场景。

三、运算符

1. 算术运算符

算术运算符主要用于执行基本的数学运算,涵盖加、减、乘、除等操作,既支持数值类型的运算,部分运算符还能作用于特定的序列类型。

1.1 基本运算

运算符

描述

示例及结果

+

加法,用于数值相加,也可拼接字符串、列表等序列

5 + 3结果为8;'Hello ’ + ‘World’结果为’Hello World’

-

减法,实现数值相减

5 - 3结果为2

*

乘法,实现数值相乘,还能重复序列

5 * 3结果为15;‘abc’ * 3结果为’abcabcabc’

/

除法,结果以浮点数形式呈现

5 / 3结果为1.6666666666666667

1.2 特殊运算

运算符

描述

示例及结果

%

取模,返回除法运算的余数

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. 赋值运算符

赋值运算符用于将数据值赋给变量,除了基本的赋值运算符=,还包括多种复合赋值运算符,以简化常见的运算操作。

3.1 基本赋值

运算符

描述

示例

=

将右侧的值赋给左侧变量

a = 5

3.2 复合赋值

运算符

等价操作

示例

+=

a += b等价于a = a + b

a = 5; a += 3,执行后a的值为8

-=

a -= b等价于a = a - b

a = 5; a -= 3,执行后a的值为2

*=

a *= b等价于a = a * b

a = 5; a *= 3,执行后a的值为15

/=

a /= b等价于a = a / b

a = 5; a /= 3,执行后a的值约为1.6666666666666667

%=

a %= b等价于a = a % b

a = 5; a %= 3,执行后a的值为2

**=

a **= b等价于a = a ** b

a = 5; a **= 3,执行后a的值为125

//=

a //= b等价于a = a // b

a = 5; a //= 3,执行后a的值为1

4. 逻辑运算符

逻辑运算符用于组合多个条件语句,从而构建复杂的逻辑表达式,运算结果同样为布尔类型。

运算符

描述

示例及结果

and

逻辑与,当且仅当所有条件都为True时,结果才为True

True and False结果为False

or

逻辑或,只要有一个条件为True,结果就为True

True or False结果为True

not

逻辑非,对条件的结果进行取反

not True结果为False

5. 位运算符

位运算符以二进制形式对数字进行操作,通过对二进制位的运算实现特定功能,在计算机底层操作、数据加密等领域应用频繁。

运算符

描述

示例及结果(以a = 60(二进制0011 1100),b = 13(二进制0000 1101)为例)

&

按位与,只有对应位都为1时,结果位才为1

a & b结果为12(二进制0000 1100)

`

`

按位或,只要对应位有一个为1,结果位就为1

^

按位异或,对应位不同时,结果位为1

a ^ b结果为49(二进制0011 0001)

~

按位取反,将二进制位中的0和1进行反转

~a结果为-61

<<

左移,将二进制位向左移动指定的位数,低位补0

a << 2结果为240(二进制1111 0000)

>>

右移,将二进制位向右移动指定的位数

a >> 2结果为15(二进制0000 1111)

6. 成员运算符

成员运算符用于判断一个值是否属于某个序列,返回布尔类型的结果,在遍历和筛选数据时十分实用。

运算符

描述

示例及结果

in

判断指定值是否存在于序列中

my_list = [1, 2, 3, 4, 5]; 3 in my_list结果为True

not in

判断指定值是否不存在于序列中

my_list = [1, 2, 3, 4, 5]; 6 not in my_list结果为True

7. 身份运算符

身份运算符用于判断两个对象是否引用自同一个对象,即是否在内存中占据相同的位置,同样返回布尔类型结果。

运算符

描述

示例及结果

is

判断两个对象是否为同一个对象

a = [1, 2, 3]; b = a; a is b结果为True

is not

判断两个对象是否不是同一个对象

a = [1, 2, 3]; c = [1, 2, 3]; a is not c结果为True

8. 运算符优先级

当一个表达式中包含多个运算符时,Python 会依据既定的优先级规则来确定运算顺序。通常,乘除运算的优先级高于加减运算。合理使用括号可以改变运算的优先级,使表达式的逻辑更加清晰。

运算符类型

优先级从高到低

算术运算符

** > ~、+(正号)、-(负号) > *、/、%、// > +、-

位运算符

<<、>> > & > ^、`

比较运算符

==、!=、>、<、>=、<=

逻辑运算符

not > and > or

举例说明:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
result = 3 + 5 * 2  # 先执行乘法,再执行加法,结果为13
result = (3 + 5) * 2  # 先执行括号内的加法,再执行乘法,结果为16

四、判断与循环

1.判断
if 语句

if语句是 Python 中最基本的条件判断结构,其作用是当指定条件为True时,执行相应的代码块。语法如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
if condition:
    # 条件为 True 时执行的代码块
    pass

在上述代码中,condition是一个表达式,它的结果要么是True,要么是False。pass是占位符,当你暂时不想编写具体代码时,可以使用它。举个例子:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
age = 18
if age >= 18:
    print("你已成年")
if - else 语句

if - else语句用于在条件为True和False时,分别执行不同的代码块。语法如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
if condition:
    # 条件为 True 时执行的代码块
    pass
else:
    # 条件为 False 时执行的代码块
    pass

沿用上面的例子,我们添加else分支:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
age = 16
if age >= 18:
    print("你已成年")
else:
    print("你未成年")
if - elif - else 语句

if - elif - else语句用于多个条件的判断,会按顺序依次检查每个条件,一旦某个条件为True,就会执行对应的代码块,后续的条件将不再检查。语法如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
if condition1:
    # condition1 为 True 时执行的代码块
    pass
elif condition2:
    # condition2 为 True 时执行的代码块
    pass
else:
    # 所有条件都为 False 时执行的代码块
    pass

假设我们要根据学生的成绩给出评级:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
score = 85
if score >= 90:
    print("A")
elif score >= 80:
    print("B")
elif score >= 70:
    print("C")
else:
    print("D")
2. 循环语句
for 循环

for循环用于遍历可迭代对象,如列表、元组、字符串等。语法如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
for item in iterable:
    # 针对每个 item 执行的代码块
    pass

遍历列表示例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
fruits = ["苹果", "香蕉", "橙子"]
for fruit in fruits:
    print(fruit)

range()函数常与for循环搭配使用,生成一系列整数。例如,打印 0 到 4 的数字:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
for i in range(5):
    print(i)
while 循环

while循环会在指定条件为True时,重复执行代码块。语法如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
while condition:
    # 条件为 True 时执行的代码块
    pass

比如,实现一个简单的倒计时:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
count = 5
while count > 0:
    print(count)
    count -= 1
循环控制语句

break:用于立即终止循环,跳出整个循环体。例如,在遍历列表时,找到特定元素后终止循环:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
nums = [1, 2, 3, 4, 5]
for num in nums:
    if num == 3:
        break
    print(num)

continue:用于跳过当前循环的剩余代码,直接开始下一次循环。如,打印列表中的奇数:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
nums = [1, 2, 3, 4, 5]
for num in nums:
    if num % 2 == 0:
        continue
    print(num)

五、函数

(一)、函数基础
1. 定义函数

在 Python 中,使用def关键字定义函数,具体语法结构为def 函数名(参数列表): 函数体。下面以一个简单的加法函数为例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
def add(a, b):
    return a + b

在这段代码里,add是函数名,它是函数的唯一标识,通过函数名可调用函数。a和b是参数,作为函数的输入数据,在函数被调用时,会接收外部传入的值。return语句用来返回函数的计算结果,将函数的处理结果反馈给调用者。

2. 调用函数

定义好函数后,就可以在代码的其他位置调用它。调用函数的方式是使用函数名,并在括号内传入相应参数。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
result = add(3, 5)
print(result)

上述代码通过add(3, 5)的形式,将 3 和 5 作为参数传入add函数。程序会执行函数内部的代码,即计算a + b,然后返回计算结果,赋值给result变量,最后通过print函数输出结果。

(二)、函数参数
1. 默认参数

在定义函数时,可以为参数设置默认值。当调用函数时不传入该参数,函数会使用默认值。这在很多场景下都能简化函数调用,提高代码的灵活性。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
def greet(name, message="Hello"):
    print(f"{message}, {name}!")

greet("Alice")
greet("Bob", "Hi")

在上述代码中,message参数有默认值"Hello"。第一个调用greet(“Alice”)时,由于没有传入message参数,函数会使用默认的问候语"Hello";第二个调用greet(“Bob”, “Hi”)时,传入了新的问候语"Hi",函数会使用传入的值。

2. 可变参数

有时候,我们不确定会传入多少个参数,这时可以使用可变参数。可变参数有两种形式:*args**kwargs

*args用来收集多个位置参数,这些参数会被封装成一个元组。如下示例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
def print_args(*args):
    for arg in args:
        print(arg)

print_args(1, 2, 3)

**kwargs用来收集多个关键字参数,这些参数会被封装成一个字典,键为参数名,值为参数值。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
def print_kwargs(**kwargs):
    for key, value in kwargs.items():
        print(f"{key}: {value}")

print_kwargs(name="Alice", age=25)

在实际开发中,这两种可变参数形式能让函数适应不同数量和类型的参数输入,增强函数的通用性。

(三)、匿名函数

Python 中的匿名函数,也叫lambda函数,通常用于定义简单的、一次性的函数。lambda 函数没有函数名,使用lambda关键字定义,后面跟着参数,冒号后面是返回值的表达式。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
square = lambda x: x ** 2
print(square(4))

lambda 函数适用于一些简单的、不需要重复使用的函数场景。比如在sorted、map、filter等函数中作为参数。下面以sorted函数为例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
students = [
    {"name": "Alice", "age": 20},
    {"name": "Bob", "age": 18}
]
sorted_students = sorted(students, key=lambda item: item["age"])
print(sorted_students)

上述代码通过lambda item: item["age"]定义了排序的依据,让sorted函数按学生年龄对列表进行排序。

(四)、函数作为对象

在 Python 中,函数是一等公民,可以像其他数据类型一样进行传递、赋值和作为参数。这意味着函数可以被赋值给变量,作为参数传递给其他函数,甚至作为其他函数的返回值。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
def operate(a, b, func):
    return func(a, b)

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

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

在operate函数中,func参数接收一个函数对象。通过这种方式,operate函数可以根据传入的不同函数,实现不同的运算逻辑,这为 Python 的函数式编程奠定了基础,使代码具备更高的灵活性和抽象性。

六、文件操作

(一)、文件操作基础
1. 打开文件

在 Python 里,借助open()函数打开文件。其最基本的语法是open(文件名name, 打开模式mode),打开模式决定了对文件的操作权限。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
file = open('example.txt', 'r')

上述代码以只读模式(r)打开名为example.txt的文件。r表示只能读取文件内容,不能修改文件。其他常用的打开模式还有w(写入模式,会覆盖原有内容)a(追加模式,在文件末尾添加内容)

2. 读取文件

文件打开后,就可以读取文件内容。read()方法用于读取整个文件,readline()方法每次读取一行

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
file = open('example.txt', 'r')
content = file.read()
print(content)

file.seek(0)  # 将文件指针移到文件开头
line = file.readline()
print(line)
file.close()

seek(0)方法把文件指针移到文件开头,以便再次读取文件。使用完文件后,务必调用close()方法关闭文件,防止资源泄露。

3. 写入文件

若要写入文件,可使用write()方法。下面以写入模式打开文件,并写入内容:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
file = open('example.txt', 'w')
file.write('这是新写入的内容')
file.close()

若使用追加模式a,新内容会添加到文件末尾,而不会覆盖原有内容。

(二)、上下文管理器

频繁地打开和关闭文件不仅繁琐,还容易引发错误。Python 的with语句能有效解决这一问题。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
with open('example.txt', 'r') as file:
    content = file.read()
    print(content)

使用with语句时,文件会在代码块执行完毕后自动关闭,即便代码块中发生异常,也能确保文件正确关闭,极大地简化了代码,提高了代码的安全性。

(三)、二进制文件操作

除了文本文件,Python 也能处理二进制文件,如图片、音频、视频等。以读取和写入图片文件为例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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)

rb表示以二进制只读模式打开文件wb表示以二进制写入模式打开文件。在处理二进制文件时,务必使用二进制模式,防止数据损坏。

七、模块导入与应用

1.Numpy:数值计算的基石

Numpy 是 Python 科学计算的基础库,它提供了高性能的多维数组对象,以及用于处理这些数组的工具。无论是简单的数学运算,还是复杂的机器学习算法,Numpy 都是不可或缺的工具。

1.1 安装 Numpy

如果你使用的是 Anaconda,那么可以在终端中使用如下命令进行安装:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
conda install numpy

若你没有安装 Anaconda,也可以使用 pip 进行安装:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pip install numpy
1.2 导入 Numpy

在 Python 脚本或交互式环境中,通常使用如下方式导入 Numpy:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import numpy as np

这种导入方式,让np成为numpy的别名,后续使用 Numpy 功能时,调用np即可,极大提高代码的简洁性。比如创建一个一维数组:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
arr = np.array([1, 2, 3, 4, 5])
print(arr)
2.Pandas:数据处理的利器

Pandas 是专门用于数据处理和分析的库,它提供了快速、灵活、明确的数据结构,旨在简单、直观地处理关系型、标记型数据。

2.1安装 Pandas

使用 Anaconda 安装 Pandas,在终端输入:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
conda install pandas

使用 pip 安装的命令如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pip install pandas
2.2 导入 Pandas

在 Python 代码中,常用如下方式导入 Pandas:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import pandas as pd

以读取 CSV 文件为例,展示 Pandas 的基本用法:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
data = pd.read_csv('example.csv')
print(data.head())
3.Matplotlib:数据可视化大师

Matplotlib 是 Python 中最常用的数据可视化库,它能帮助我们将数据以各种图表的形式呈现出来,让数据更加直观易懂。

3.1 安装 Matplotlib

通过 Anaconda 安装:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
conda install matplotlib

使用 pip 安装:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pip install matplotlib
3.2 导入 Matplotlib

在 Python 脚本中,通常这样导入 Matplotlib 的pyplot模块:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import matplotlib.pyplot as plt

下面通过一个简单的示例,绘制一条折线图:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import numpy as np
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 绘制成绩分布图表。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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()
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
使用 pip 安装:

```python
pip install matplotlib
3.2 导入 Matplotlib

在 Python 脚本中,通常这样导入 Matplotlib 的pyplot模块:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import matplotlib.pyplot as plt

下面通过一个简单的示例,绘制一条折线图:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import numpy as np
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 绘制成绩分布图表。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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()
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-06-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
带你系统梳理 Python 全 39 个关键字(含 4 个软关键字),从基础语法到进阶用法
用简单的话来说,Python中的关键字就是Python 已经存在的特殊词语,这些特殊的词语在Python中都有自己固定的意思,既然是Python固定好的,那么就不能随便使用,不能随便给变量来命名,或者给函数命名,在Python中一共有39个关机那字,而且其中有4个事软关键字。
小白的大数据之旅
2025/07/02
1930
带你系统梳理 Python 全 39 个关键字(含 4 个软关键字),从基础语法到进阶用法
教女朋友学 Python 第 3 天:语言元素
之前的文章中,我们已经对 Python 有所了解了,并且也学会了 Pycharm 的安装及使用。现在该开始正式进入主题了,接下来就要学习 Python 的相关语法,以及如何使用他们进行编程。
村雨遥
2021/03/15
9320
【数学建模】——【新手小白到国奖选手】——【学习路线】
掌握Python基础是进行数学建模的第一步。Python的易用性和丰富的库使其成为数据科学和数学建模的理想选择。
小李很执着
2024/06/21
1.4K0
【数学建模】——【新手小白到国奖选手】——【学习路线】
python基础系列教程——python基础语法全解
Python是一种解释型(这意味着开发过程中没有了编译这个环节)、面向对象(支持面向对象的风格或代码封装在对象的编程技术)、动态数据类型的交互式(可在命令行中通过Python提示符及直接代码执行程序)高级程序设计语言。
全栈程序员站长
2022/09/15
1.2K0
数据科学Python基础(附示例代码和练习题目)
翻译 | AI科技大本营 参与 | 王珂凝 审校 | reason_W 【AI科技大本营导读】Python的强大和灵活相信已经毋庸置疑了。那么数据科学中,我们又需要掌握哪些基础知识点才能满足使用需求
AI科技大本营
2018/04/26
1.5K0
数据科学Python基础(附示例代码和练习题目)
自学Python笔记(二)
作为最最基础的初学者,尤其是面对中小学生学习Python我想大概了解一下Python,能编个小程序,能看懂一般的程序就可以,如果想深一步的学习还是需要静下心来好好研究一番,兴趣是第一位的,虽然需要紧跟时代需要,但未必让所有人成为编程大师。 昨天有朋友问我“你是不是想学人工智能?”说实话我感觉Python真的和人工智能没半毛钱关系,就好比铁匠打了把好刀,锤子说是我打的一样。我的同行好多连编程是什么都搞不明白(不服来辩),学新东西更是没有动力,所以我还是希望以完全初学者的角度入手来认识Python这个语言。
企鹅号小编
2018/01/11
1.3K0
自学Python笔记(二)
Python 数据分析(PYDA)第三版(一)
第 3 版的《Python 数据分析》现在作为“开放获取”HTML 版本在此网站wesmckinney.com/book上提供,除了通常的印刷和电子书格式。该版本最初于 2022 年 8 月出版,将在未来几个月和年份内定期修正勘误。如果您发现任何勘误,请在此处报告。
ApacheCN_飞龙
2024/05/24
2650
Python 数据分析(PYDA)第三版(一)
python基础(一)
  python的创始人为吉多·范罗苏姆(Guido van Rossum)。1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承。
用户1432189
2018/09/05
1.6K0
python基础(一)
Python入门摘要
在 Python 中,所有标识符可以包括英文、数字以及下划线(_),但不能以数字开头。
辉哥
2020/09/10
1.8K0
Python入门摘要
Python数据科学入门:基础知识、工具与实战应用
文章链接:https://cloud.tencent.com/developer/article/2465509
一键难忘
2024/11/27
2970
大数据技术之_24_电影推荐系统项目_02_Python 基础语法复习
第六章 Python 基础语法 6.1 Python 综述 6.1.1 Python 是什么   Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。   Python 的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标点符号,它具有比其他语言更有特色语法结构。   ython 是一种解释型语言:这意味着开发过程中没有了编译这个环节。类似于 PHP 和 Perl 语言。   Python 是交互式语言:这意味着,我们可以在一个 Python 提示符后面直接
黑泽君
2019/05/17
2.5K0
Python 基础知识学习
      Python中默认的编码格式是 ASCII 格式在没修改编码格式时无法正确打印汉字所以在读取中文           时会报错解决方法为只要在文件开头加入# -*- coding: UTF-8 -*- 或者 #coding=utf-8 就了
py3study
2020/01/15
1.9K0
Python
概念:保留字是Python语言中已经被赋予特定意义的一些单词,开发程序时,不可以作为变量、函数、类、模块和其他对象的名称来使用。
青灯古酒
2023/10/16
2520
Python
Python基本语法
在 Python 中,所有标识符可以包括英文、数字以及下划线(_),但不能以数字开头。
全栈程序员站长
2022/08/04
7990
Python基本语法
Python程序与设计
概念:保留字是Python语言中已经被赋予特定意义的一些单词,开发程序时,不可以作为变量、函数、类、模块和其他对象的名称来使用。
青灯古酒
2023/10/16
2620
Python程序与设计
网络工程师学Python-3-列表及其操作
Python列表是一种强大的数据结构,用于在程序中存储和操作一系列的值。列表是可变的(mutable),可以动态地增加、删除和修改其中的元素。在Python中,列表是最常用的数据结构之一,被广泛应用于各种编程场景,从简单的数据处理到复杂的数据结构和算法。本文将介绍Python列表的基本概念、常用操作以及一些实际应用。
网络技术联盟站
2023/04/17
6510
手撕Python三大packages,看了他直接成为数模战神!
在 Python 的编程世界里,包 (packages)就像是一个个百宝箱,里面装满了各种各样实用的工具。对于想要进行数据分析、科学计算和数据可视化的初学者来说, numpy、 pandas和 matplotlib这三个包堪称必备利器。它们能极大地提升编程效率,让复杂的数据处理和可视化任务变得更加轻松。不过,在使用这些包的强大功能之前,我们得先学会如何正确地导入它们。接下来,就让我们一步步深入了解这三个包的导入方式以及基础应用,为开启数据处理与分析的奇妙之旅做好准备。
钮祜禄.爱因斯晨
2025/06/11
1630
利用Python进行数据分析笔记
本书讲的是利用Python进行数据控制、处理、整理、分析等方面的具体细节和基本要点。我的目标是介绍Python编程和用于数据处理的库和工具环境,掌握这些,可以让你成为一个数据分析专家。虽然本书的标题是“数据分析”,重点却是Python编程、库,以及用于数据分析的工具。这就是数据分析要用到的Python编程。
CtrlX
2023/03/21
5.4K0
利用Python进行数据分析笔记
Python全网最全基础课程笔记(四)——基本数据类型
基本数据类型是Python中最基础的数据类型,它们用于存储单个值。Python中的基本数据类型包括:
小白的大数据之旅
2024/11/20
4970
Python全网最全基础课程笔记(四)——基本数据类型
Python 3 入门,看这篇就够了
链接:https://shockerli.net/post/python-study-note/
IT阅读排行榜
2018/09/29
2K0
Python 3 入门,看这篇就够了
相关推荐
带你系统梳理 Python 全 39 个关键字(含 4 个软关键字),从基础语法到进阶用法
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档