当前位置:   article > 正文

浙大PTA-Python题库 编程题第五章(5-1~5-11)题解_给定一组整数,再另外给定一个整数 工,请编程计算出,这组整数中,两数之差为 工 的

给定一组整数,再另外给定一个整数 工,请编程计算出,这组整数中,两数之差为 工 的

其他各章题解链接如下
浙大PTA-Python题库 编程题第一章(1-1~1-3)题解
https://blog.csdn.net/zimuzi2019/article/details/107020657

浙大PTA-Python题库编程题 第二章(2.1~2.14)题解
https://blog.csdn.net/zimuzi2019/article/details/106984549

浙大PTA-Python题库 编程题第三章(3-1~3-22)题解
https://blog.csdn.net/zimuzi2019/article/details/107040596

浙大PTA-Python题库 编程题第四章(4-1~4-30)题解
https://blog.csdn.net/zimuzi2019/article/details/107040603

浙大PTA-Python题库 编程题第五章(5-1~5-11)题解
https://blog.csdn.net/zimuzi2019/article/details/107020929

浙大PTA-Python题库 编程题第六章(6-1~6-8)题解
https://blog.csdn.net/zimuzi2019/article/details/107020979

浙大PTA-Python题库 编程题第七章(7-1)题解
https://tuenity.blog.csdn.net/article/details/102723092

注:第七章只有一道题,因为正则表达式学校尚不要求我就还没看,所以这道题解的链接是另一个大佬的

浙大PTA-Python题库 函数题(6-1~6-6)题解
https://blog.csdn.net/zimuzi2019/article/details/107021024

题目列表

在这里插入图片描述

5-1 输出星期名缩写

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

输入格式:

输入1到7之间数字

输出格式:

输出对应的星期名的缩写

输入样例:

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

1
  • 1

输出样例:

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

Mon
  • 1

题解

daysdict={1:"Mon",2:"Tue",3:"Wed",4:"Thu",5:"Fri",6:"Sat",7:"Sun"}
print(daysdict[eval(input())])
  • 1
  • 2

5-2 图的字典表示

捕获.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':{}} 
  • 1
  • 2
  • 3
  • 4
  • 5

输出样例:

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

4 5 35
  • 1

题解

n=eval(input())
num,sum=0,0
for i in range(n):
    dic=eval(input())
    for j in dic:
        temp=dic[j]
        for key in temp:
            num+=1
            sum+=temp[key]
print("{:d} {:d} {:d}".format(n,num,sum))
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

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

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

输入格式:

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

输出格式:

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

输入样例1:

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

7
/
3
  • 1
  • 2
  • 3

输出样例1:

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

2.33
  • 1

输入样例2:

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

10
/
0
  • 1
  • 2
  • 3

输出样例2:

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

divided by zero
  • 1

题解

caldict= {"+":"x+y","-":"x-y","*":"x*y","/":"x/y"}
x,op,y=eval(input()),input(),eval(input())
try:
    print("{:.2f}".format(eval(caldict[op])))
except:
    print("divided by zero")
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

5-4 分析活动投票情况

利用集合分析活动投票情况。第一小队有五名队员,序号是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 
  • 1

输出样例:

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

6 8
  • 1

题解

team=set(map(eval,input().split(',')))
resultlist=[i for i in range(6,11) if i not in team]
print(*resultlist)
  • 1
  • 2
  • 3

5-5 统计字符出现次数

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

输入格式:

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

输出格式:

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

输入样例:

programming is More fun!
m
  • 1
  • 2

输出样例:

2
  • 1

题解

string,char,cnt=input(),input(),0
for i in string:
    if(i==char):
        cnt+=1
print(cnt)
  • 1
  • 2
  • 3
  • 4
  • 5

5-6 统计工龄

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

输入格式:

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

输出格式:

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

输入样例:

8
10 2 0 5 7 2 5 2
  • 1
  • 2

输出样例:

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

题解

n=eval(input())
timelist = list(map(int,input().split()))
timedict={}
for i in range(0,n):
    if timelist[i] not in timedict:
        timedict[timelist[i]]=1
    else:
        timedict[timelist[i]]+=1
for i in sorted(timedict.keys()):
    print("{}:{}".format(i,timedict[i]))
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

5-7 列表去重

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

输入格式:

在一行中输入列表

输出格式:

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

输入样例:

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

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

输出样例:

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

4 7 5 6 8 9
  • 1

题解

listin,listout=eval(input()),[]
for i in listin:
    if i not in listout:
        listout.append(i)
print(*listout)
  • 1
  • 2
  • 3
  • 4
  • 5

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

输入格式:

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

输出格式:

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

输入样例1:

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

10  100
  • 1

输出样例1:

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

0
  • 1

输入样例2:

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

1000  100000
  • 1

输出样例:

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

943
  • 1

题解

a,b = map(int,input().split())
print(len([i for i in range(a,b+1) if i%3==0 and i%5==0 and i%7==0]))
  • 1
  • 2

5-9 求矩阵鞍点的个数

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

输入格式:

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

输出格式:

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

输入样例1:

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

2,7,11,15
9
  • 1
  • 2

输出样例1:

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

0 1
  • 1

输入样例2:

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

3,6,9
10
  • 1
  • 2

输出样例2:

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

no answer
  • 1

题解

n,cnt=eval(input()),0
Matrix1=[[j for j in list(map(eval,input().split()))] for i in range(0,n)]
Matrix2=[[Matrix1[j][i] for j in range(0,n)] for i in range(0,n)]
rowmax=[max(Matrix1[i]) for i in range(0,n)]
colmax=[min(Matrix2[i]) for i in range(0,n)]
for index,value in enumerate(rowmax):
    for j in range(0,n):
        if Matrix1[index][j]==value:
            if colmax[j]==value:
                cnt+=1
print(cnt)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

5-10 两数之和

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

输入格式:

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

输出格式:

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

输入样例1:

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

2,7,11,15
9
  • 1
  • 2

输出样例1:

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

0 1
  • 1

输入样例2:

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

3,6,9
10
  • 1
  • 2

输出样例2:

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

no answer
  • 1

题解

numlist=list(map(eval,input().split(",")))
goalnum,flag=eval(input()),1
for index1,value1 in enumerate(numlist):
    for index2,value2 in enumerate(numlist[index1:]):
        if (value1+value2)==goalnum:
            flag=0
            print(index1,index2+index1)
if flag:
    print("no answer")   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

5-11 字典合并

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

输入格式:

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

输出格式:

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

输入样例1:

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

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

输出样例1:

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

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

输入样例2:

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

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

输出样例2:

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

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

题解

dict1,dict2=dict(eval(input())),dict(eval(input()))
for i in dict2:
    if i not in dict1:
        dict1[i]=dict2[i]
    else:
        dict1[i]+=dict2[i]
print("{",end="")
s1=[i for i in dict1.keys() if type(i)==type(1)]
s2=[i for i in dict1.keys() if type(i)==type('dict1')]
s1.sort()
s2.sort()
c,n=0,len(dict1)
for i in s1+s2:
    c+=1
    if type(i)==type(1):
        print("{}:{}".format(i,dict1[i]),end='')
    else:
        print('"{}":{}'.format(i,dict1[i]),end='')
    if c!=n:
        print(',',end='')
print("}")
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/632722
推荐阅读
相关标签
  

闽ICP备14008679号