python第9周(python学习题集)

news/2024/11/9 0:50:47/

关于这一套题,我感觉难度不高,有一道题有点细节需要注意,我会单独出解析,其他还行,如果有不会的可以评论或者私聊我,我会出单独的解析,关于题目,大家希望我是还是这样出题集还是单个题出,单个题我可能会出的慢点,然后会每次都选出我觉得有意思的一两个做完整版解析,如果喜欢题集,我们就如果有难题我会出解析,我感觉没有,你们如果感觉有那就私信我,或者评论给我

麻烦大家点点赞



6-1 python函数-组合数 (10 分)

请编写函数完成:从n个元素中取出m个元素的组合数:参考公式 

zuhe.jpg

 。输入要求:n和m均为正整数;如果输入非法数据请参照下方输入输出样例的警告信息;

函数接口定义:

定义两个函数,函数名及参数要求如下:
Fun_Fact(x)                   #定义阶乘函数,对x求阶乘
Fun_Comb ( m, n)             #调用阶乘函数,使用题目公式,再设计函数计算组合数

其中'x' 、'n' 和 'm'都是用户传入的参数。x、 n和m 的值均为正整数;且 n>=m;第二个函数Fun_Comb ( n, m ) 须返回组合数个数。

裁判测试程序样例:

/* 请在这里填写答案 */a,b = input().split(',')
if a.isdecimal() and b.isdecimal() and (int(a)<=int(b)):Comb_Result = Fun_Comb(int(a), int(b))print("result={:.2f}".format(Comb_Result))
else:print("Error data,please input again!")

输入样例1:

2,7

结尾无空行

输出样例1:

result=21.00

结尾无空行

输入样例2:

4,-10

结尾无空行

输出样例2:

Error data,please input again!

结尾无空行

答案:

def Fun_Fact(x):  # 定义阶乘函数,对x求阶乘sum = 1for i in range(1, x + 1):sum *= ireturn sumdef Fun_Comb(m, n):  # 调用阶乘函数,使用题目公式,再设计函数计算组合数sum = Fun_Fact(n) / (Fun_Fact(m) * Fun_Fact(n - m))return sum

6-2 写函数判断质数 (5 分)

实现一个函数,判断参数是否是质数,是的话返回True,否则返回False

函数接口定义:

def isPrime(num);

参数num表示要判断的正整数。返回值为True表示是质数,返回False表示不是质数。

裁判测试程序样例:

/* 请在这里填写答案 */num=eval(input())
if isPrime(num):print ('yes')
else:print ('no')

输入样例:

97

结尾无空行

输出样例:

yes

结尾无空行

答案:

# Description: 命里有时终须有,命里无时莫强求
# Autor: Neptune
# Date: 2021/10/26 21:21
def isPrime(num):if num == 1 or num == 0:return Falseelif num == 2:return Trueelse:for i in range(2, int(num ** 0.5) + 1):if num % i == 0:return Falsereturn True

6-3 编写函数统计指定数字的个数 (5 分)

本题要求实现一个统计整数中指定数字的个数的简单函数。

CountDigit(number,digit )

其中number是整数,digit为[1, 9]区间内的整数。函数CountDigit应返回number中digit出现的次数。

函数接口定义:

函数接口定义:

int CountDigit (number, digit );

参数number是整数,参数digit为[1,9]区间的整数,函数返回number中digit出现的次数。

裁判测试程序样例:

/* 请在这里填写答案 */number,digit = list(map(int,input().split()))
cnt = CountDigit(number,digit)
print ("Number of digit {0} in {1}: {2}".format(digit,number,cnt))

输入样例:

-21252 2

结尾无空行

输出样例:

Number of digit 2 in -21252: 3

结尾无空行

答案:

# Description: 命里有时终须有,命里无时莫强求
# Autor: Neptune
# Date: 2021/10/27 11:19
def CountDigit(number, digit):n = str(digit)return str(number).count(n)

6-4 修改句子 (9 分)

本题参考checkio.org

读入一个英文句子,将此句子的第一个字母改为大写字母,并在最后加上句号'.'

注意:读入的句子有可能本来就符和要求。

函数接口定义:

def fun(sentence):

裁判测试程序样例:

/* 请在这里填写答案 */doc = input()
res = fun(doc)
print(res)

输入样例1:

在这里给出一组输入。例如:

hello, world

结尾无空行

输出样例1:

在这里给出相应的输出。例如:

Hello, world.

结尾无空行

输入样例2:

在这里给出一组输入。例如:

Hello, world.

结尾无空行

输出样例2:

在这里给出相应的输出。例如:

Hello, world.

结尾无空行

答案:

# Description: 命里有时终须有,命里无时莫强求
# Autor: Neptune
# Date: 2021/10/27 11:30
def fun(sentence: str):str1 = sentence.capitalize()if sentence[len(sentence) - 1] != '.':str1=str1+'.'return str1

6-5 整数数位和(高教社,《Python编程基础及应用》习题8-3) (4 分)

编写一个函数,该函数接受一个正整数作为参数,返回该整数的各位数字之和。

函数接口定义:

def digitSum(v)

v为输入整数(正整数); 函数返回一个整数,其值为v的各位数字之和。

裁判测试程序样例:

a = int(input())
print(digitSum(a))

输入样例:

291

结尾无空行

输出样例:

12

结尾无空行

答案:

# Description: 命里有时终须有,命里无时莫强求
# Autor: Neptune
# Date: 2021/10/27 11:48
def digitSum(v):sum = 0for i in str(v):sum += int(i)return sum

7-1 计算各对应位乘积之和 (30 分)

读入两个整数a和b,输出绝对值a和绝对值b的各对应位乘积之和,如a=1234,b=608,则输出值为:“1×0+2×6+3×0+4×8“的值,即44。

输入格式:

在一行中输入两个数

输出格式:

在一行中输出对应位乘积之和

输入样例:

在这里给出一组输入。例如:

1234 608

结尾无空行

输出样例:

在这里给出相应的输出。例如:

44

结尾无空行

答案:

# Description: 命里有时终须有,命里无时莫强求
# Autor: Neptune
# Date: 2021/10/27 11:52
n, m = map(int, input().split())
n,m=str(abs(n)),str(abs(m))
long = max(len(n), len(m))
sum = 0
while len(n) < long:n = '0' + n
while len(m) < long:m = '0' + m
for i in range(long):sum += int(n[i]) * int(m[i])
print(sum)

7-2 缩写期刊名 (10 分)

科研工作者经常要向不同的期刊投稿。但不同期刊的参考文献的格式往往各不相同。有些期刊要求参考文献所发表的期刊名必须采用缩写形式,否则直接拒稿。现对于给定的期刊名,要求按以下规则缩写: (1)长度不超过4的单词不必缩写; (2)长度超过4的单词仅取前4个字母,但其后要加“.”; (3)所有字母都小写。

输入格式:

首先输入一个正整数T,表示测试数据的组数,然后是T组测试数据。 每组测试输入一个包含大小写字母和空格的字符串(长度不超过85),单词由若干字母构成,单词之间以一个空格间隔。

输出格式:

对于每组测试,在一行上输出缩写后的结果,单词之间以一个空格间隔。

输入样例:

2
Ad Hoc Networks
IEEE Transactions on Nanotechnology

输出样例:

ad hoc netw.
ieee tran. on nano.

答案:

# Description: 命里有时终须有,命里无时莫强求
# Autor: Neptune
# Date: 2021/10/27 12:19
n = int(input())
for text in range(n):list1 = input().split()for i in range(len(list1)):if len(list1[i]) > 4:print(list1[i][:4].lower(), end='.')else:print(list1[i].lower(), end='')if i < len(list1) - 1:print(" ", end='')print()list1.clear()

7-3 小者靠前 (10 分)

输入n(1<n<100)个整数到一个数组中,使得其中最小的一个数成为数组的第一个元素(首元素)。若有多个最小者,则首元素仅与最早出现的最小者交换。

输入格式:

测试数据有多组,处理到文件尾。每组测试数据的第一行输入n(1<n<100),第二行输入n个整数。

输出格式:

对于每组测试,输出将这n个整数中最小的数与第一个数对换后的n个整数。

输入样例:

5
5 3 4 1 2

输出样例:

1 3 4 5 2

答案:

# Description: 命里有时终须有,命里无时莫强求
# Autor: Neptune
# Date: 2021/10/27 12:37
try:while True:n = int(input())list1 = [eval(i) for i in input().split()]min1 = min(list1)for i in range(n):if min1 == list1[i]:list1[i] = list1[0]breaklist1[0] = min1print(' '.join(str(i) for i in list1))
except EOFError:pass

7-4 Python-任意多行字符串拆分数值求和 (20 分)

编写程序,统计每行字符串中若干整数的和。每行字符串中整数间的分隔符可能有逗号“,”、分号“ ;”和空格,有多少行就求多少行。

输入格式:

任意输入若干行由整数构成的字符串(回车换行),整数间以逗号或空格或分号分隔。测试数确保至少有一行数据,字符串中的整数数据均合法有效。最后以一个回车结束输入。

输出格式:

对应输出原输入串(一行中的字符序列),冒号后输出各个整数之和。

输入样例:

1; 2 ,3
2 3; 4
10,20 30; 409

结尾无空行

输出样例:

1; 2 ,3:6
2 3; 4:9
10,20 30; 40:1009:9

结尾无空行

答案:

# Description: 命里有时终须有,命里无时莫强求
# Autor: Neptune
# Date: 2021/10/27 12:47
try:while True:str1 = input()str2 = ''for i in str1:if i.isdigit():str2 += ielse:str2 += ' 'list1 = list(map(int, str2.split()))print("%s:%s"%(str1,sum(list1)))
except EOFError:pass

7-5 武林盟主 (10 分)

在传说中的江湖中,各大帮派要选武林盟主了,如果龙飞能得到超过一半的帮派的支持就可以当选,而每个帮派的结果又是由该帮派帮众投票产生的,如果某个帮派超过一半的帮众支持龙飞,则他将赢得该帮派的支持。现在给出每个帮派的帮众人数,请问龙飞至少需要赢得多少人的支持才可能当选武林盟主?

输入格式:

测试数据有多组,处理到文件尾。每组测试先输入一个整数n(1≤n≤20),表示帮派数,然后输入n个正整数,表示每个帮派的帮众人数ai​(0<ai​≤100)。

输出格式:

对于每组数据输出一行,表示龙飞当选武林盟主至少需要赢得支持的帮众人数。

输入样例:

3 5 7 5
4 6 6 7 5

输出样例:

6
11

答案:

# Description: 命里有时终须有,命里无时莫强求
# Autor: Neptune
# Date: 2021/10/27 12:47
try:while True:list1 = list(map(int, input().split()))list2 = []for i in range(1, list1[0] + 1):list2.append(list1[i] // 2 + 1)while len(list2) > list1[0] // 2 + 1:list2.remove(max(list2))print(sum(list2))
except EOFError:pass


http://www.ppmy.cn/news/428295.html

相关文章

R+NLP︱text2vec包——四类文本挖掘相似性指标 RWMD、cosine、Jaccard 、Euclidean (三,相似距离)

要学的东西太多&#xff0c;无笔记不能学~~ 欢迎关注公众号&#xff0c;一起分享学习笔记&#xff0c;记录每一颗“贝壳”~ ——————————————————————————— 在之前的开篇提到了text2vec&#xff0c;笔者将其定义为R语言文本分析"No.1"&…

第六章 易经

易 甲骨文&#xff1a;易 大篆&#xff1a;易 元亨利贞 甲骨文&#xff1a; 元亨(缺&#xff09;利贞 大篆&#xff1a;元亨利贞 在《易经》全文中&#xff0c;这个四字组合出现了相当多次。 自《易传》起&#xff0c;古人释此四字&#xff0c;大都一字一逗&#xff0c;认为代表…

标准的I/O缓冲:全缓冲,行缓冲,无缓冲

今天在学习进程时遇到关于一个I/O缓冲区的的问题,和大家分享一下,首先举个简单的例子: #include <stdio.h> int main() {printf("hello,world!");_Exit(0); }编译成功后却不出现hello…

7-2 武林盟主 ,7-3 数组循环移位,7-4 又一个往返跑方阵 7-8 输出成绩信息

目录 7-2 武林盟主 (10 分) 输入格式: 输出格式: 输入样例: 输出样例: 7-3 数组循环移位 (10 分) 输入格式: 输出格式: 输入样例: 输出样例: 7-4 又一个往返跑方阵 (10 分) 输入格式: 输出格式: 输入样例1: 输出样例1: 输入样例2: 输出样例2: 7-8 输出成绩信…

从AliSQL切换到MySQL出现Unknown collation: 'utf8mb4_unicode_520_ci

记一次从AliSQL切换到MySQL出现Unknown collation: utf8mb4_unicode_520_ci 出现错误的原因 以前一直用的AliSQL&#xff0c;AliSQL是阿里根据MySQL优化的&#xff0c;可以说是优化版本&#xff0c;性能更高&#xff0c;更加稳定&#xff0c;如果优化完还和原版是一样&#x…

备忘

python十进制转16进制&#xff1a;python -c "print hex(28285)" 程序远程调试:-Xdebug -Xrunjdwp:transportdt_socket,servery,address"8000" 程序运行时间&#xff1a;ps -eo pid,lstart,etime | grep 5176 lstart 启动时间 etime 运行多长时间 硬…

pta武林盟主 c(gcc)

在传说中的江湖中&#xff0c;各大帮派要选武林盟主了&#xff0c;如果龙飞能得到超过一半的帮派的支持就可以当选&#xff0c;而每个帮派的结果又是由该帮派帮众投票产生的&#xff0c;如果某个帮派超过一半的帮众支持龙飞&#xff0c;则他将赢得该帮派的支持。现在给出每个帮…

Python练习题六

博主&#xff1a;&#x1f44d;不许代码码上红 欢迎&#xff1a;&#x1f40b;点赞、收藏、关注、评论。 文章目录 一、判断双对称矩阵二、武林盟主三、交换数组元素四、简单的归并五、保持数列有序六、部分逆置七、n马n担问题八、Fibonacci分数序列九、最小回文数十、猴子吃桃…