Python PTA 实验三 组合数据类新

7-1 字典的应用-找出出现次数最多的字符串(高教社,《Python编程基础及应用》习题7-6) (30 分)
编写一个程序,从键盘读取未指定个数的字符串,一行一个,以字符串"q"为输入结束标志("q"不列入统计范围)。使用字典找出其中出现次数最多的字符串,打印该字符串及其出现次数。
注意:本题的测试用例中将保证只有一个字符串出现次数最多。

输入格式:
字符串1
字符串2

字符串n
q

输出格式:
字符串 出现次数

输入样例:
abc
abc
bcd
xxx
q
输出样例:
abc 2

a=input()
b=[]
b.append(a)
while(a !="q"):
    a=input()
    b.append(a)
b.pop()
#print(b)
c={}
for i in b:
    if i in c:
        c[i]=c[i]+1
    else:
        c[i]=1
 
#print(c)
d=list(c.items())
d.sort(key=lambda x:x[1],reverse=True)
m,n=d[0]
print("{} {}".format(m,n))
# 输出字典c的各个项
# for n,m in c.items():
#     print(n,m)

7-2 挑选出个位数字和最高位数字相同的整数 (30 分)
在一些整数中,挑选出个位数字和最高位数字相同的整数。

输入格式:
输入若干个整数,以空格分隔。

输出格式:
打印其中个位数字和最高位数字相同的整数。如果没有这样是整数,则输出空行

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

23 45 66 7237 123 313 666 5
输出样例1:
在这里给出相应的输出。例如:

66 7237 313 666 5
输入样例2:
在这里给出一组输入。例如:

34 56 78866
输出样例2:
在这里给出相应的输出(空行)。例如:

a=input().split(' ')
out_a=[]
for i in a:
    if i[0]==i[-1]:
        out_a.append(i)
print(' '.join(out_a))

7-3 成绩等级统计 (20 分)
输入一组用百分制(0-100之间的整数)表示的成绩列表,每个成绩用空格隔开,将其转换为等级制并进行各等级的统计。

0<=分数<60为F 60<=分数<70为D

70<=分数<80为C

80<=分数<90为B

90<=分数<=100为A

输入格式:
输入一组用空格隔开的整数表示的百分制成绩

输出格式:
输出五个成绩等级的个数,每个等级占一行

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

70 100 60 87 90 90 76 75 82 50
输出样例:
在这里给出相应的输出。例如:

A: 3
B: 2
C: 3
D: 1
F: 1

a=[]
a=input().split(' ')
b=[int(i) for i in a]
A,B,C,D,F=0,0,0,0,0
for i in range(len(b)):
    if b[i]>=90:
        A+=1
    if 80<=b[i]<=89:
        B+=1
    if 70<=b[i]<=79:
        C+=1
    if 60<=b[i]<=69:
        D+=1
    if b[i]<60:
        F+=1
print("A: %d"%A)
print("B: %d"%B)
print("C: %d"%C)
print("D: %d"%D)
print("F: %d"%F)

7-4 单词分组 (20 分)
第一行输入全部单词,第二行输入需排除的单词,编写程序,输出剩余单词(排除时对英文单词不区分大小写,输出时须按原顺序和大小写)。

输入格式:
共二行,第一行为全部单词,第二行为需排除单词,单词间用空格分隔

输出格式:
输出总单词中剩余单词

输入样例1:
樱挑 榴莲 栗子 芒果 葡萄 草莓 荔枝 枣 青梅
葡萄 草莓 榴莲 枣 青梅
输出样例1:
樱挑 栗子 芒果 荔枝
输入样例2:
apple watermelon cherry Durian chestnut mango grape strawberry
chestnut mango Apple watermelon Greengage
输出样例2:
cherry Durian grape strawberry

list1 = input().split()
list2 = input().split()
for i in list2:
    for j in list1:
        if j.lower()==i.lower():
            list1.remove(j)
print(' '.join(list1))

7-5 字典合并 (50 分)
输入用字符串表示两个字典,输出合并后的字典。字典的键用一个字母或数字表示。注意: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}

d1 = eval(input())
d2 = eval(input())
d3 = {}
c = 0
for i in d1:
    if i in d2:
        d2[i] += d1[i]
    else:
        d2[i] = d1[i]
for k in d2:
    if type(k) == type("a"):
        d3[ord(k)] = 0
    if type(k) == type(1):
        d3[k] = 1
print('{', end='')
for j in sorted(d3):
    c += 1
    if d3[j] == 0:
        print('"{}":{}'.format(chr(j), d2[chr(j)]), end='')
    if d3[j] == 1:
        print('{}:{}'.format(j, d2[j]), end='')
    if c < len(d3):
        print(',', end='')
print('}')

7-6 斐波那契数列 (10 分)
意大利数学家斐波那契(Leonardo Fibonacci)是12、13世纪欧洲数学界的代表人物。他提出的“兔子问题”引起了后人的极大兴趣。 “兔子问题”假定一对大兔子每一个月可以生一对小兔子,而小兔子出生后两个月就有繁殖能力,问从一对小兔子开始,n个月后能繁殖成多少对兔子?

输入格式:
首先输入一个正整数T,表示测试数据的组数,然后是T组测试数据。每组测试输入一个正整数n(1≤n≤46)。

输出格式:
对于每组测试,输出n个月后能繁殖成的兔子对数。

输入样例:
1
4
输出样例:
3

#生成斐波那契数列
List=[0]
a, b = 0, 1
for i in range(49):
	a, b = b, a+b
	List.append(a)
c=input()
c=int(c)
for i in range(c):
    d=int(input())
    print(List[d])

7-7 多个数的最小公倍数 (10 分)
两个整数公有的倍数称为它们的公倍数,其中最小的一个正整数称为它们两个的最小公倍数。当然,n个数也可以有最小公倍数,例如:5,7,15的最小公倍数是105。 输入n个数,请计算它们的最小公倍数。

输入格式:
首先输入一个正整数T,表示测试数据的组数,然后是T组测试数据。 每组测试先输入一个整数n(2≤n≤20),再输入n个正整数(属于[1,100000]范围内)。这里保证最终的结果在int型范围内。

输出格式:
对于每组测试,输出n个整数的最小公倍数。

输入样例:
2
3 5 7 15
5 1 2 4 3 5
输出样例:
105
60

def gcd(a,b):
    if b==0:
        return a
    else:
        return gcd(b,a%b)
def lcm(a,b):
    return a/gcd(a,b)*b
t=int(input())
for i in range(t):
    tmp=map(int,input().split())
    tmp=list(tmp)
    del tmp[0]
    tmp=set(tmp)
    # print(tmp)
    tmp=list(tmp)
    ans=0
    tmp1=lcm(tmp[0],tmp[1])
    if len(tmp)==2:
        ans=lcm(tmp[0],tmp[1])
    for i in range(2,len(tmp)):
        tmp1=lcm(tmp[i],tmp1)
        ans=tmp1
    print(int(ans))

7-8 任意个整数累积 (30 分)
编写函数,计算任意个整数的累积。

输入格式:
输入多个整数。

输出格式:
输出累积。

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

1,2,3,4,5,6,7,8,9,10
输出样例:
在这里给出相应的输出。例如:

3628800

a=input().split(',')
s=1
for i in range(0,len(a)):
    s=int(a[i])*int(s)
print(s)

物联沃分享整理
物联沃-IOTWORD物联网 » Python PTA 实验三 组合数据类新

发表评论