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))

posted on 2025-04-15 19:09  Siannnn  阅读(10)  评论(0)    收藏  举报