前言

Hello!小伙伴!
非常感谢您阅读海轰的文章,倘若文中有错误的地方,欢迎您指出~
 
自我介绍 ଘ(੭ˊᵕˋ)੭
昵称:海轰
标签:程序猿|C++选手|学生
简介:因C语言结识编程,随后转入计算机专业,有幸拿过国奖、省奖等,已保研。目前正在学习C++/Linux(真的真的太难了~)
学习经验:扎实基础 + 多做笔记 + 多敲代码 + 多思考 + 学好英语!

第五章

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

题目

输入一个1到7的数字,输出对应的星期名的缩写。

1 Mon
2 Tue
3 Wed
4 Thu
5 Fri
6 Sat
7 Sun

输入格式:

输入1到7之间数字

输出格式:

输出对应的星期名的缩写

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

1

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

Mon

解答

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

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

题目


图的字典表示。输入多行字符串,每行表示一个顶点和该顶点相连的边及长度,输出顶点数,边数,边的总长度。比如上图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())
sum=0
length=0
for i in range(n):dic=eval(input())for j in dic:temp=dic[j]for k in temp:sum+=1length+=temp[k]
print("{} {} {}".format(n,sum,length))

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

题目

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

输入格式:

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

输出格式:

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

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

7 / 3

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

2.33

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

10 / 0

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

divided by zero

解答

参考:https://blog.csdn.net/chen_zan_yu_/article/details/103406089

res = {'+': 'x+y', '-': 'x-y', '*': 'x*y','/': "x/y if y!=0  else 'divided by zero'"}
# 除法部分分三元式表示
x = int(input())
operation = input()
y = int(input())
# print(res[operation]) 除零返回字符串,其余返回数字类型
r = eval(res[operation])
if type(r) != str:print(format(r, '.2f'))
else:print(r)

5-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

解答

提交代码 - 1

tickets=list(set(map(int,input().split(','))))
a=[]
for i in range(6,11):if i not in tickets:a.append(i)
print(' '.join('%s' %id for id in a))


提交代码 - 2

tickets=list(set(map(str,input().split(','))))
a=[]
for i in range(6,11):if str(i) not in tickets:a.append(str(i))
ans=' '.join(a)
print(ans)

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

题目

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

输入格式:

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

输出格式:

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

输入样例:

programming is More fun! m

输出样例:

2

解答

str1=input()
a=input()
count=0
for i in str1:if i==a:count+=1
print(count)

5-6 统计工龄 (20 分)

题目

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

输入格式:

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

输出格式:

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

输入样例:

8 10 2 0 5 7 2 5 2

输出样例:

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

解答

n=int(input())
ages=list(map(int,input().split()))
dic={}
for i in ages:dic[i]=dic.get(i,0)+1
for i in sorted(dic):print("{}:{}".format(i,dic[i]))

5-7 列表去重 (40 分)

题目

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

输入格式:

在一行中输入列表

​输出格式:

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

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

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

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

4 7 5 6 8 9

解答

lst1=eval(input())
lst2=list(set(lst1))
print(' '.join(map(str,sorted(lst2,key=lst1.index))))

5-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

解答

m,n=map(int,input().split())
set_1=set()
set_2=set()
set_3=set()
for i in range(m,n+1):if i%3==0:set_1.add(i)if i%5==0:set_2.add(i)if i%7==0:set_3.add(i)
print(len(set_1 & set_2 & set_3))

5-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
4 7 8
1 3 3
2 3 1

输出样例3:

2

解答

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

n = int(input())
# 原矩阵
lis = [list(map(int, input().split()))for i in range(n)]
# 转置矩阵
lis_1 = [[lis[j][i] for j in range(n)]for i in range(n)]
print(lis_1)
# 依次遍历lis max(lis[i]):原矩阵行最大值 min(lis_1[j]):原矩阵列最大值
print(len([0 for i in range(n)for j in range(n) if lis[i][j] == max(lis[i]) == min(lis_1[j])]))

5-10 两数之和 (30 分)

题目

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

输入格式:

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

输出格式:

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

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

2,7,11,15 9

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

0 1

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

3,6,9 10

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

no answer

解答

lst=list(map(int,input().split(',')))
target=int(input())
m=dict()
for i,num in enumerate(lst):if target-num in m:print("{} {}".format(m[target-num],i))exit()m[num]=i
print("no answer")

5-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}

解答

注意:**字典的键用一个字母或数字表示! **

这道题简单的合并两个字典比较简单,难点在输出时需要对字典的键值进行一个排序

题目中给出键只能是一个字母或者一个数字(??这里其实有歧义 一个数字是指一位的数字还是任意数字)

这里假设的是为一个一位的数字,认为int型数字比字符排在前面

dict1=dict(eval(input()))
dict2=dict(eval(input()))
for i in dict2:if i in dict1:dict1[i]+=dict2[i]else:dict1[i]=dict2[i]
intKeys=[]
strKeys=[]
for i in dict1.keys():if type(i)==int:intKeys.append(i)else:strKeys.append(i)
intKeys.sort()
strKeys.sort()
ans=[]
for i in intKeys+strKeys:temp=""if type(i)==int:temp=str(i)+":"+str(dict1[i])else:temp='"'+i+'"'+":"+str(dict1[i])ans.append(temp)
s1=','.join(ans)
s1='{'+s1+'}'
print(s1)

结语

文章仅作为学习笔记,记录从0到1的一个过程

希望对您有所帮助,如有错误欢迎小伙伴指正~

我是 海轰ଘ(੭ˊᵕˋ)੭

如果您觉得写得可以的话,请点个赞吧

谢谢支持 ❤️

【PTA|Python】浙大版《Python 程序设计》题目集:第五章相关推荐

  1. 100例C语言经典编程题 | 浙大版C语言题目集第三版,助力你C语言从入门到精通

    获取每道题详细解答请在公众号[C you again]"C语言题目集"栏目查看. 下载pdf版本请在公众号[C you again]回复"c-pdf"自行获取. ...

  2. PTA浙大版python程序设计题目集--第1章-3 输出“Python语言简单易学” (10 分)

    输入格式: 无 输出格式: 输出一句短语,Python语言简单易学. 如果包含汉字,用"print(s.encode("utf-8"))"输出. 如: s=&q ...

  3. PTA浙大版python程序设计题目集--第2章-2 计算分段函数[1] (10 分)

    本题目要求计算下列分段函数f(x)的值: 公式 输入格式: 输入在一行中给出实数x. 输出格式: 在一行中按"f(x) = result"的格式输出,其中x与result都保留一位 ...

  4. PTA浙大版python程序设计题目集--第3章-5 字符转换 (15 分)

    本题要求提取一个字符串中的所有数字字符('0'--'9'),将其转换为一个整数输出. 输入格式: 输入在一行中给出一个不超过80个字符且以回车结束的字符串. 输出格式: 在一行中输出转换后的整数.题目 ...

  5. PTA浙大版python程序设计题目集--第1章-1 从键盘输入两个数,求它们的和并输出 (30 分)

    本题目要求读入2个整数A和B,然后输出它们的和. 输入格式: 在一行中给出一个被加数 在另一行中给出一个加数 输出格式: 在一行中输出和值. 输入样例: 在这里给出一组输入.例如: 18 -48 输出 ...

  6. PTA浙大版python程序设计题目集--第2章-4 特殊a串数列求和 (20 分)

    给定两个均不超过9的正整数a和n,要求编写程序求a+aa+aaa++⋯+aa⋯a(n个a)之和. 输入格式: 输入在一行中给出不超过9的正整数a和n. 输出格式: 在一行中按照"s = 对应 ...

  7. PTA浙大版python程序设计题目集--第2章-3 阶梯电价 (15 分)

    为了提倡居民节约用电,某省电力公司执行"阶梯电价",安装一户一表的居民用户电价分为两个"阶梯":月用电量50千瓦时(含50千瓦时)以内的,电价为0.53元/千瓦 ...

  8. PTA浙大版python程序设计题目集--第2章-1 计算 11+12+13+...+m (30 分)

    输入一个正整数m(20<=m<=100),计算 11+12+13+-+m 的值. 输入格式: 在一行输入一个正整数m. 输出格式: 在一行中按照格式"sum = S"输 ...

  9. PTA浙大版python程序设计题目集--第1章-2 从键盘输入三个数到a,b,c中,按公式值输出 (30 分)

    在同一行依次输入三个值a,b,c,用空格分开,输出 bb-4a*c的值 输入格式: 在一行中输入三个数. 输出格式: 在一行中输出公式值. 输入样例: 在这里给出一组输入.例如: 3 4 5 输出样例 ...

  10. 浙大版《Python 程序设计》题目集 4~7章

    写在前面: 有编程基础的同学可以直接刷(不会语法再看文档,若没有那就边看书边刷 浙大版<Python 程序设计>题目集4~7章 题目链接:浙大版<Python 程序设计>题目集 ...

最新文章

  1. HDU5017(模拟退火算法)
  2. ModuleNotFoundError: No module named ‘mmcv._ext‘
  3. 机器学习中如何处理不平衡数据?
  4. java最少有多少线程_【并发编程】一个最简单的Java程序有多少线程?
  5. tomcat下运行cxf异常 java.lang.ClassCastException
  6. 推荐一个实用的 .gitignore 文件
  7. Java里面的几种路径的区别
  8. 财会专用计算机,一种财会专用计算机的制作方法
  9. ? php 为啥报错,如何解决js里面的php代码报错问题
  10. html5文字飞入插件,jquery使用CSS3实现文字动画效果插件Textillate.js
  11. 猫狗动物声音模拟器微信小程序源码
  12. python的while嵌套循环_Python中嵌套的WHILE循环
  13. 电商项目——商品分类/品牌查询
  14. Python pyserial 串口开发
  15. 垃圾邮件过滤python_手把手教你用 python 和 scikit-learn 实现垃圾邮件过滤-阿里云开发者社区...
  16. 如何关闭H3C的交换机路由器等设备上使用SFP模块时候产生的警告提示
  17. js实现简易打点计时器
  18. iOS开发之静态库.a的制作教程
  19. win7计算机系统还原,win7怎么系统还原 还原步骤详解
  20. HDU 6078Wavel Sequence

热门文章

  1. 计算机 教授级职称评定,工程技术应用研究员(俗称正高,教授级高工等等)职称评定...
  2. 瓜子二手车逃离行业“不可能三角”?
  3. linux安装beyondcompare
  4. 美化html表格内容,css Javascript html表格美化
  5. 2.Nginx Docker安装Nginx
  6. java实现手机扫二维码登陆
  7. java入门基础教程(纯干货知识点+视频资源)
  8. Autodesk Maya 2018.6 中文特别版 Mac 顶级三维动画制作工具
  9. 自动化篇 - 为闲鱼制作一个客服机器人
  10. 阿里云服务器支持IPV6和CND的详细教程