Python基础结课TEST

文章介绍了编程中的几个问题,包括计算总成绩(基于作业、小测和期末成绩)、计算时间差、处理矩阵数据和判断字母频数是否符合条件以找出LuckyWord,以及验证哥德巴赫猜想的简化实现。
摘要由CSDN通过智能技术生成

## 结课作业

import ast

a1, a2, a3 = map(int, input().split())

#三个非负整数 a1,a2,a3分别表示作业成绩、小测成绩和期末考试成绩。

#相邻两个数之间用一个空格隔开,三项成绩满分都是 100分。

#总成绩 = 作业成绩×20%+小测成绩×30%+期末考试成绩×50%

def grade(a1,a2,a3):

    grade=a1*0.2+a2*0.3+a3*0.5

    return int(grade)

print(grade(a1,a2,a3))




 

import ast

a, b, c, d = map(int, input().split())

#从 a 时 b 分一直游泳到当天的c 时 d 分

#一行内输入四个整数,以空格隔开

#输出两个整数 e 和 f

def time(a, b, c, d):

    t1=a*60+b

    t2=c*60+d

    t=t2-t1

    e=int(t//60)

    f=int(t%60)

    return e,f

e,f=time(a, b, c, d)

print(f"{e} {f}")






 

rows = 7

cols = 2

matrix = []# 初始化一个空的矩阵

# 循环输入矩阵的每一行,如果行和不超过8返回0 ,否则找到最靠前的最大行和

for i in range(rows):# 输入当前行的数据,以空格分隔

    row_input = input()# 将输入的数据按空格分割并转换为整数,然后添加到当前行

    row = list(map(int, row_input.split()))# 检查输入的数据数量是否符合列数要求

    if len(row) != cols:

        print("输入的数据数量与列数不符,请重新输入。")# 重新输入当前行的数据,直到符合列数要求为止

        while len(row) != cols:

            row_input = input()

            row = list(map(int, row_input.split())) # 将当前行添加到矩阵中

    matrix.append(row)

row_sums = [sum(row) for row in matrix]

print(row_sums)

print(max(row_sums))

def days(row_sums):

    if max(row_sums)>8:

         for i in range(rows):

             if row_sums[i]==max(row_sums):

                   return f"{i+1}"

             else:continue  

    else:

         return f"0"

print(days(row_sums))

   


 

   

##输入一个单词,计算字母出现频数,若max-min为质数,输出Lucky Word,\n以及这个质数

from collections import Counter

str1 = input()  ##小写字母

def Lucky_Word(str1):

    letter_freq = Counter(c for c in str1 if c.isalpha())  # 使用Counter计算字符频数

    # 找到频数最大和最小的字母频数

    most_common = letter_freq.most_common()

    max_freq = most_common[0][1]   # 最大频数

    min_freq = most_common[-1][1]  # 最小频数

    n = max_freq - min_freq

    if n < 2:

        return "No Answer\n0"

    if n == 2:

        return "Lucky Word\n2"

    if n % 2 == 0:

        return "No Answer\n0"

    maxFactor = round(n ** 0.5)

    for factor in range(3, maxFactor + 1, 2):

        if n % factor == 0:

            return "No Answer\n0"

    return f"Lucky Word\n{n}"

print(Lucky_Word(str1))





 

#输入偶数N,验证4-N中所有偶数符合哥德巴赫猜想,分解为两个质数的和,

#分发不唯一取第一个加数小的情况

#输出全部分法

def fasterIsPrime(n):

    if n < 2:

        return False

    if n == 2:

        return True

    if n % 2 == 0:

        return False

    maxFactor = round(n**0.5)

    for factor in range(3, maxFactor+1, 2):

        if n % factor == 0:

            return False

    return True

N=int(input())

def Goldbachs_Conjecture(N):

    result=""

    for i in range (4,N+1,2):

        for j in range(2,i//2+1):

            if fasterIsPrime(j) and fasterIsPrime(i-j):

                result+=f'{i}={j}+{i-j}\n'

                break

    return result

print(Goldbachs_Conjecture(N))          

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值