python初学——random、numpy、文件读写
1、list——索引
print(["Monday","Tuesday","Wednesday"][num-1])
前一个[]是一个list,后面[]里的值是所要取出索引值
range(n)表示一个0-n-1的数
2、运算符
//是整除:向下取整
/返回浮点数
**是幂运算 (**3就是三次方)
3、语法
点击for、if语法代码格式
for num in range(100,1000):
a=num//100
b=num//10%10
c=num%10
if a**3+b**3+c**3==num:
print("num是水仙数")
(2)for循环
打印*三角形
for i in range(4):
print(‘ ’*i+‘* ‘*(7-2*i))
结果:

点击查看 f"" 使用
字符串格式化工具print(f"name is:{name}" if ... else f"no name")
f""——字符串的表达形式,{}里可以放会动态变化的值
if语句若争取,print前一个f里的,若错误,print else里的内容
(3)字符串
f3.write(' '.join(sorted(f1.read().strip()+f2.read().strip())))
sorted()排序字符串中的单个字符按unicode,strip()去除首尾空字符,write写入f3, ‘分割字符内容’+.join(可迭代对象)
4、文件
打开文件
with open ('E:\vscode\A.txt') as f1,open('E:\vscode\B.txt') as f2:
with open('E:\vscode\C.txt','w') as f3:
content=' '.join(sorted(f1.read().strip()+f2.read().strip()))
f3.write(content) #写入f3
print(content)
引入库
引入random
import random
a,b=random.randint(1,100),random.randint(1,100) #生成1-100(包含1和100)的随机数
点击查看更多可生成的数



引入numpy 实现矩阵计算
eval() 的作用
eval(expression) 是 Python 内置函数,用于将字符串解析为有效的 Python 表达式并执行,返回计算结果。例如:
s = "[1, 2, 3]" # 字符串
lst = eval(s) # 解析为列表对象 → [1, 2, 3]
np.array() 的作用
np.array(object) 是 NumPy 的构造函数,将可迭代对象(如列表、元组)转换为 NumPy 数组:
import numpy as np
lst = [1, 2, 3]
arr = np.array(lst) # 转换为 NumPy 数组 → array([1, 2, 3])
| 操作 | 函数/运算符 | 输入要求 | 常见应用场景 |
|---|---|---|---|
| 转置 | A.T 或 np.transpose(A) | 任意矩阵 | 正规方程、协方差矩阵 |
| 逆矩阵 | np.linalg.inv(A) | 可逆方阵 | 解线性方程组 Ax = b |
| 矩阵乘法 | @ 或 np.matmul | 前列数 = 后行数 | 线性代数运算 |
np.round() 是 NumPy 中用于对数组元素进行四舍五入的函数。它可以指定保留的小数位数,适用于数值精度控制、结果显示优化等场景。
numpy.round(a, decimals=0)
a:输入的数组或标量。
decimals(可选):保留的小数位数,默认值为0(整数位四舍五入)。
正数:保留小数点后 decimals 位(例如 decimals=2 → 保留两位小数)。
负数:将整数部分四舍五入到最近的 10 的幂(例如 decimals=-1 → 十位四舍五入)。
返回值:与输入 a 形状相同的数组,元素为四舍五入后的值。
5、实战练习
学生信息输入输出
def input_students():
students = []
for _ in range(3):
try:
stu = [
input("学号: ").strip(), #input().strip() 是 Python 中常用的输入处理方法,其作用是从用户输入中获取字符串并去除首尾的空白字符(如空格、换行符、制表符等)
input("姓名: ").strip(),
float(input("成绩1: ")),
float(input("成绩2: ")),
float(input("成绩3: "))
]
students.append(stu)
except ValueError:
print("输入错误,请重新输入!")
return students
def output_students(students):
for s in students:
print(f"学号:{s[0]},姓名:{ s[1]}, 成绩1:{s[2]},成绩2:{s[3]},成绩3:{s[4]}")
students=input_students()
output_students(students)
矩阵计算
import numpy as np
# 输入矩阵和向量(需按照Python列表格式输入)
A = np.array(eval(input("请输入矩阵A(例如[[1]][[2]][[3]]): ")))
B = np.array(eval(input("请输入矩阵/向量B(例如[1,1]或[[1]]): ")))
y = np.array(eval(input("请输入向量y(例如[5,8]或[[5]][[8]]): ")))
# 检查维度是否匹配
if A.shape[0] != y.shape[0]:
raise ValueError("矩阵A的行数必须与向量y的维度一致")
# 计算 x = A⁻¹(y - B)
At=A.T
B_inv=np.linalg.inv(B)
x = B_inv @At @ y
# 输出结果(保留两位小数)
print("\n解向量 x:")
print(np.round(x, 2))
浙公网安备 33010602011771号