24级数应二班课堂作业1

2024090106陈嘉怡 已知直线和线外一点求垂点
# 已知直线上一点
x1, y1 = 1, 1  
# 直线斜率
k = 2  
# 直线外一点
x0, y0 = 3, 4  

# 计算直线的截距
b = y1 - k * x1

# 计算垂直线的斜率
k_perpendicular = -1 / k if k != 0 else float('inf')

# 计算垂直线的截距(当垂线斜率不为无穷大时)
if k_perpendicular != float('inf'):
    b_perpendicular = y0 - k_perpendicular * x0
    # 联立方程求解垂点坐标
    x = (b_perpendicular - b) / (k - k_perpendicular)
    y = k * x + b
else:
    # 垂线斜率为无穷大(原直线平行于x轴)时的情况
    x = x0
    y = k * x0 + b

print(f"垂点坐标为: ({x}, {y})")

 

2024030259储妙 计算一组数中偶数的平均数
nums = input("请输入一串数字,以空格分隔:").split()
nums = [int(num) for num in nums]
even_nums = [num for num in nums if num % 2 == 0]
if not even_nums:
    print("没有偶数,无法计算平均值。")
else:
    average = sum(even_nums) / len(even_nums)
    print(f"偶数的平均值是: {average}")

 

2024010049巨佳瑜  三角形内切圆半径
# 输入三角形三边长度
a = float(input("请输入三角形的第一条边长: "))
b = float(input("请输入三角形的第二条边长: "))
c = float(input("请输入三角形的第三条边长: "))
# 计算半周长
s = (a + b + c) / 2
# 计算面积(使用海伦公式)
area = (s * (s - a) * (s - b) * (s - c)) ** 0.5
# 计算内切圆半径
radius = area / s
print(f"该三角形的内切圆半径为: {radius}")

  

 

 


  2024010080毛蕊婷 三角形外接圆

# 输入三角形三个顶点的坐标
x1, y1 = map(float, input("请输入第一个顶点的坐标(x y):").split())
x2, y2 = map(float, input("请输入第二个顶点的坐标(x y):").split())
x3, y3 = map(float, input("请输入第三个顶点的坐标(x y):").split())
# 计算线段中点坐标
midx1 = (x1 + x2) / 2
midy1 = (y1 + y2) / 2
midx2 = (x2 + x3) / 2
midy2 = (y2 + y3) / 2
# 计算线段垂直平分线的斜率
if x2 - x1 == 0:
    k1 = float('inf')
else:
    k1 = - (x2 - x1) / (y2 - y1)
if x3 - x2 == 0:
    k2 = float('inf')
else:
    k2 = - (x3 - x2) / (y3 - y2)
# 计算外接圆的圆心坐标
if k1 == float('inf'):
    x = midx1
    y = midy2 + k2 * (x - midx2)
elif k2 == float('inf'):
    x = midx2
    y = midy1 + k1 * (x - midx1)
else:
    x = (midy2 - midy1 + k1 * midx1 - k2 * midx2) / (k1 - k2)
    y = midy1 + k1 * (x - midx1)
# 计算外接圆的半径
r = ((x - x1) ** 2+(y - y1) ** 2) ** 0.5
print(f"外接圆的圆心坐标为:({x}, {y})")
print(f"外接圆的半径为:{r}")

 

2024010045 计旭升 100以内的素数
for num in range(2, 101):
    is_prime = True
    for i in range(2, int(num ** 0.5) + 1):
        if num % i == 0:
            is_prime = False
            break
    if is_prime:
        print(num)

 

2024010048 景勇强 求三角形内接圆
import math

def distance(p1, p2):
    """计算两点之间的距离"""
    return math.sqrt((p1[0] - p2[0])**2 + (p1[1] - p2[1])**2)

def triangle_area(a, b, c):
    """使用海伦公式计算三角形面积"""
    s = (a + b + c) / 2
    area = math.sqrt(s * (s - a) * (s - b) * (s - c))
    return area

def inradius(a, b, c):
    """计算内切圆半径"""
    area = triangle_area(a, b, c)
    s = (a + b + c) / 2
    r = area / s
    return r

def incenter(p1, p2, p3):
    """计算内切圆圆心坐标"""
    a = distance(p2, p3)
    b = distance(p1, p3)
    c = distance(p1, p2)
    
    denominator = a + b + c
    x = (a * p1[0] + b * p2[0] + c * p3[0]) / denominator
    y = (a * p1[1] + b * p2[1] + c * p3[1]) / denominator
    return (x, y)

def main():
    print("请输入三角形的三个顶点坐标(x y 格式):")
    p1 = tuple(map(float, input("点 1: ").split()))
    p2 = tuple(map(float, input("点 2: ").split()))
    p3 = tuple(map(float, input("点 3: ").split()))
    
    a = distance(p1, p2)
    b = distance(p2, p3)
    c = distance(p3, p1)
    
    r = inradius(a, b, c)
    center = incenter(p1, p2, p3)
    
    print(f"\n内切圆半径: {r:.4f}")
    print(f"内切圆圆心坐标: ({center[0]:.4f}, {center[1]:.4f})")

if __name__ == "__main__":
    main()

2024010079 马艺菲 求切线方程

import math


def tangent_lines(a, b, r, x0, y0):
    # 计算点到圆心的距离
    d = math.sqrt((x0 - a) ** 2 + (y0 - b) ** 2)

    if d < r:
        raise ValueError("点在圆内,没有切线")
    elif d == r:
        raise ValueError("点在圆上,只有一条切线")

    # 计算切线的斜率
    alpha = math.asin(r / d)
    theta = math.atan2(y0 - b, x0 - a)

    # 两条切线的角度
    theta1 = theta + alpha
    theta2 = theta - alpha

    # 计算切线的斜率
    m1 = math.tan(theta1)
    m2 = math.tan(theta2)

    # 计算切线的截距
    c1 = y0 - m1 * x0
    c2 = y0 - m2 * x0

    return (m1, c1), (m2, c2)


# 示例
a, b = 0,0 # 圆心
r = 5  # 半径
x0, y0 = 7, 0  # 圆外一点

try:
    (m1, c1), (m2, c2) = tangent_lines(a, b, r, x0, y0)
    print(f"切线1: y = {m1:.2f}x + {c1:.2f}")
    print(f"切线2: y = {m2:.2f}x + {c2:.2f}")
except ValueError as e:
    print(e)

2024010052 雷升官 计算月利率
monthly_interest_rates = {
    '1': 0.00125,  # 假设以下分别为每一个月的汇率
    '2': 0.002083,
    '3': 0.003125,
    '4': 0.004219,
    '5': 0.005344,
    '6': 0.0065,
    '7': 0.007688,
    '8': 0.0089,
    '9': 0.010144,
    '10': 0.011419,
    '11': 0.012725,
    '12': 0.014063
}


def calculate_monthly_interest(amount, time):
    """
    根据存款金额和存款月数计算月利息

    参数:
    amount (float): 存款金额
    time (str): 存款时间,

    返回:
    float: 月利息金额
    """
    # 检查输入的存款时间是否在利率表中
    if time not in monthly_interest_rates:
        raise ValueError(f"Invalid deposit time: {time}. Valid times are {', '.join(monthly_interest_rates.keys())}")

    # 获取对应的月利率
    monthly_rate = monthly_interest_rates[time]

    # 计算月利息
    monthly_interest = amount * monthly_rate

    return monthly_interest


# 主程序
if __name__ == "__main__":
    try:
        # 输入存款金额
        amount = float(input("请输入存款金额: "))

        # 输入存款月数
        time = input("请输入存款月数: ")

        # 计算月利息
        monthly_interest = calculate_monthly_interest(amount, time)

        # 输出结果
        print(f"存款金额: {amount}, 存款月数: {time}, 月利息: {monthly_interest:.2f}")

    except ValueError as e:
        # 捕获并处理输入错误
        print(e)

 

2024010077 马京兴 筛选数字
import re

def extract_numbers(text):
    # 使用正则表达式匹配所有数字
    pattern = r'\d+'
    numbers = re.findall(pattern, text)
    return numbers

# 示例文章
article = "python课程张老师说2025年2月26日据官网报告华山最高峰南峰海拔高度为2154.9米。"
# 调用函数提取数字
result = extract_numbers(article)
print(result)

 

2024010061 李升 向量加法
# 定义两个向量(使用列表模拟)
vector1 = [1, 2, 3]
vector2 = [4, 5, 6]

# 初始化结果列表
result = []
for i in range(len(vector1)):
    result.append(vector1[i] + vector2[i])

print(result)

 

 2024010063  林柯妍  一元二次方程求根
import math


def solve_quadratic_equation(a, b, c):
    # 计算判别式
    discriminant = b ** 2 - 4 * a * c

    if discriminant > 0:
        # 两个不同的实数根
        root1 = (-b + math.sqrt(discriminant)) / (2 * a)
        root2 = (-b - math.sqrt(discriminant)) / (2 * a)
        return root1, root2
    elif discriminant == 0:
        # 一个实数根(重根)
        root = -b / (2 * a)
        return root,
    else:
        # 无实数根,返回复数根
        real_part = -b / (2 * a)
        imaginary_part = math.sqrt(-discriminant) / (2 * a)
        return (real_part + imaginary_part * 1j), (real_part - imaginary_part * 1j)


# 获取用户输入
a = float(input("请输入二次项系数 a: "))
b = float(input("请输入一次项系数 b: "))
c = float(input("请输入常数项 c: "))

# 解方程
roots = solve_quadratic_equation(a, b, c)

# 输出结果
print("方程的根为:", roots)

  

 

 2024010072刘芝池计算垂足

# 已知直线上一点
x1, y1 = 1, 1  
# 直线斜率
k = 2  
# 直线外一点
x0, y0 = 3, 4  

# 计算直线的截距
b = y1 - k * x1

# 计算垂直线的斜率
k_perpendicular = -1 / k if k != 0 else float('inf')

# 计算垂直线的截距
if k_perpendicular != float('inf'):
    b_perpendicular = y0 - k_perpendicular * x0
else:
    b_perpendicular = float('inf')

# 联立方程求解垂足坐标
if k_perpendicular != float('inf'):
    x = (b_perpendicular - b) / (k - k_perpendicular)
    y = k * x + b
else:
    x = x0
    y = k * x0 + b

print(f"垂足坐标为: ({x}, {y})")

 

 2024010053李海洋数单词数目

def count_words(sentence):
    # 使用split()方法将句子按空格分割成单词列表
    words = sentence.split()
    # 返回单词列表的长度
    return len(words)

# 示例句子
sentence = "This is a sample sentence to count the number of words."

# 调用函数并打印结果
word_count = count_words(sentence)
print(f"The number of words in the sentence is: {word_count}")

  

 

 

 

 

 

2024010044侯研计算均方差

import math
nums = [380, 385, 390, 395, 400]
# 计算均值
mean_value = sum(nums) / len(nums)
# 计算方差
variance = sum((num - mean_value) ** 2 for num in nums) / len(nums)
# 计算均方差(标准差)
std_dev = math.sqrt(variance)
print(std_dev)

 







 

2024010046焦梦妍将军饮马

 

import math
import matplotlib.pyplot as plt

# 设置中文字体
plt.rcParams['font.sans-serif'] = ['SimHei']  # 使用 SimHei 字体
plt.rcParams['axes.unicode_minus'] = False  # 解决负号显示问题

# 反射点计算
def reflect_point_over_line(a, b, c, x, y):
    denominator = a**2 + b**2
    if denominator == 0:
        raise ValueError("Invalid line equation (a and b cannot both be zero).")
    numerator = a * x + b * y + c
    x_reflected = x - 2 * a * numerator / denominator
    y_reflected = y - 2 * b * numerator / denominator
    return (x_reflected, y_reflected)

# 直线交点计算
def line_intersection(a1, b1, c1, a2, b2, c2):
    C1, C2 = -c1, -c2
    det = a1 * b2 - a2 * b1
    if det == 0:
        return None
    x = (b2 * C1 - b1 * C2) / det
    y = (a1 * C2 - a2 * C1) / det
    return (x, y)

# 解决将军饮马问题
def solve_general_horse_problem(a_line, b_line, c_line, A, B):
    B_prime = reflect_point_over_line(a_line, b_line, c_line, *B)
    xA, yA = A
    xBp, yBp = B_prime
    a2 = yBp - yA
    b2 = xA - xBp
    c2 = xBp * yA - xA * yBp
    M = line_intersection(a_line, b_line, c_line, a2, b2, c2)
    if M is None:
        return None
    total_length = math.hypot(xBp - xA, yBp - yA)
    return M, total_length, B_prime

# 可视化函数
def plot_solution(a_line, b_line, c_line, A, B, M, B_prime):
    # 绘制河岸直线
    x = range(-10, 11)
    y = [(-a_line * xi - c_line) / b_line if b_line != 0 else 0 for xi in x]
    plt.plot(x, y, label="河岸直线", linestyle="--", color="gray")

    # 绘制营地A和指挥部B
    plt.scatter(*A, color="red", label="营地 A")
    plt.scatter(*B, color="blue", label="指挥部 B")

    # 绘制反射点 B'
    plt.scatter(*B_prime, color="green", label="反射点 B'")

    # 绘制最短路径
    plt.plot([A[0], M[0]], [A[1], M[1]], color="red", linestyle="-", label="A 到 M")
    plt.plot([M[0], B[0]], [M[1], B[1]], color="blue", linestyle="-", label="M 到 B")

    # 绘制反射路径
    plt.plot([A[0], B_prime[0]], [A[1], B_prime[1]], color="green", linestyle=":", label="A 到 B'")

    # 标注饮马点 M
    plt.scatter(*M, color="orange", label="饮马点 M")
    plt.annotate(f"M {M}", M, textcoords="offset points", xytext=(10, -10))

    # 设置图形属性
    plt.axhline(0, color="black", linewidth=0.5)
    plt.axvline(0, color="black", linewidth=0.5)
    plt.grid(True)
    plt.legend()
    plt.title("将军饮马问题可视化")
    plt.xlabel("X 轴")
    plt.ylabel("Y 轴")
    plt.show()

# 示例
if __name__ == "__main__":
    # 河岸为 x 轴,A(0,1),B(3,2)
    a_line, b_line, c_line = 0, 1, 0  # 河岸直线方程:y = 0
    A = (0, 1)
    B = (3, 2)
    M, length, B_prime = solve_general_horse_problem(a_line, b_line, c_line, A, B)
    print(f"饮马点坐标:{M},总路径长度:{length:.2f}")
    plot_solution(a_line, b_line, c_line, A, B, M, B_prime)

 

 

 

2024010047 金佳仪三角形外接圆面积

import math


def distance(p1, p2):
    return math.sqrt((p1[0] - p2[0]) ** 2 + (p1[1] - p2[1]) ** 2)


def triangle_area(a, b, c):
    s = (a + b + c) / 2
    return math.sqrt(s * (s - a) * (s - b) * (s - c))


def circumradius(a, b, c, area):
    return (a * b * c) / (4 * area)


def circumcircle_area(radius):
    return math.pi * radius ** 2


def main():
    # 输入三角形的三个顶点坐标
    p1 = (0, -5)
    p2 = (4, 0)
    p3 = (0, 3)

    # 计算边长
    a = distance(p2, p3)
    b = distance(p1, p3)
    c = distance(p1, p2)

    # 计算三角形面积
    area = triangle_area(a, b, c)

    # 计算外接圆半径
    radius = circumradius(a, b, c, area)

    # 计算外接圆面积
    circle_area = circumcircle_area(radius)

    print(f"外接圆的面积为: {circle_area}")


if __name__ == "__main__":
    main()

 

 

2024010050 康佳莹 加密英文字母

def encrypt_letter(letter):
    # 检查是否为小写字母
    if letter.islower():
        if letter == 'z':
            return 'a'
        else:
            return chr(ord(letter) + 2)
    # 检查是否为大写字母
    elif letter.isupper():
        if letter == 'Z':
            return 'A'
        else:
            return chr(ord(letter) + 2)
    # 如果不是字母,直接返回
    else:
        return letter

def encrypt_text(text):
    encrypted_text = ""
    for char in text:
        encrypted_text += encrypt_letter(char)
    return encrypted_text

# 示例
input_text = input("请输入要加密的文本: ")
encrypted_text = encrypt_text(input_text)
print("加密后的文本:", encrypted_text)

 

2024010071 刘育榕阿拉伯数字变为罗马数字

# 阿拉伯数字转汉字的映射字典
num_to_chinese = {
    0: '零', 1: '一', 2: '二', 3: '三', 4: '四',
    5: '五', 6: '六', 7: '七', 8: '八', 9: '九'
}

# 阿拉伯数字转罗马数字的映射字典
num_to_roman = {
    1000: 'M', 900: 'CM', 500: 'D', 400: 'CD',
    100: 'C', 90: 'XC', 50: 'L', 40: 'XL',
    10: 'X', 9: 'IX', 5: 'V', 4: 'IV', 1: 'I'
}


def arabic_to_chinese(arabic):
    chinese = ""
    num_str = str(arabic)
    for digit in num_str:
        chinese += num_to_chinese[int(digit)]
    return chinese


def arabic_to_roman(arabic):
    roman = ""
    for value, symbol in num_to_roman.items():
        while arabic >= value:
            roman += symbol
            arabic -= value
    return roman


arabic_num = int(input("请输入一个阿拉伯数字: "))
print(f"对应的汉字是: {arabic_to_chinese(arabic_num)}")
print(f"对应的罗马数字是: {arabic_to_roman(arabic_num)}")

 

 

2024010075 鲁美宏统计周末的天数

import datetime


def count_weekends(start_date_str, end_date_str):
    start_date = datetime.datetime.strptime(start_date_str, '%Y-%m-%d')
    end_date = datetime.datetime.strptime(end_date_str, '%Y-%m-%d')
    count = 0
    current_date = start_date
    while current_date <= end_date:
        if current_date.weekday() in [5, 6]:
            count += 1
        current_date += datetime.timedelta(days=1)
    return count


start_date = input("请输入开始日期(格式:YYYY-MM-DD):")
end_date = input("请输入结束日期(格式:YYYY-MM-DD):")
result = count_weekends(start_date, end_date)
print(f"在 {start_date} 到 {end_date} 之间,星期六和星期天的总天数为:{result} 天")

 2024010051 雷晨瑞 统计素数的个数

def is_prime(n):
    """判断一个数是否为素数"""
    if n <= 1:
        return False
    if n == 2:
        return True
    if n % 2 == 0:
        return False
    for i in range(3, int(n**0.5) + 1, 2):
        if n % i == 0:
            return False
    return True

def count_primes(limit):
    """统计小于等于limit的素数个数"""
    count = 0
    for num in range(2, limit + 1):
        if is_prime(num):
            count += 1
    return count

# 示例:统计小于等于100的素数个数
limit = 100
prime_count = count_primes(limit)
print(f"小于等于{limit}的素数个数为: {prime_count}")

 

2024010054李嘉靖   统计坦克轮子的数量

art = """
                                ▲学编程,你不是一个人在奋斗
                                |
                              __|__
           II=======00000[/——★007__ ]
                      ___\________|/------
                     /___mibgrisoft.com__|
                     \●  ●  ●  ●  ●/
                     ~~~~~~~~~~~~~~~~~~~
"""
count = art.count('●')
print("黑圆圈的数量是:", count)

  

2024010055李金俞 最大公因数

def gcd(a, b):
    """
    计算两个数的最大公因数(GCD)
    参数:
    a (int): 第一个整数
    b (int): 第二个整数
    返回:
    int: a 和 b 的最大公因数
    """
    while b != 0:
        a, b = b, a % b
    return a
# 示例用法
num1 = 56
num2 = 78
result = gcd(num1, num2)
print(f"{num1} 和 {num2} 的最大公因数是: {result}")

2024010056 李竞薇 弹道曲线

import math


def calculate_range(initial_velocity, angle_degrees, gravity=9.81):
    """
    计算抛射物的落点距离。

    参数:
    initial_velocity (float): 初速度 (m/s)
    angle_degrees (float): 抛射角度 (度)
    gravity (float): 重力加速度 (m/s²), 默认为 9.81

    返回:
    float: 落点距离 (米)
    """
    # 将角度转换为弧度
    angle_radians = math.radians(angle_degrees)

    # 计算水平距离
    range_distance = (initial_velocity ** 2 * math.sin(2 * angle_radians)) / gravity

    return range_distance


# 示例使用
initial_velocity = 56  # 初速度 50 m/s
angle_degrees = 50  # 抛射角度 45 度

# 调用函数并打印结果
range_distance = calculate_range(initial_velocity, angle_degrees)
print(f"落点距离: {range_distance:.2f} 米")

2024010057 李楠 向量的叉积、点积

# 计算点积
vector1 = [1, 2, 3]
vector2 = [4, 5, 6]
dot_product = sum(a * b for a, b in zip(vector1, vector2))
print(dot_product)

# 计算叉积
vector3 = [1, 2, 3]
vector4 = [4, 5, 6]
cross_product = [vector3[1]*vector4[2] - vector3[2]*vector4[1],
                 vector3[2]*vector4[0] - vector3[0]*vector4[2],
                 vector3[0]*vector4[1] - vector3[1]*vector4[0]]
print(cross_product)

 

 

2024010059 李若楠 地支的属相

di_zhi_to_shu_xiang = {
    "子": "鼠",
    "丑": "牛",
    "寅": "虎",
    "卯": "兔",
    "辰": "龙",
    "巳": "蛇",
    "午": "马",
    "未": "羊",
    "申": "猴",
    "酉": "鸡",
    "戌": "狗",
    "亥": "猪"
}

di_zhi = input("请输入地支:")
if di_zhi in di_zhi_to_shu_xiang:
    print(f"{di_zhi}对应的属相是{di_zhi_to_shu_xiang[di_zhi]}")
else:
    print("输入的地支无效,请重新输入。")

2024010062廖佳怡 判断能否组成三角形

a, b, c = 3, 4, 5
# 判断能否构成三角形
if a + b > c and a + c > b and b + c > a:
    # 如果是直角三角形(这里3、4、5是直角边),计算面积
    area = 0.5 * a * b
    print(f"这三条边能围成三角形,其面积为: {area}")
else:
    print("这三条边不能围成三角形")

 

2024010064刘纯怡  正斜波与x轴相交,求X轴上半部分相交的面积

def area_with_x_axis(k, b):
    if k == 0:
        return "Slope cannot be zero."
    return abs(b**2 / (2*abs(k)))

# Example usage:
k = 2
b = -3
area = area_with_x_axis(k, b)
print("Area with X-axis:", area)

 

2024010066 刘梦莹 求协方差

# 计算均值
def mean(data):
    return sum(data) / len(data)

# 计算协方差
def covariance(data1, data2):
    n = len(data1)
    mean1 = mean(data1)
    mean2 = mean(data2)
    cov = 0
    for i in range(n):
        cov += (data1[i] - mean1) * (data2[i] - mean2)
    return cov / (n - 1)

# 示例数据
data1 = [1, 3, 5, 7, 9]
data2 = [2, 4, 6, 8, 10]

# 计算并打印协方差
print("协方差为:", covariance(data1, data2)

  

2024010067 刘思雨 判断是不是质数

num = int(input("请输入一个整数: "))
if num < 2:
    print(f"{num}不是质数")
else:
    is_prime = True
    for i in range(2, int(num ** 0.5)) :
        if num % i == 0:
            is_prime = False
            break
    if is_prime:
        print(f"{num}是质数")
    else:
        print(f"{num}不是质数")

2024010068 刘晓津 协方差

def mean(data):
    return sum(data) / len(data)

# 计算协方差
def covariance(data1, data2):
    n = len(data1)
    mean1 = mean(data1)
    mean2 = mean(data2)
    cov = 0
    for i in range(n):
        cov += (data1[i] - mean1) * (data2[i] - mean2)
    return cov / (n - 1)

# 示例数据
data1 = [1, 3, 5, 7, 9]
data2 = [2, 4, 6, 8, 10]

# 计算并打印协方差
print("协方差为:", covariance(data1, data2))

 2024010069 刘雅云 统计大小写

def count_uppercase(s):
    """
    统计字符串中大写字母的个数

    参数:
    s (str): 输入的字符串

    返回值:
    int: 大写字母的个数
    """
    count = 0  # 初始化计数器
    for char in s:  # 遍历字符串中的每个字符
        if char.isupper():  # 如果字符是大写字母
            count += 1  # 计数器加一
    return count  # 返回大写字母的总数

# 示例用法
input_string = "Hello World! This is a Test String."
uppercase_count = count_uppercase(input_string)
print(f"大写字母的个数是: {uppercase_count}")

 

 2024010070 刘垚燚 姓名

names = ["刘垚燚", "惠鹏翼", "刘晓津", "刘雅云", "刘思雨"]
count = 0
for name in names:
    if name.startswith('刘'):
        count += 1
print(count)

 2024010076马凤凤 因数

num = int(input("请输入一个整数:"))
factors = []
for i in range(1, num + 1):
    if num % i == 0:
        factors.append(i)
print(f"{num}的因数是:{factors}")

 

 

2024010081  孟佳茵  输入统计孙悟空出现次数

text = input("请输入一段文本: ") 
count = text.count("孙悟空") 
print(f"文本中“孙悟空”出现的次数为: {count}")

 2024010082    聂小敏   100以内偶数求和

sum_even = 0
print("计算过程:")
for num in range(1, 101):
    if num % 2 == 0:
        sum_even += num
        print(f"加上偶数 {num},当前总和为 {sum_even}")
print(f"\n100以内的偶数总和为:{sum_even}")

 2024010084 师罗琦 任意取四组数可以组成多少个三角形

from itertools import combinations
def count_triangles(sides):
    count = 0
    for a, b, c in combinations(sides, 3):
        if a + b > c and a + c > b and b + c > a and abs(a - b) < c and abs(a - c) < b and abs(b - c) < a:
            count += 1
    return count
side_lengths = list(map(int, input("请输入四条边长,以空格分隔:").split()))
if len(side_lengths)!= 4:
    print("请输入四条边长。")
else:
    result = count_triangles(side_lengths)
    print(f"能组成的三角形个数为: {result}")

 2024010086  孙景涵  0到9任取三个数,能组成多少个偶数

import itertools
# 从0 - 9中随机选取3个数字
nums = list(range(10))
combinations = itertools.permutations(nums, 3)
count = 0
for comb in combinations:
    if comb[0]!= 0 and comb[-1] % 2 == 0:
        count += 1
print(count)

 2024010085 施祺 统计价格100元以内的商品数量

prices = [50, 150, 80, 200, 90]
count = 0
for price in prices:
    if price <= 100:
        count += 1
print(count)

 2024010060 李若语 字符串出现次数

text=("""
                                学编程,,你不是一个人在战斗~~


                          ▶
                          |
                    \­­_|_
 II=======00000[/  ̄★007_|
          ___\___|/­­­­­­.
         /__mingrisoft.com__|
         \◎◎◎◎◎◎◎◎⊙/
         ~~~~~~~~~~~
 """)

  # 待统计的字符串
char_to_count = "◎"  # 要统计的字符设为变量
count = text.count(char_to_count)
print(f"字符 '{char_to_count}' 在字符串中出现的次数为: {count}")

 2024010074卢笑悦

from datetime import datetime


people = [
    ("张三", "610115200605230109"),
    ("李四", "610115200608290324"),
    ("王五", "610115200609240519")
]


def get_age(id_number):
    birth_date_str = id_number[6:14]
    birth_date = datetime.strptime(birth_date_str, '%Y%m%d')
    today = datetime.now()
    age = today.year - birth_date.year - ((today.month, today.day) < (birth_date.month, birth_date.day))
    return age


sorted_people = sorted(people, key=lambda x: get_age(x[1]), reverse=True)

for person in sorted_people:
    print(person[0])

 2024010083彭子晖因数

num = int(input("请输入一个整数:"))
factors = []
for i in range(1, num + 1):
    if num % i == 0:
        factors.append(i)
print(f"{num}的因数是:{factors}")

 

posted @ 2025-04-14 11:07  szmtjs10  阅读(20)  评论(0)    收藏  举报