25级数应四班第一次实验(40)
| 学号 | 姓名 | 是否提交作业 |
| 2025010133 | 王子涵 | 是 |
| 2025010134 | 赵雯佳 | 是 |
| 2025010136 | 屈雨蒙 | 是 |
| 2025010137 | 刘柯凡 | 是 |
| 2025010139 | 潘佳乐 | 是 |
| 2025010140 | 杨亚洲 | 是 |
| 2025010141 | 王嘉伟 | 是 |
| 2025010142 | 杨旭洁 | 是 |
| 2025010143 | 肖雅楠 | 是 |
| 2025010144 | 张博洋 | 是 |
| 2025010145 | 黄冰冰 | 是 |
| 2025010146 | 顾芳菲 | 是 |
| 2025010147 | 刘芝怡 | 是 |
| 2025010148 | 岳嘉瑞 | 是 |
| 2025010149 | 马相淼 | 是 |
| 2025010150 | 唐景泽 | 是 |
| 2025010151 | 侯益波 | 是 |
| 2025010152 | 刘金惺 | 是 |
| 2025010153 | 范鹏展 | 是 |
| 2025010154 | 洪关瑞 | 是 |
| 2025010155 | 王状 | 是 |
| 2025010157 | 闫宸熙 | 是 |
| 2025010158 | 陈文洁 | 是 |
| 2025010159 | 成哲煜 | 是 |
| 2025010160 | 韩俊杰 | 是 |
| 2025010161 | 朱星月 | 是 |
| 2025010162 | 刘奕桐 | 是 |
| 2025010163 | 刘志杰 | 是 |
| 2025010164 | 李朋祖 | 是 |
| 2025010165 | 赵子月 | 是 |
| 2025010166 | 蒋子凡 | 是 |
| 2025010167 | 杨书宇 | 是 |
| 2025010168 | 袁艺伦 | 是 |
| 2025010169 | 闵子怡 | 是 |
| 2025010170 | 张家祺 | 是 |
| 2025010171 | 陈宣汝 | 是 |
| 2025010172 | 张景悦 | 是 |
| 2025010173 | 杨云飞 | 是 |
| 2025010174 | 刘研 | 是 |
| 2025010175 | 孙兰妮 | 是 |
2025010133王子涵
求最大公约数
a = int(input("请输入第一个数: "))
b = int(input("请输入第二个数: "))
m, n = a, b # 保存原始输入
t = 1
for i in range(2, min(a, b) + 1): # 注意要+1,否则min(a,b)本身不会被遍历到
while a % i == 0 and b % i == 0:
t *= i
a //= i # 使用整数除法//
b //= i
print(f"{m}, {n}的最大公约数为: {t}")

2025010134 赵雯佳
三点判圆
import math
# 输入三个点
x1, y1 = map(float, input("请输入第一个点 x1 y1: ").split())
x2, y2 = map(float, input("请输入第二个点 x2 y2: ").split())
x3, y3 = map(float, input("请输入第三个点 x3 y3: ").split())
# 计算行列式,判断三点是否共线
A = x1*(y2 - y3) + x2*(y3 - y1) + x3*(y1 - y2)
if abs(A) < 1e-9:
print("三点共线,不能确定一个圆!")
else:
# 求圆心 (a, b)
a1 = 2 * (x2 - x1)
b1 = 2 * (y2 - y1)
c1 = x2**2 + y2**2 - x1**2 - y1**2
a2 = 2 * (x3 - x1)
b2 = 2 * (y3 - y1)
c2 = x3**2 + y3**2 - x1**2 - y1**2
D = a1 * b2 - a2 * b1
a = (c1 * b2 - c2 * b1) / D
b = (a1 * c2 - a2 * c1) / D
# 求半径
r = math.hypot(x1 - a, y1 - b)
print(f"圆心坐标:({a:.2f}, {b:.2f})")
print(f"半径:{r:.2f}")

2025010136 屈雨蒙
输入7-10个数字,求其均方差
# 输入数字,确保是 7~10 个
while True:
nums = input("请输入7-10个数字,用空格分隔:").split()
if 7 <= len(nums) <= 10:
try:
nums = [float(x) for x in nums]
break
except:
print("输入不是有效数字,请重新输入!")
else:
print("必须输入7-10个数,请重新输入!")
# 计算均值
mean = sum(nums) / len(nums)
# 计算均方差(方差)
variance = sum((x - mean) ** 2 for x in nums) / len(nums)
print("均值:", mean)
print("均方差(方差):", variance)
2025010137刘柯凡
水仙花数
for i in range(100, 1000):
bai = i // 100 # 百位
shi = (i % 100) // 10 # 十位
ge = i % 10 # 个位
if bai**3 + shi**3 + ge**3 == i:
print(i)

2025010139潘佳乐
寻找坦克代码中圆圈字符的个数
print("""
▶ 学编程,你不是一个人在战斗~~
II=======00000[/ ★007 ]
/\--
/ /
/ mingrisoft.com
\◎◎◎◎◎◎◎◎◎◎◎/
~~~~~~~~~~~~~~
""")
text="◎◎◎◎◎◎◎◎◎◎◎"
total_num=len(text)
print("总共有",total_num,"个字符")

2025010140杨亚洲
一元二次方程求解
import math
a = float(input("请输入a的值:"))
b = float(input("请输入b的值:"))
c = float(input("请输入c的值:"))
delta = b**2 - 4*a*c
if delta < 0:
print("该方程无实数根")
elif delta == 0:
x12 = -b / (2*a)
print(f"x12 = {x12}")
else:
x1 = (-b + math.sqrt(delta)) / (2*a)
x2 = (-b - math.sqrt(delta)) / (2*a)
print(f"x1 = {x1}")
print(f"x2 = {x2}")
2025010141王嘉伟
def det3(mat):
# 计算3x3矩阵的行列式
a, b, c = mat[0]
d, e, f = mat[1]
g, h, i = mat[2]
return a * (e * i - f * h) - b * (d * i - f * g) + c * (d * h - e * g)
def mat_mult_3x3(mat1, mat2):
# 计算两个3x3矩阵的乘积
result = [[0, 0, 0], [0, 0, 0], [0, 0, 0]]
for i in range(3):
for j in range(3):
for k in range(3):
result[i][j] += mat1[i][k] * mat2[k][j]
return result
def det_mult_3x3(det1_mat, det2_mat):
# 计算两个3x3行列式的乘积(两种方式验证)
# 方式1:直接计算两个行列式的值再相乘
det1 = det3(det1_mat)
det2 = det3(det2_mat)
direct_product = det1 * det2
# 方式2:先矩阵相乘,再计算新矩阵的行列式
product_mat = mat_mult_3x3(det1_mat, det2_mat)
mat_product_det = det3(product_mat)
return direct_product, mat_product_det
# ------------------- 示例测试 -------------------
A = [
[4, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
B = [
[1, 0, 0],
[0, 1, 0],
[0, 0, 1]
] # 单位矩阵,det(B)=1,方便验证
# 计算行列式乘积
direct_prod, mat_prod = det_mult_3x3(A, B)
print(f"矩阵A的行列式: {det3(A)}")
print(f"矩阵B的行列式: {det3(B)}")
print(f"直接相乘结果: {direct_prod}")
print(f"矩阵相乘后取行列式结果: {mat_prod}")

2025010142杨旭洁
一元二次方程
a = float(input("a: ")) b = float(input("b: ")) c = float(input("c: ")) d = b**2 - 4*a*c if d > 0: x1 = (-b + d**0.5) / (2*a) x2 = (-b - d**0.5) / (2*a) print(x1, x2) elif d == 0: print(-b / (2*a)) else: print("无实根")

2025010143 肖雅楠
# 抛物线 y = ax² + bx + c a = 1 b = -2 c = 1 # 直线 y = kx + d k = 1 d = -1 # 整理成一元二次方程 Ax² + Bx + C = 0 A = a B = b - k C = c - d # 计算判别式 delta = B ** 2 - 4 * A * C print("一元二次方程:{}x² + {}x + {} = 0".format(A, B, C)) print("判别式 Δ =", delta) if delta > 0: x1 = (-B + delta ** 0.5) / (2 * A) y1 = k * x1 + d x2 = (-B - delta ** 0.5) / (2 * A) y2 = k * x2 + d print("有两个交点:") print(f"({x1:.2f}, {y1:.2f})") print(f"({x2:.2f}, {y2:.2f})") elif delta == 0: x = -B / (2 * A) y = k * x + d print("有一个交点(相切):") print(f"({x:.2f}, {y:.2f})") else: print("无实数交点")
2025010144张博洋
三角形判断
a,b,c=map(float,input("输入三边空格隔开:").split())
# 判断是否构成三角形
if a <= b and a <= c:
min = a
elif b <= a and b <= c:
min = b
else: min = c
if a >= b and a >= c:
max = a
elif b >= a and b >= c:
max = b
else: max = c
mid = a + b+ c-max-min
if min + mid > max:
print("可以构成三角形")
if min**2 + mid**2 == max**2:
print ("直角三角形")
elif min**2 + mid**2 > max**2:
print ("锐角三角形")
else: print("钝角三角形")
else:
print("不能构成三角形")

2025010145 黄冰冰
一百以内的两个数,找公因数
# 先输入第一个数
a = int(input("请输入第一个数(100以内):"))
# 再输入第二个数
b = int(input("请输入第二个数(100以内):"))
# 存储公约数列表
common_divisors = []
# 遍历1到较小的数,判断是否为公约数
for i in range(1, min(a, b) + 1):
if a % i == 0 and b % i == 0:
common_divisors.append(i)
# 输出结果
print("两个数的公约数为:", common_divisors)
2025010146 顾芳菲
# 判断一个数是不是素数
def is_prime(n):
if n < 2:
return False
for i in range(2, int(n**0.5) + 1):
if n % i == 0:
return False
return True
# 找出 100 以内的素数
primes = [n for n in range(2, 101) if is_prime(n)]
print("100以内的素数:")
print(primes)
![屏幕截图 2026-03-25 130735]()
刘芝怡2025010147
# 找出所有3位水仙花数
for i in range(100, 1000):
# 拆出百位、十位、个位
a = i // 100 # 百位
b = (i // 10) % 10 # 十位
c = i % 10 # 个位
if a**3 + b**3 + c**3 == i:
print(i)

2025010148 岳嘉瑞 给一点和直线求垂足
# 函数:求点到直线的垂足
def foot_of_perpendicular(x0, y0, A, B, C):
denominator = A**2 + B**2
x = (B*(B*x0 - A*y0) - A*C) / denominator
y = (A*(-B*x0 + A*y0) - B*C) / denominator
return round(x, 3), round(y, 3)
# ================== 调用 ==================
# 点坐标
px, py = 1, 1
# 直线:Ax + By + C = 0
A, B, C = 2, -1, 1
# 求垂足
foot_x, foot_y = foot_of_perpendicular(px, py, A, B, C)
print("点:", (px, py))
print("直线:{}x + {}y + {} = 0".format(A, B, C))
print("垂足:", (foot_x, foot_y))
2025010149马相淼
斐波那契数列
# 获取用户输入的数字
n = int(input("请输入要输出斐波那契数列的项数:"))
# 初始化前两项
a, b = 0, 1
fib_list = []
# 生成前 n 项
for _ in range(n):
fib_list.append(a)
a, b = b, a + b
# 输出结果
print(f"斐波那契数列前 {n} 项为:")
print(fib_list)

2025010150唐景泽
def encrypt(text):
result =""
for c in text:
if c.islower():
# 小写字母
result += chr((ord(c)-ord('a') + 5) % 26 + ord('a'))
elif c.isupper():
# 大写字母
result += chr((ord(c)-ord('A') + 5) % 26 + ord('A'))
else:
result += c
return result
# 使用
s = input("请输入英文:")
print("加密后:",encrypt(s)

2025010151侯益波
primes=[]
for num in range(2,101):
flag=True
for i in range(2,int(num**0.5)+1):
if num%i==0:
flag=False
break
if flag:
primes.append(num)
print(primes)

2025010152刘金惺
import math
def is_valid_triangle(a, b, c):
"""验证三边能否构成三角形(任意两边之和大于第三边)"""
if a <= 0 or b <= 0 or c <= 0:
return False
return (a + b > c) and (a + c > b) and (b + c > a)
def inscribed_circle_area(a, b, c):
"""计算三角形内切圆面积"""
# 先验证三角形合法性
if not is_valid_triangle(a, b, c):
raise ValueError("输入的三边无法构成有效三角形")
# 计算半周长
semi_perimeter = (a + b + c) / 2
# 海伦公式计算三角形面积
triangle_area = math.sqrt(
semi_perimeter *
(semi_perimeter - a) *
(semi_perimeter - b) *
(semi_perimeter - c)
)
# 计算内切圆半径
inradius = triangle_area / semi_perimeter
# 计算内切圆面积
circle_area = math.pi * (inradius ** 2)
return circle_area
# 主程序(用户交互部分)
if __name__ == "__main__":
try:
# 获取用户输入的三边长度
a = float(input("请输入三角形第一条边长:"))
b = float(input("请输入三角形第二条边长:"))
c = float(input("请输入三角形第三条边长:"))
# 计算并输出结果
area = inscribed_circle_area(a, b, c)
print(f"\n该三角形内切圆的面积为:{area:.4f}(保留4位小数)")
except ValueError as e:
print(f"错误:{e}")
except Exception as e:
print(f"程序异常:{e}")
20250101153范鹏展 求内切圆面积
# 请输入三角形三条边的长:
print("请输入三角形三条边的长:")
a = float(input("边长a:"))
b = float(input("边长b:"))
c = float(input("边长c:"))
# 判断是否能构成三角形
if a + b > c and a + c > b and b + c > a:
# 半周长
p = (a + b + c) / 2
# 海伦公式计算三角形面积
area_tri = (p * (p - a) * (p - b) * (p - c)) ** 0.5
# 内切圆半径
r = area_tri / p
# 圆周率
pi = 3.14
# 内切圆面积
area_circle = pi * r ** 2
# 输出结果(关键!用英文引号和逗号)
print("\n计算结果:")
print("三角形面积 =", area_tri)
print("内切圆半径 r =", r)
print("内切圆面积 =", area_circle)
else:
print("❌ 这三条边不能构成三角形!")
2025010154洪关瑞
count = 0
if 0 % 2 == 0:
count += 1
if 1 % 2 == 0:
count += 1
if 2 % 2 == 0:
count += 1
if 3 % 2 == 0:
count += 1
if 4 % 2 == 0:
count += 1
print("0~4的偶数个数是", count)

2025010155王状
# 求最大公约数(辗转相除法)
def gcd(a, b):
while b != 0:
a, b = b, a % b
return a
# 求最小公倍数
def lcm(a, b):
return a * b // gcd(a, b) # 用整数除法避免小数
# 测试示例
if __name__ == "__main__":
num1 = int(input("请输入第一个数:"))
num2 = int(input("请输入第二个数:"))
result = lcm(num1, num2)
print(f"{num1} 和 {num2} 的最小公倍数是:{result}")
2025010157闫宸熙随机三点拟合直线
import random
points = []
for _ in range(3):
x = random.randint(0, 10)
y = random.randint(0, 10)
points.append((x, y))
print("随机三个点:")
for p in points:print(p)
n = 3
sum_x = 0
sum_y = 0
sum_xy = 0
sum_x2 = 0
for x, y in points:
sum_x += x
sum_y += y
sum_xy += x * y
sum_x2 += x ** 2
denominator = n * sum_x2 - sum_x ** 2
k = (n * sum_xy - sum_x * sum_y) / denominator
b = (sum_y - k * sum_x) / n
print(f"\n拟合直线:y = {k:.2f}x + {b:.2f}")
2025010158陈文洁圆外一点切线夹角
import math
# 圆心、半径
x0 = 0
y0 = 0
r = 2
# 点坐标
x = 5
y = 0
# 计算点到圆心距离
d = math.hypot(x - x0, y - y0)
print("点到圆心距离 d =", d)
print("半径 r =", r)
if d <= r:
print("点在圆内或圆上,没有两条切线")
else:
theta_rad = 2 * math.asin(r / d)
theta_deg = math.degrees(theta_rad)
print("切线夹角(弧度):", theta_rad)
print("切线夹角(角度):", theta_deg, "度")
2025010159成哲煜 求标准差
import math data = [1, 2, 3, 4, 5] mean = sum(data) / len(data) variance = sum((x - mean) ** 2 for x in data) / len(data) std_dev = math.sqrt(variance) print("总体均方差(标准差):", std_dev)
2025010160韩俊杰
import re
def calculate_rice_total(receipt_text):
"""
从超市小票文本中,汇总所有含「米」字的商品价格
:param receipt_text: 超市小票字符串
:return: 米类商品列表、总价格
"""
# 匹配:包含“米”,且以 小数价格 结尾
pattern = re.compile(r'^.*米.*?(\d+\.\d{2})$', re.M | re.I)
rice_items = []
total = 0.0
for line in receipt_text.strip().splitlines():
line = line.strip()
match = pattern.search(line)
if match:
price = float(match.group(1))
rice_items.append((line, price))
total += price
return rice_items, total
if __name__ == '__main__':
receipt = """
超市购物小票
------------------------
矿泉水 2.00
面包 3.50
东北大米 59.90
小米 12.80
洗衣液 18.90
泰国香米 69.90
------------------------
合计 167.00
"""
rice_list, total_price = calculate_rice_total(receipt)
print("=== 含「米」商品汇总 ===")
for item, price in rice_list:
print(item)
print(f"\n含米商品总价:{total_price:.2f} 元")
2025010161朱星月
闰年判断
def is_leap_year(year): """ 判断一个年份是否为闰年 参数: year: 整数类型的年份 返回: bool: 是闰年返回True,否则返回False """ # 核心判断逻辑 if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0): return True else: return False # 主程序逻辑 if __name__ == "__main__": try: # 获取用户输入的年份,并转换为整数 input_year = int(input("请输入要判断的年份(如:2024):")) # 调用函数判断是否为闰年 if is_leap_year(input_year): print(f"{input_year}年是闰年") else: print(f"{input_year}年不是闰年") # 处理用户输入非数字的情况 except ValueError: print("输入错误!请输入有效的整数年份(如2024)。")

2025010162刘奕桐
#你的项目名列表(把这里换成你的数据)
project_list =["项目A", "项目B", "项目A", "项目C", "项目B", "项目A"]
#空字典,用来统计
count_result = {}
#循环统计
for project in project_list:
if project in count_result:
count_result[project] += 1
else:
count_result[project] = 1
#打印结果
print("重复次数统计:")
for project, count in count_result.items():
print(f"{project}:{count}次")

2025010163刘志杰
n=int(input('请输入一个整数n')) result=1 for i in range(1,n+1): result*=i print(f'{result}')
2025010164李朋祖
# 外层循环控制行数 1~9
for i in range(1, 10):
# 内层循环控制每行的列数
for j in range(1, i + 1):
print(f"{j}×{i}={i*j}", end="\t")
# 每行结束换行
print()

2025010165赵子月
三顶点,求三角形面积
def triangle_area(x1, y1, x2, y2, x3, y3):
area = 0.5 * abs(x1*(y2-y3) + x2*(y3-y1) + x3*(y1-y2))
return area
# 示例:三点 (0,0), (0,2), (2,0)
A = (0, 0)
B = (0, 2)
C = (2, 0)
area = triangle_area(*A, *B, *C)
print("三角形面积 =", area)

2025010166蒋子凡
# 小写英文字母对应希腊字母
eng2greek = {
'a':'α','b':'β','c':'γ','d':'δ','e':'ε','z':'ζ',
'h':'η','q':'θ','i':'ι','k':'κ','l':'λ','m':'μ',
'n':'ν','x':'ξ','o':'ο','p':'π','r':'ρ','s':'σ',
't':'τ','u':'υ','f':'φ','ch':'χ','ps':'ψ','w':'ω'
}
def to_greek(s):
return ''.join([eng2greek.get(c,c) for c in s.lower()])
# 测试
if __name__ == "__main__":
print(to_greek("abc"))

杨书宇2025010167 十进制变二进制
# 输入十进制数字
decimal = int(input("请输入十进制数:"))
# 转换为二进制(bin() 自带 0b 前缀)
binary = bin(decimal)
# 输出结果(去掉前缀用 [2:])
print("二进制结果(带前缀):", binary)
print("二进制结果(纯数字):", binary[2:])

袁艺伦2025010168三角形外接圆
import math
def find_circumcircle(A, B, C):
"""
输入:A, B, C 是三个点,格式为 (x, y)
输出:圆心 (cx, cy) 和半径 r
逻辑:解两条垂直平分线的方程组
"""
x1, y1 = A
x2, y2 = B
x3, y3 = C
# 1. 计算 AB 边的中点 M1 和 BC 边的中点 M2
M1 = ((x1 + x2) / 2, (y1 + y2) / 2)
M2 = ((x2 + x3) / 2, (y2 + y3) / 2)
# 2. 计算 AB 和 BC 的斜率,进而得到垂直平分线的斜率
# 若直线垂直于 x 轴(斜率无穷大),则垂直平分线平行于 x 轴
if y2 - y1 == 0:
k1 = 'inf'
else:
k1 = -(x2 - x1) / (y2 - y1)
if y3 - y2 == 0:
k2 = 'inf'
else:
k2 = -(x3 - x2) / (y3 - y2)
# 3. 联立方程求解圆心 (cx, cy)
# 利用直线方程:y - y_mid = k * (x - x_mid)
if k1 == 'inf':
# AB 垂直平分线是竖直线 x = M1[0]
cx = M1[0]
cy = k2 * (cx - M2[0]) + M2[1]
elif k2 == 'inf':
# BC 垂直平分线是竖直线 x = M2[0]
cx = M2[0]
cy = k1 * (cx - M1[0]) + M1[1]
else:
# 解二元一次方程组
cx = (M2[1] - M1[1] + k1 * M1[0] - k2 * M2[0]) / (k1 - k2)
cy = k1 * (cx - M1[0]) + M1[1]
# 4. 计算半径(圆心到任意顶点的距离)
r = math.hypot(x1 - cx, y1 - cy)
return (cx, cy), r
# 测试一下
P1, P2, P3 = (0, 0), (0, 2), (2, 0)
center, r = find_circumcircle(P1, P2, P3)
print(f"圆心坐标: {center}")
print(f"圆半径: {round(r, 2)}")S

闵子怡2025010169
# 向量加法
def vector_add(v1, v2):
if len(v1) != len(v2):
return "长度不同,不能相加"
return [a + b for a, b in zip(v1, v2)]
# 向量减法
def vector_sub(v1, v2):
if len(v1) != len(v2):
return "长度不同,不能相减"
return [a - b for a, b in zip(v1, v2)]
# 测试
if __name__ == "__main__":
v1 = [1, 2, 3]
v2 = [4, 5, 6]
print("v1 + v2 =", vector_add(v1, v2))
print("v1 - v2 =", vector_sub(v1, v2))

2025010170张家祺
100以内含3的数的总和
s = 0#设最初总和为0 for i in range(0, 101):# 包含0到100的所有数 if'3' in str(i):# 判断数字里是否有3 s = s + i print(s)# 输出结果
2025010171陈宣汝
def is_triangle(a, b, c):
# 先判断边长都大于0
if a <= 0 or b <= 0 or c <= 0:
return False
# 三角形三边关系:任意两边之和大于第三边
return (a + b > c) and (a + c > b) and (b + c > a)
# 测试示例
if __name__ == "__main__":
a = float(input("请输入第一条边长:"))
b = float(input("请输入第二条边长:"))
c = float(input("请输入第三条边长:"))
if is_triangle(a, b, c):
print(f"{a}, {b}, {c} 可以构成三角形")
else:
print(f"{a}, {b}, {c} 不能构成三角形")
2026010172张景悦
取三个点求离这三个点最近的直线
import numpy as np # 随便给三个点,你可以换成自己的 points = np.array([ [1, 2], [2, 3], [3, 5] ]) x = points[:, 0] y = points[:, 1] # 最小二乘拟合直线 y = kx + b A = np.vstack([x, np.ones(len(x))]).T k, b = np.linalg.lstsq(A, y, rcond=None)[0] print(f"最优直线:y = {k:.4f}x + {b:.4f}")
2025010173杨云飞
1-5按大小排序
# 随便乱序5个数
a = 3
b = 1
c = 5
d = 2
e = 4
# 从小到大手动排列
min1 = min(a,b,c,d,e)
max1 = max(a,b,c,d,e)
s = [a,b,c,d,e]
s.remove(min1)
s.remove(max1)
mid = sorted(s)
print(min1, mid[0], mid[1], mid[2], max1)

2025010174刘研
班级姓氏前三
# 1. 整理全班同学姓名(中间字替换为星号) students = [ # 男生 "刘*凡", "潘*乐", "杨*洲", "王*伟", "张*洋", "马*淼", "唐*泽", "侯*波", "刘*握", "范*展", "王状", "闫*熙", "成*煜", "韩*杰", "李*祖", "蒋*凡", "杨*宇", "袁*伦", "杨*飞", # 女生 "王*涵", "赵*佳", "屈*蒙", "杨*洁", "肖*楠", "黄*冰", "顾*菲", "刘*怡", "岳*瑞", "洪*瑞", "陈*洁", "朱*月", "刘*桐", "刘*杰", "赵*月", "闵*怡", "张*祺", "陈*汝", "张*悦", "刘研", "孙*妮" ] # 2. 提取姓氏并统计次数 from collections import Counter # 提取每个同学的姓氏(取姓名第一个字) surnames = [name[0] for name in students] # 统计姓氏出现次数 surname_count = Counter(surnames) # 3. 按出现次数降序排序 sorted_surnames = sorted(surname_count.items(), key=lambda x: x[1], reverse=True) # 4. 输出排名前三的姓氏 print("2025级数应四班姓氏排名前三:") for i, (surname, count) in enumerate(sorted_surnames[:3], 1): print(f"第{i}名: {surname}姓, 共{count}人")
2025010175孙兰妮
向量的乘法
# 获取用户输入的第一个向量
vec1_input = input("请输入第一个向量(用空格分隔数字,例如:1 2 3):")
vec2_input = input("请输入第二个向量(用空格分隔数字,例如:4 5 6):")
# 将输入的字符串转换为浮点数列表
vec1 = [float(x) for x in vec1_input.split()]
vec2 = [float(x) for x in vec2_input.split()]
# 检查两个向量长度是否相同
if len(vec1) != len(vec2):
print("错误:两个向量的长度必须相同!")
else:
print("\n===== 计算结果 =====")
# 1. 点积(内积):对应元素相乘后求和
dot_product = sum(vec1[i] * vec2[i] for i in range(len(vec1)))
print(f"点积:{dot_product}")
# 2. 对应元素相乘(得到一个新向量)
elementwise_product = [vec1[i] * vec2[i] for i in range(len(vec1))]
print(f"对应元素相乘结果:{elementwise_product}")



浙公网安备 33010602011771号