PTA-MOOC《Python程序设计浙江大学》拼题题目集第五章编程题题目及代码答案

article/2025/9/18 16:43:02

7-1 输出星期名缩写 (70分)

输入一个1到7的数字,输出对应的星期名的缩写。
1 Mon
2 Tue
3 Wed
4 Thu
5 Fri
6 Sat
7 Sun

输入格式:
输入1到7之间数字

输出格式:
输出对应的星期名的缩写

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

1

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

Mon

代码

n=input()
data={'1':'Mon','2':'Tue','3':'Wed','4':'Thu','5':'Fri','6':'Sat','7':'Sun'}
print(data[n])

7-2 图的字典表示 (20分)

捕获.JPG

图的字典表示。输入多行字符串,每行表示一个顶点和该顶点相连的边及长度,输出顶点数,边数,边的总长度。比如上图0点表示:
{‘O’:{‘A’:2,‘B’:5,‘C’:4}}。用eval函数处理输入,eval函数具体用法见第六章内置函数。

输入格式:
第一行表示输入的行数 下面每行输入表示一个顶点和该顶点相连的边及长度的字符串

输出格式:
在一行中输出顶点数,边数,边的总长度

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

4
{'a':{'b':10,'c':6}}
{'b':{'c':2,'d':7}}
{'c':{'d':10}}
{'d':{}} 

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

4 5 35

代码

n=int(input())
data={}
count1,count2=0,0
for i in range(n):a=eval(input())for each in a:data[each]=a[each]
for i in data:count1+=len(data[i])for j in data[i]:count2+=data[i][j]
print("%d %d %d"%(len(data),count1,count2))

7-3 四则运算(用字典实现) (30分)

四则运算(用字典实现),比较c语言的switch语句。

输入格式:
在一行中输入一个数字 在一行中输入一个四帜运算符(+,-,*,/) 在一行中输入一个数字

输出格式:
在一行中输出运算结果(小数保留2位)

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

7
/
3

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

2.33

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

10
/
0

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

divided by zero

代码

a = float(input())
m = input()
b = float(input())try:res = {'+': a + b, '-': a - b, '*': a * b, '/': a / b}print(f"{res[m]:.2f}")
except:print("divided by zero")

ps:

这道题目有个小坑,题目并未说明如结果为整数则输出整数,题目默认整数也保留两位小数。
故下面为输出是整数则不保留小数的代码

n=input()
a=input()
m=input()
if "." in m:m=float(m)
else:m=int(m)
if "." in n:n=float(n)
else:n=int(n)       
data={'+':1,'-':2,'*':3,'/':4}
if m == 0 and data[a] ==4:print("divided by zero")
else:if isinstance(m,int) and isinstance(n,int):if data[a] == 1:print(n+m)elif data[a] == 2:print(n-m)elif data[a] == 3:print(n*m)elif data[a] == 4:if int(n/m) == (n/m):print(int(n/m))else:print("%.2f"%(n/m))else:if data[a] == 1:print("%.2f"%(n+m))elif data[a] == 2:print("%.2f"%(n-m))elif data[a] == 3:print("%.2f"%(n*m))elif data[a] == 4:print("%.2f"%(n/m))

7-4 分析活动投票情况 (20分)

利用集合分析活动投票情况。第一小队有五名队员,序号是1,2,3,4,5;第二小队也有五名队员,序号6,7,8,9,10。输入一个得票字符串,求第二小队没有得票的队员

输入格式:
在一行中输入得票的队员的序列号,用逗号隔开。

输出格式:
一行中输出第二小队没有得票的队员序号。

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

1,5,9,3,9,1,1,7,5,7,7,3,3,1,5,7,4,4,5,4,9,5,10,9 

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

6 8

代码

s=list(map(int,input().split(",")))
data=set()
num=[]
j=0
for i in range(len(s)):data.add(s[i])
for i in range(6,11):if i not in data:num.append(i)
if len(num) !=0:for i in range(len(num)):if i != len(num)-1:print("%d "%num[i],end="")else:print(num[i])

7-5 统计字符出现次数 (20分)

本题要求编写程序,统计并输出某给定字符在给定字符串中出现的次数。

输入格式:
输入第一行给出一个以回车结束的字符串(少于80个字符);第二行输入一个字符。

输出格式:
在一行中输出给定字符在给定字符串中出现的次数。

输入样例:

programming is More fun!
m

输出样例:

2

代码

s=input()
a=input()
print(s.count(a))

7-6 统计工龄 (20分)

给定公司N名员工的工龄,要求按工龄增序输出每个工龄段有多少员工。

输入格式:
输入首先给出正整数N(≤10
​5
​​ ),即员工总人数;随后给出N个整数,即每个员工的工龄,范围在[0, 50]。

输出格式:
按工龄的递增顺序输出每个工龄的员工个数,格式为:“工龄:人数”。每项占一行。如果人数为0则不输出该项。

输入样例:

8
10 2 0 5 7 2 5 2

输出样例:

0:1
2:3
5:2
7:1
10:1

代码

s=int(input())
data=list(map(int,input().split()[:s]))
data.sort()
data=list(map(str,data))
num={}
for i in range(s):if data[i] not in num:num[data[i]]=1else:num[data[i]]+=1
for each in num:print("%s:%d"%(each,num[each]))

7-7 列表去重 (40分)

输入一个列表,去掉列表中重复的数字,按原来次序输出!

输入格式:
在一行中输入列表

输出格式:
在一行中输出不重复列表元素

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

[4,7,5,6,8,6,9,5] 

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

4 7 5 6 8 9

代码


s=input()
s=eval(s)
s=s[::-1]
for i in s:if s.count(i) !=1:for j in range(s.count(i)-1):s.remove(i)
for i in range(len(s)-1,-1,-1):if i !=0:print("%d "%s[i],end="")else:print(s[i])

7-8 能被3,5和7整除的数的个数(用集合实现) (30分)

求指定区间内能被3,5和7整除的数的个数

输入格式:
在一行中从键盘输入2个正整数a,b(1<=a<b<=10000000),用空格隔开。

输出格式:
在一行输出大于等于a且小于等于b的能被3,5和7整除的数的个数。

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

10  100

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

0

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

1000  100000

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

943

代码

a,b=input().split()
a,b=int(a),int(b)
count=0
for i in range(a,b+1):if i%3==0 and i%5==0 and i%7==0:count+=1
print(count)

7-9 求矩阵鞍点的个数 (30分)

一个矩阵元素的“鞍点”是指该位置上的元素值在该行上最大、在该列上最小。

本题要求编写程序,求一个给定的n阶方阵的鞍点。

输入格式: 输入第一行给出一个正整数n(1≤n≤6)。随后n行,每行给出n个整数,其间以空格分隔。

输出格式: 鞍点的个数

输入样例1:

4  
1 7 4 1   
4 8 3 6
1 6 1 2
0 7 8 9

输出样例1:

1

输入样例2:

2
1 7
4 1

输出样例2:

0

输入样例3:

3
6    6    6
6    6    6
6    6    6

输出样例3:

9

代码

n=int(input())
data=[]
count=0
for i in range(n):data.append(list(map(int,input().split())))
for i in range(n):for j in range(n):if data[i][j] == max(data[i]) and data[i][j] == min([data[k][j] \for k in range(n)]):count+=1
print(count)

7-10 两数之和 (30分)

给定一组整数,还有一个目标数,在给定这组整数中找到两个数字,使其和为目标数,如找到,解是唯一的。找不到则显示 “no answer”。输出的下标按从小到大排序。用一重循环加字典实现。

输入格式:
在一行中给出这组数。 在下一行输入目标数

输出格式:
在一行中输出这两个数的下标,用一个空格分开。

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

2,7,11,15
9

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

0 1

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

3,6,9
10

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

no answer

代码

s=list(map(int,input().split(",")))
n=int(input())
flag=0
for i in range(len(s)):for j in range(i,len(s)):if s[i]+s[j] == n:flag=1print("%d %d"%(i,j))
if flag==0:print("no answer")

7-11 字典合并 (40分)

字典合并。输入用字符串表示两个字典,输出合并后的字典,字典的键用一个字母或数字表示。注意:1和‘1’是不同的关键字!

输入格式:
在第一行中输入第一个字典字符串 在第二行中输入第二个字典字符串

输出格式:
在一行中输出合并的字典,输出按字典序。"1"的ASCII吗为49,大于1,排序时1在前,"1"在后,其它的也一样。

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

{1:3,2:5}
{1:5,3:7} 

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

{1:8,2:5,3:7}

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

{"1":3,1:4}
{"a":5,"1":6}

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

{1:4,"1":9,"a":5}

代码

a = dict(eval(input()))
b = dict(eval(input()))
c = {}
for i in a.keys():for j in b.keys():if i == j:c[i] = a.get(i) + b.get(j)if i not in c.keys():c[i] = a.get(i)if j not in c.keys():c[j] = b.get(j)
c1 = {}
c2 = {}
for key in c.keys():if type(key) == str:c1[key] = c.get(key)elif type(key) == int:c2[key] = c.get(key)
c11 = sorted(c1.keys())
c22 = sorted(c2.keys())
ans1 = {}  #str
ans2 = {}  #int
ans3 = {}
for i in c11:ans1[i] = c1.get(i)
for i in c22:ans2[i] = c2.get(i)num = 0
num1 = 0
print("{", end='')
if len(ans2) != 0:for k, v in ans2.items():if len(ans1) == 0 and num1 == len(ans2) - 1:print("{}:{}".format(k, v), end='')else:print("{}:{},".format(k, v), end='')num1 = num1 + 1
if len(ans1) != 0:for k, v in ans1.items():if num == len(ans1) - 1:print(("\""+"%c"+"\""+":"+"%d") % (k, v), end='')else:print(("\"" + "%c" + "\"" + ":" + "%d,") % (k, v), end='')num = num + 1
print("}", end='')

http://chatgpt.dhexx.cn/article/ORbMjIFU.shtml

相关文章

菜鸟实战UML——类图

类图 类图(Class diagram)&#xff1a;是显示了模型的静态结构&#xff0c;特别是模型中存在的类、类的内部结构以及它们与其他类的关系等。类图不显示暂时性的信息。类图是面向对象建模的主要组成部分。它既用于应用程序的系统分类的一般概念建模&#xff0c;也用于详细建模&…

记录一个IT菜鸟的成长之路。

会 的 真 的 会 的 所 有 离 开 的 人 都 信 誓 旦 旦 地 说 过 他 们 不 会 忘 记 曾 经 的 一 切 可 是 最 后 都 忘 了 无 一 例 外 地 忘 记 了 他 们 会 开 始 熟 悉 每 一 条 陌 生 的 路 听 每 一 首 陌 生 的 歌 会 知 道 在 哪 一 个 街 角 有 超 市 可 以 买…

SpringBoot使用菜鸟物流云打印电子面单

菜鸟物流云属于淘宝开放平台的一部分&#xff0c;淘宝开发平台提供了很多种对接接口&#xff0c;包括商品、销售单等等&#xff0c;几乎涉及到的业务都在该平台上开放了接口。 淘宝开放平台提供了两种快递面单接口&#xff0c;一种是淘宝商家TOP接口&#xff0c;一种是菜鸟物流…

菜鸟学设计模式——小单例有大秘密

欢迎大家关注我的新书《Spring Boot趣味实战课》 京东 当当 天猫 单例模式大家并不陌生&#xff0c;也都知道它分为什么懒汉式、饿汉式之类的。但是你对单例模式的理解足够透彻吗&#xff1f;今天我带大家一起来看看我眼中的单例&#xff0c;可能会跟你的认识有所不同。 下面是…

项目菜鸟成长为老鸟之路

【背景】 从去年12月份开始加入廊坊市市委组织部考核系统的维护,到今天正式验收完重构文档,算是一个项目的完美阶段性结项。 维护工作(纯三层架构)——》重构阶段性完结(MVCWCFEF映射架构)&#xff0c;它经历了历史的变革。 项目菜鸟(刚入维护)——》中级老鸟(重构完结…

菜鸟驿站进军万亿社区市场

文&#xff5c;祝颖丽 编辑&#xff5c;斯问 “老板娘&#xff0c;取一下快递。”“取件码多少&#xff1f;” “老板娘&#xff0c;我的紫甘蓝到了吗&#xff1f;”“在后面货架上。” “老板娘&#xff0c;团购的东西总共多少钱&#xff1f;” “480。” 6月23日&#xff0c;…

《Java程序员由笨鸟到菜鸟》电子版书正式发布,欢迎大家下载

欢迎关注微信账号&#xff1a;java那些事&#xff1a;csh624366188.每天一篇java相关的文章 在众多朋友的支持和鼓励下&#xff0c;《Java程序员由菜鸟到笨鸟》电子版终于和大家见面了。本电子书涵盖了从java基础到javaweb开放框架的大部分内容。在编写的过程中&#xff0c;难…

“菜鸟”程序员和“大神”程序员差距在哪里

点击上方“程序员大咖”&#xff0c;选择“置顶公众号” 关键时刻&#xff0c;第一时间送达&#xff01; 刚刚走出就业的程序员&#xff0c;技术是刚刚起步的基点。那下面我们就聊一聊有关技术的东西。首先请您先想想这几个问题。现在社会上有很多程序员&#xff0c;那您是否可…

Java程序员从笨鸟到菜鸟全部博客目录

本文来自&#xff1a;曹胜欢博客专栏。转载请注明出处&#xff1a;http://blog.csdn.net/csh624366188 欢迎关注微信账号&#xff1a;java那些事&#xff1a;csh624366188.每天一篇java相关的文章 大学上了一年半&#xff0c;接触java也一年半了&#xff0c;虽然中间也有其他东…

html 菜鸟驿站,菜鸟驿站

项目背景 菜鸟驿站是由阿里巴巴旗下菜鸟网络牵头&#xff0c;建立的面向社区、校园的第三方末端物流服务平台。在服务物流行业的同时&#xff0c;持续提升末端运作效率&#xff0c;并为用户提供包裹暂存、代寄等服务&#xff0c;致力于为消费者提供多元化的最后一公里服务。 菜…

cai鸟驿站管理系统

cai鸟驿站管理系统 需求&#xff1a;要求实现登陆&#xff0c;完成管理员对员工的管理&#xff0c;以及员工对订单的管理。如果登陆成功。根据登陆用户的权限&#xff0c;进入不同的界面。如果用户以管理员身份登陆系统&#xff0c;则进入管理员管理员工的界面。 功能&#xf…

软件测试——文档测试

从三月份进入公司实习&#xff0c;眨眼间已是七月中了&#xff0c;研一的下半学期恍惚间就结束了。 从前对软件测试的认知局限于黑盒测试、白盒测试&#xff0c;进入公司才知道我所了解的只是“冰山一角”。上个月参与了一个项目&#xff0c;花费了一周左右的时间——对文档。这…

软件的接口设计图_软件工程中的分析、设计与实例

>软件开发>>软件维护"],[20,"\n","24:\"1uh9\"|33:1"],[20,"问题定义>>可行性研究>>需求分析>>概要设计>>详细设计>>编码和单元测试>>综合测试>>软件维护"],[20,"\n&qu…

如何写好软件任务书

一、前言 我们在平常工作中可能会遇到这样的场景&#xff0c;领导跟你讲了我们这个产品大概要做成啥样&#xff0c;然后画了一张简图&#xff0c;就将任务给你&#xff0c;开始出方案设计&#xff0c;需求设计&#xff0c;架构设计&#xff0c;这个时候很多人往往会无从下手。…

软件架构设计概述

1、软件架构设计 软件架构的研究内容主要涉及软件架构描述、软件架构设计、软件架构风格、软件架构评价和软件架构的形成方法等。 软件架构设计解决好软件的设计、复用、质量和维护等方面的实际问题&#xff1b;解决各类关键的重复问题的通用方案&#xff08;复用性&#xff…

软件设计师-5.软件工程基础知识

5.1 软件工程概述 5.1.1 软件生存周期 软件&#xff1a;包含程序、数据及相关文档。 软件工程&#xff1a;涉及到软件开发、维护、管理等多方面的原理、工具与环境。最终的目的是开发高质量的软件。 目的&#xff1a;提高软件生产率、提高软件质量、降低软件成本。 声明周…

软件设计文档示例模板 - 学习/实践

1.应用场景 主要用于学习&#xff0c;以及书写软件设计文档。 2.学习/操作 1.文档阅读 加餐 | 软件设计文档示例模板-极客时间 2.整理输出 在第9篇文章中&#xff0c;我讲了每种UML模型图的画法&#xff0c;以及这些画法分别适用于什么样的设计阶段&#xff0c;我们也可以将…

来给你的CSDN博客换个皮肤~

进入CDSN官网&#xff0c;登录自己的账号&#xff0c;点击内容管理。 进入首页&#xff0c;选择博客设置 进入页面后&#xff0c;可修改博客标题、添加博客描述、修改博客皮肤&#xff0c;还可以修改默认编辑器。 来呀&#xff0c;一起换皮肤啊~

cdsn怎么查看我的关注(我关注过谁)

登录后点开链接 https://my.csdn.net/my/follow 如下图&#xff1a;

CDPN解读

关于6-DoF的一些基础的知识点请看上一篇博客。 Related work 从RGB图像中识别6-DoF的方法分为直接法和间接法。 1. 间接法 即不是直接的从RGB图像中恢复出6-DoF的信息&#xff0c;而是现在2维RGB图像和它的3维的模型上建立点到点的对应关系&#xff0c;然后通过数学的方法将…