python PTA合集

本文涵盖了Python编程中的多种字符串处理任务,包括可逆素数计算、十六进制转换、字符串拆分求和、元音字母计数、分段函数计算、字典操作、变位词判断等。还涉及到了数字三角形、汉明距离、完全数计算、循环逻辑判断等算法问题。此外,文章还讨论了如何处理数组、字典、集合、字符串的组合和排序,以及循环与布尔逻辑的应用。
摘要由CSDN通过智能技术生成

**************传送门**************

可逆素数 (30 分)

输入两个正整数m和n,且m<n,求[m,n]之间的可逆素数列表。可逆素数:素数的各位数字顺序颠倒后得到的数仍是素数

输入格式:
分行输入m和n

输出格式:
输出可逆素数列表

输入样例1:
50
100
结尾无空行
输出样例1:
[71, 73, 79, 97]
结尾无空行
输入样例2:
200
300
结尾无空行
输出样例1:
no exit
结尾无空行

a = int(input())
b = int(input())
y = [0] * (b + 1)
y[2] = 1
y[3] = 1
y[1] = 0
for i in range(4, b + 1):
    if i % 2 == 0:
        y[i] = 0
    else:
        y[i] = 1
for i in range(3, b + 1):
    t = 3
    while (i* t < b + 1):
        y[i*t] = 0
        t = t + 2
o=[]
for i in range(a,b+1):
    if int(str(i)[::-1])<b+1:
        if y[i]==1 and y[int(str(i)[::-1])]==1:
            o.append(i)
if len(o)==0:
    print("no exit")
else:print(o)


把字符串中十六进制字符转换成十进制整数 (25 分)

输入一个字符串,本题要求滤去所有的非十六进制字符(不分大小写),组成一个新的表示十六进制数字的字符串,然后将其转换为十进制数后输出。如果在第一个十六进制字符之前存在字符“-”,则代表该数是负数。如果没有十六进制字符,不输出任何信息;-0和0都输出为0。

输入格式:
输入一行非空字符串。

输出格式:
在一行中输出转换后的十进制数,或没有任何输出。

输入样例1:
±P-xf4±1!
结尾无空行
输出样例1:
-3905
结尾无空行
输入样例2:
±nn*)±lp
结尾无空行
输出样例2:
结尾无空行

s = input()
re = '1234567890abcdefABCDEF'

lst = ""
for i in s:
    if i in re:
        lst =lst + i

if lst == '':
    print('')
elif s.find('-')< s.find(lst[0]):
    print(-int(lst,16))
else:
    print(int(lst,16))

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

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

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

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

输入样例:
1; 2 ,3
2 3; 4
10,20 30; 40
9
结尾无空行
输出样例:
1; 2 ,3:6
2 3; 4:9
10,20 30; 40:100
9:9
结尾无空行

import re

while True:
  try:
    t = 0
    b = input()
    if b == '\n':
        break
    if len(b) == 0:
        break
    a = re.split(',| |;', b)

    for i in a:
        if i.isdigit():
            t += int(i)
    print(b + ":" + str(t))
  except:
      break

统计并输出字符串中小写元音字母的个数 (30 分)

输入一个以换行结束的字符串,统计并输出字符串中小写元音字母的个数(小写元音字母: ‘a’,‘e’,‘i’,‘o’,‘u’)。

输入格式:
在一行中输入字符串

输出格式:
在一行中输出字符串中小写元音字母的个数

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

HelloI
结尾无空行
输出样例:
在这里给出相应的输出。例如:

2
结尾无空行

s=input()
t=0
for i  in s:
    if i=="a" or i=="e" or i=="i" or i=="o" or i=="u":
        t+=1
print(t)

JMU-Python-分段函数 (20 分)

本题目要求根据以下分段函数的定义,计算输入的浮点数x对应的y值,输出结果保留两位小数。注意:使用math库

Snap7.bmp

输入格式:
在一行中输入x的值。

输出格式:
计算结果保留两位小数输出。

输入样例1:
-1
结尾无空行
输出样例1:
0.00
结尾无空行
输入样例2:
3.5
结尾无空行
输出样例:
1.88
结尾无空行

import  math
x=float(input())
m=0
if x>3.5:
    m=math.cos(x)+math.e**x
if x>0 and x<=3.5:
    m=math.tan(x)+math.log(1+x,math.e)
if x<=0:
    m=0
print("%.2f"%m)

集合和列表,按从小到大的顺序组合成一个字典 (10 分)

有二个长度一样的集合和列表,按从小到大的顺序组合成一个字典。

输入格式:
输入二个长度一样的集合和列表,集合元素全部为整型,列表元素全部为字符串型。

输出格式:
组合后的字典。

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

{1,2,6,5,3,4}
[‘aa’,‘cc’,‘bb’,‘d’,‘f’,‘e’]
结尾无空行
输出样例:
在这里给出相应的输出。例如:

{1: ‘aa’, 2: ‘bb’, 3: ‘cc’, 4: ‘d’, 5: ‘e’, 6: ‘f’}
结尾无空行

a = list(eval(input()))
b = list(eval(input()))
d = {}
a = sorted(a)
b = sorted(b)
for i ,y in zip(a,b):
    d.update({i:y})
print(d)

字符串判等 (10 分)

判断两个由大小写字母和空格组成的字符串在忽略大小写,且忽略空格后是否含有完全相同的字母。

输入格式:
两行,输入两个由大小写字母和空格组成的字符串

输出格式:
若两个字符串含有完全相同的字母(不区分大小写),输出YES,否则输出NO。

输入样例1:
This is a pencil
this is an apple
结尾无空行
输出样例1:
NO
结尾无空行
输入样例2:
Hello World
hello word
结尾无空行
输出样例2:
YES
结尾无空行

a=input()
b=input()
a=a.upper()
b=b.upper()
t=0
a=a.replace(" ","")
b=b.replace(" ","")
for i in a:
    if i not in b:
            t+=1
for y in b:
    if y not in a:
            t+=1
if  t==0:
    print("YES")
else:print("NO")

字符串相减 (100 分)

本题要求你计算A-B。不过麻烦的是,A和B都是字符串 —— 即从字符串A中把字符串B所包含的字符全删掉,剩下的字符组成的就是字符串A-B。

输入格式:
输入在2行中先后给出字符串A和B。每个字符串都是由可见的ASCII码组成,最后以换行符结束。

输出格式:
在一行中打印出A-B的结果字符串。

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

I love Python! It’s a fun game!
aeiou
结尾无空行
输出样例1:
在这里给出相应的输出。例如:

I lv Pythn! It’s fn gm!
结尾无空行
输入样例2:
在这里给出一组输入。例如:

good
aeiougd
结尾无空行
输出样例2:
在这里给出相应的输出。例如:

结尾无空行

a=input()
b=input()
for i in a:
    if i not in b:
        print(i,end="")

能被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=input().split()
a=int(m[0])
b=int(m[1])
s=""
t=0
for i in range(a,b):
    if i %3==0 and i %5==0 and i%7==0:
        t+=1
print(t)


字典输入输出 (15 分)

从键盘输入一个字典,将该字典的键和值对换后输出。

输入格式:
从键盘输入一个字典。

输出格式:
将该字典的键和值对换后输出。

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

{1:‘a’,2:‘b’,3:‘c’}
结尾无空行
输出样例:
在这里给出相应的输出。例如:

{‘a’: 1, ‘b’: 2, ‘c’: 3}
结尾无空行

dict_ori = eval(input())
dict_new = {value:key for key,value in dict_ori.items()}
print(dict_new)

统计字符频次 (10 分)

输入一个字符串,输出其中出现次数最多的字符及其出现的次数,要求使用字典。

输入格式:
输入任意长度字符串。

输出格式:
字符串中出现次数最多的字符及其次数。

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

abcdsekjsiejdlsjdiejsl
结尾无空行
输出样例:
在这里给出相应的输出。例如:

(‘s’, 4)
结尾无空行

import collections
s=input()
t=0
d=collections.Counter(s)
for i in sorted(d.items(),key=lambda x:x[1],reverse=True):
    if t==1:
        break
    print(i)
    t+=1

统计字符串中每个字符出现的次数 (10 分)

本题目要求读入一个字符串,统计字符串中每个字符出现的次数,输出结果按次数降序排序。

输入格式:
输入一行由任意字符组成的字符串。

输出格式:
输出每个字符出现的次数,输出结果按次数降序排序。

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

This is a good idea.
结尾无空行
输出样例:
在这里给出相应的输出。例如:

: 4
i : 3
s : 2
a : 2
o : 2
d : 2
T : 1
h : 1
g : 1
e : 1
. : 1
结尾无空行

import collections
s=input()
d=collections.Counter(s)
for i in sorted(d.items(),key=lambda x:x[1],reverse=True):
    print(i[0],end=" : ")
    print(i[1])

成绩统计2 (10 分)

输入一个正整数n(n>=1),然后输入n行数据,表示的是某班各位同学的各科成绩(每位同学的考试科目都相同),请统计出各门课程的平均分(保留2位小数)。

输入格式:
先一个正整数n(n>=1),然后输入n行数据

输出格式:
输出各门课程的平均分

输入样例:
2
{‘语文’:95,‘数学’:82,‘英语’:75}
{‘语文’:98,‘数学’:72,‘英语’:85}
结尾无空行
输出样例:
语文:96.50
数学:77.00
英语:80.00
结尾无空行

n = int(input())
s = {}
t = 0
for i in range(n):
    s1 = eval(input())
    if t != 0:
        for o in s1.keys():
            s1[o] = (s[o] + s1[o])
    s.update(s1)
    t += 1
for i in s.items():
    print(i[0],end=":")
    print("%.2f"%(i[1]/n))

计算积分 (15 分)

女排世界杯参赛队伍为12只,比赛采取单循环方式,五局三胜制,比赛以3-0或者3-1取胜的球队积3分、负队积0分,以3-2取胜的球队积2分、负队积1分;输入n,及n支球队的比分情况,编写程序计算各队的积分,并从高到低排序输出。

输入格式:
先输入一行n表示有n(n>=2)支球队 再输入n行数据表示各队的比分情况,球队名称(不重复)和比分之间用:(英文)分隔,比分用-分隔,如3-0表示该球队获胜,0-3表示该球队输球,每场比分之间用逗号分隔。

输出格式:
按积分从高到低排序,输出球队名称及积分

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

2
中国队:3-0,3-1,3-2,3-1,3-0
美国队:3-1,3-1,0-3,1-3,2-3
结尾无空行
输出样例:
在这里给出相应的输出。例如:

中国队 : 14
美国队 : 7
结尾无空行`

n = int(input())
import re
d={}
for i in range(n):
    t = 0
    s = input().split(":")
    s1 = s[1].split(",")
    for i in s1:
        if i == "3-0" or i == "3-1":
            t += 3
        if i == "1-3" or i == "0-3":
            t += 0
        if i=="3-2":
            t+=2
        if i =="2-3":
            t+=1
    d.update({s[0]:t})
s=str(sorted(d.items(),key=lambda x:x[1],reverse=True))
s=s.replace("), ('","\n")
s=s.replace(", "," : ")
print(re.sub("[\[+(+)+'+\]+]","",s))

提取数字字符 (10 分)

本题目要求读入一个字符串,提取字符串中的数字字符,连接成最大整数后输出。

输入格式:
输入一行由任意字符组成的字符串。

输出格式:
提取字符串中的数字字符,连接成最大整数后输出。如果不含数字字符,则打印“no”。

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

ssd923ck63,01az…m
结尾无空行
输出样例:
在这里给出相应的输出。例如:

9633210
结尾无空行
输入样例:
在这里给出一组输入。例如:

Hello Python!
结尾无空行
输出样例:
在这里给出相应的输出。例如:

no
结尾无空行

import string
s=input()
y=[]
for i in s :
    if i.isdigit():
        y.append(i)
y=list(map(int,y))
y=sorted(y,reverse=True)
if len(y)==0:
    print("no")
else:
    for i in y:
     print(i,end="")

判断两个字符串是否为变位词 (40 分)

如果一个字符串是 另一个字符串的重新排列组合,那么这两个字符串互为变位词。比如,”heart”与”earth”互为变位 词,”Mary”与”arMy”也互为变位词。

输入格式:
第一行输入第一个字符串,第二行输入第二个字符串。

输出格式:
输出“yes”,表示是互换词,输出“no”,表示不是互换词。

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

Mary
arMy
结尾无空行
输出样例1
在这里给出相应的输出。例如:

yes
结尾无空行
输入样例2:
在这里给出一组输入。例如:

hello 114
114 hello
结尾无空行
输出样例2:
在这里给出相应的输出。例如:

yes
结尾无空行
输入样例3:
在这里给出一组输入。例如:

Wellcom
mocllew
结尾无空行
输出样例3:
在这里给出相应的输出。例如:

no
结尾无空行

a = input()
b=input()
f=0
if len(a)!=len(b):
    f=1
if len(a)==len(b):
    for i in a:
        if i not in b:
            f=1
if f==1:
    print("no")
else:
    print("yes")

两数之和 (30 分)

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

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

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

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

2,7,11,15
9
结尾无空行
输出样例1:
在这里给出相应的输出。例如:

0 1
结尾无空行
输入样例2:
在这里给出一组输入。例如:

3,6,9
10
结尾无空行
输出样例2:
在这里给出相应的输出。例如:

no answer
结尾无空行

s = input().split(",")
n = int(input())
s = list(map(int, s))
f=0
for i in range(len(s)):
    a = n - int(s[i])
    if a in s:
        print(i, s.index(a))
        f = 1
        break
if f == 0:
    print("no answer")

字典合并 (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}

d1=eval(input())
d2=eval(input())
d3={}
for i in d1:
    d3[i]=d1[i]+d2.get(i,0)
for i in d2:
    if i not in d3.keys():
        d3[i]=d2[i]
d3=str(dict(sorted(d3.items(),key=lambda  x:x[0] if type(x[0])==int else ord(x[0]))))
d3=d3.replace(' ','')
d3=d3.replace("'",'"')
print(d3)

计算方阵的和,创建新方阵 (30 分)

输入 1 个正整数 n(1≤n),再按行读入 n 阶方阵 a 和 b, 生成并输出 n 阶方阵 c,c 中的元素是 a 和 b 对应元素的和. c[i][j]=a[i][j]+b[i][j] i,j=0,1,2…n-1(1<=c[i]<=99)

输入格式:
在第一行输入n 在第二行输入a方阵 在第一行输入b方阵

输出格式:
输出c方阵

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

3
1 2 3 4 5 6 7 8 9
2 3 4 5 6 7 8 9 1
结尾无空行
输出样例:
在这里给出相应的输出。例如:

3 5 7
9 11 13
15 17 10
结尾无空行

n = int(input())
a = input().split()
b = input().split()
s = []
for i in range(len(a)):
    s.append(int(a[i]) + int(b[i]))
for i in range(len(a)):

    if i % n == 0 and i != 0:
        print()

    print("{:2d} " .format( s[i]), end="")


输出一个 n 阶的方阵 (30 分)

读入 1 个正整数 n(3≤n<9)和 1 个整数 digit(2<=digit<=9), 请输出一个 n 阶的方阵, 该矩阵所有边上的元素都是 digit, 其它元素都是 digit-1.

输入格式:
在一行中输入n和digt

输出格式:
输出n 阶的方阵

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

4 2
结尾无空行
输出样例:
在这里给出相应的输出。例如:

2 2 2 2
2 1 1 2
2 1 1 2
2 2 2 2
结尾无空行

m=input().split()
a=int(m[0])
b=int(m[1])
for i in range (a):
    if i ==0 or i==a-1:
        for j in range (a) :
            print(b,end=" ")
            if j==a-1:
                print()
    else:
        for j in range(a):
            if j==0 or j==a-1:
                print(b,end=" ")
            else:
                print(b-1,end=" ")
            if j==a-1:
                print()

统计字符串中不同种类的字符个数 (10 分)

本题目要求读入一个字符串,统计字符串中字母、数字、空格、其它字符的个数。

输入格式:
输入一行由任意字符组成的字符串。

输出格式:
统计字符串中字母、数字、空格、其它字符的个数。

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

2a and Am3,MNak888!..
结尾无空行
输出样例:
在这里给出相应的输出。例如:

letters=10,digits=5,spaces=2,others=4
结尾无空行

s = input()
import string
dight=0
let=0
sp=0
o=0
for i in s:
    if i in string.digits:
        dight+=1
    elif i in string.ascii_letters:
        let+=1
    elif i==" ":
        sp+=1
    else:
        o+=1
print("letters={},digits={},spaces={},others={}".format(let,dight,sp,o))

汉明距离 (30 分)

两个整数间的汉明距离指的是这两个数对应二进制位不同的位置的数目。输入两个整数x,y, 0<=x,y<=2
31
。输出x,y的汉明距离。

输入格式:
在一行输入x,y。

输出格式:
在一行输出x,y汉明距离。

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

1 4
结尾无空行
输出样例:
在这里给出相应的输出。例如:

2
结尾无空行

s = input().split()
a = bin(int(s[0]))[2::]
b = bin(int(s[1]))[2::]
t = 0
if (len(a) > len(b)):
    b="0"*(len(a)-len(b))+b
else:
    a="0"*(len(b)-len(a))+a
for i in range (len(b)):
        if b[i] !=a[i]:
            t+=1
        t+=(len(a)-len(b))
print(t)

阶乘应用 (70 分)

输入大于1的正整数m,计算1×2×3×4×5…×n的积小于m时最大的n。

输入格式:
输入大于1的正整数m

输出格式:
输出n的值

输入样例:
20000
结尾无空行
输出样例:
n= 7
结尾无空行

import math
s=0
i=1
n=int(input())
while(1):
    s=math.factorial(i)
    if s>=n:
        break
    else:i+=1
print("n= %d"%(i-1))

分班统计最喜欢的节目 (10 分)

学校举办的了迎新晚会,1班,2班两个新生班各自统计好班里同学最喜欢的节目。节目编号由一个大写字母代表。统计结果分别已经存放到两个字典中。字典元素的键是节目编号,元素的值是相应节目获得的票数,没有人喜欢的节目不用记录。如:字典{‘Q’:10,‘A’:22,‘X’:28} 表示,喜欢Q节目的有10位同学,喜欢A节目的有22位同学,喜欢X节目的有28位同学。输入两个班级的统计结果。将合并后的统计结果按节目编号的字母顺序打印出来。(注意,如果1班有10个同学喜欢Q节目,2班有15个同学喜欢Q节目,则合并后,有25个同学喜欢Q节目)

输入格式:
输入两个字典,一行一个。字典元素的键是节目编号(大写字母),元素的值是相应节目获得的票数。

输出格式:
按字母顺序输出合并后的统计结果。每个节目占一行,以“节目编号:统计票数”的形式打印。

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

{‘Q’:10,‘A’:22,‘X’:28}
{‘A’:30,‘D’:1,‘Q’:15,‘B’:13}
结尾无空行
输出样例:
在这里给出相应的输出。例如:

A:52
B:13
D:1
Q:25
X:28
结尾无空行

a = eval(input())
b = eval(input())
for i in b:
    if i in a:
        a.update({i:a[i]+b[i]})
    else:
        a.update({i:b[i]})
a=sorted(a.items(),key=lambda x:x[0])
a=str(a).replace("', ",":")
a=a.replace(" ","")
a=str(a).replace(",","\n")
a=str(a).replace("('","")
a=a.replace("[","")
a=a.replace("]","")
a=a.replace(")","")
print(a)

考拉兹猜想(高教社,《Python编程基础及应用》习题6-11) (4 分)

考拉兹猜想(Collatz conjecture)又称奇偶归一猜想,是指对于每一个正整数,如果它是奇数,则对它乘3再加1,如果它是偶数,则对它除以2。 如此循环,最终都能得到1。编写一个程序,输入一个正整数,打印其考拉兹序列。

输入格式:
1个>1的正整数

输出格式:
以逗号分隔的考拉兹序列。

输入样例:
5
结尾无空行
输出样例:
16,8,4,2,1
结尾无空行

n = int(input())
while (1):
    if n==1:
        break
    if n % 2 ==0:
        n=n/2
    else:
        n=n*3+1
    if n!=1:
     print(int(n),end=",")
print(1)

找出肇事者,循环与布尔逻辑(高教社,《Python编程基础及应用》习题6-6) (6 分)

在视线不太好的黑夜一司机撞伤行人之后逃逸,有3个目击者记住了该车的部分车号特征。 甲说:“车牌号的前两位相同,且末位数是奇数”;乙说:“车牌号的后两位加起来等于5”; 丙说:“车牌号是一个N位数,并且能被3整除”。请你写一个程序,该程序接受一个正整数N(>=3), 找出肇事车可能的车牌号。

输入格式:
一个>=3的正整数

输出格式:
全部可能的车牌号(一行一个,按递增序)

输入样例:
3
结尾无空行
输出样例:
441
结尾无空行

n = int(input())

for i in range(1, 10):
    t = ""
    t += str(i)
    t += str(i)
    m = str(int(t)+1)
    for j in range(n - 2):
        t += "0"
        m += "0"
    for i in range(int(t), int(m)):
        if i%3==0 and int(str(i)[n-1])+int(str(i)[n-2])==5 and int(str(i)[n-1])%2!=0:
            print(i)

求完全数的字典集 (30 分)

本题目要求读入2个正整数m和n,且m<n,求[m,n]之间所有的完全数,并形成字典。完全数:除了自己本身以外所有因子的和等于本身的数。例如6的因子为1,2,3,1+2+3=6,6即为完全数。

输入格式:
以空格分隔输入m,n两个数。

输出格式:
输出得到的字典。

输入样例1:
6 80
结尾无空行
输出样例1:
{6: [1, 2, 3], 28: [1, 2, 4, 7, 14]}
结尾无空行
输入样例2:
-8 -5
结尾无空行
输出样例2:
wrong input
结尾无空行

s=input().split()
a=int(s[0])
b=int(s[1])
d={}
for i in range(a,b+1):
    y=[]
    for j in range(1,i):
        if i%j==0:
           y.append(j)
    if sum(y)==i:
        d.update({i:y})
if len(d)!=0:
    print(d)
else:print("wrong input")

字符串的美化 (10 分)

输入一行以空格作为分隔符的任意字符串,对其按下列要求处理后输出:

删除所有的数字字符
删除单词中的破折号-
删除以@和#字符开头的单词
删除单词尾部有三个点的省略号(…)
输入格式:
输入非空的字符串。

输出格式:
输出处理后的字符串

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

#1: welcome @tom to the2 Basic-building…
结尾无空行
输出样例:
在这里给出相应的输出。例如:

welcome to the Basicbuilding
结尾无空行

s = input()
import re
t=""
s = re.sub("[\d,\-,...,]", "", s)
s=s.split()
for i in s:
    if i[0]=="#" or i[0]=="@":
        continue
    t+=i+" "

print(t.strip())

数字三角形 (10 分)

输入一个正整数n和一个数字字符c,输出n行由字符为c构成的三角形。格式参照输出样例。注意,每行的行末无空格。

输入格式:
首先输入一个正整数T,表示测试数据的组数,然后是T组测试数据。对于每组测试,输入一个正整数n(n≤35)和一个字符c(数字字符)。

输出格式:
对于每组测试,输出数字三角形。

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

2
3 9
9 3
结尾无空行
输出样例:
在这里给出相应的输出。例如:

9
999
99999
3
333
33333
3333333
333333333
33333333333
3333333333333
333333333333333
33333333333333333

n=int(input())
for i in range(n):
    s=input().split()
    a=int(s[0])
    b=int(s[1])
    for i in range(1,a+1):
        for j in range(a-i):
            print(" ",end="")
        for i in range(2*i-1):
            print(b,end="")
        print()

求矩阵每列的最大值 (10 分)

编写程序实现:用3*5的整型矩阵a接收标准输入的数据,计算数组a的每列元素的最大值,并将第i列最大值存入max相应的第i个元素。

输入格式:
标准输入的每一行表示矩阵a中的一行数据,以空格作为间隔。

输出格式:
标准输出的一行表示max中的元素,用空格作为间隔;

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

1 2 3 4 5
6 7 8 9 0
3 5 7 9 1
结尾无空行
输出样例:
在这里给出相应的输出。例如:

6 7 8 9 5
结尾无空行
作者
郭丽
单位
中原工学院
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
Python (python3)

p=""
a=[[0]*5for i in range(3)]
for i in range(3):
    a[i]=list(input().split())
for j in range(5):
    t=[]

    for i in range (3):
        t.append(a[i][j])
    p=p+str(max(t))+" "
print(p)

成绩统计1 (10 分)

输入一个正整数n(n>=1),然后输入n行数据,表示的是某班各位同学的各科成绩,请统计出各门课程的最高分。

输入格式:
先一个正整数n(n>=1),然后输入n行数据

输出格式:
输出各门课程的最高分

输入样例:
2
{‘语文’:95,‘数学’:82,‘英语’:75}
{‘语文’:98,‘数学’:72,‘英语’:85}
结尾无空行
输出样例:
语文:98
数学:82
英语:85
结尾无空行

n=int(input())
d={}
for i in range(n):
    s=eval(input())
    for i in s.items():
        if i[0] not in d:
            d.update({i})
        else:
            if i[1]>d[i[0]]:
                d[i[0]]=i[1]
            else:
                continue
for i in d.items():
    print(i[0],end=":")
    print(i[1])

6-4 写函数求满足要求三位数的个数 (10 分)
要求实现一个函数,统计给定区间内的三位数中至少有两位数字相同的完全平方数(如144、676)的个数。

函数接口定义:
search(n);
其中传入的参数n是一个三位数的正整数。函数search返回[101, n]区间内所有满足条件的数的个数。

裁判测试程序样例:
/* 请在这里填写答案 */

n = int(input())
cnt = search(n)
print (‘count={}’.format(cnt))
输入样例:
500
结尾无空行
输出样例:
count=6
结尾无空行

def search(n):
    cnt = 0
    for x in range(11, 32):
        if x ** 2 > n:
            break
        if len(set(str(x ** 2))) < 3:
            cnt += 1
    return cnt

jmu-python-组合数 (10 分)

本题要求编写程序,根据公式 11.jpg 算出从n个不同元素中取出m个元素(m≤n)的组合数。

输入格式:
输入在一行中给出两个正整数m和n,以空格分隔。

如果输入数据负数,能输出提示不能负数
如果输入数据出发非法数据,能输出提示请输入数值 (数值异常处理)
输出格式:
按照格式result = 组合数计算结果输出。

输入样例:
2 7
结尾无空行
输出样例:
result=21.00
结尾无空行

def judge(m):
    sum = 1
    for i in range(1, m+1):
        sum *= i
    return sum
 
 
def cal(n, m):
    now_n = judge(n)
    now_m = judge(m)
    now_n_m = judge(n-m)
    return now_n/(now_m*now_n_m)
 
 
m, n = list(input().split())
flag = True
flag2 = True
try:
    m, n = int(m), int(n)
except:
    print("请输入数值")
    flag = False
if flag:
    if m > 0 and n > 0:
        print("result={:.2f}".format(cal(n,m)))
    else:
        print("不能负数")

.十进制转十六进制 (10 分)

这是一个编程题模板。请在这里写题目描述。例如:本题目要求读入2个整数A和B,然后输出它们的和。

输入格式:
请在这里写输入格式。例如:输入在一行中给出2个绝对值不超过1000的整数A和B。

输出格式:
请在这里描述输出格式。例如:对每一组输入,在一行中输出A+B的值。

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

31
结尾无空行
输出样例:
在这里给出相应的输出。例如:

31D is 1FH
结尾无空行

import math
x=int(input())
k=list(hex(x))
del k[0]
del k[0]
lenn=len(k)
for i in range(lenn):
    if k[i].isalpha():
        k[i]=k[i].upper()
k=''.join(k)
print('{}D is {}H'.format(x,k))


求指定层的元素个数 (40 分)

输入一个嵌套列表,再输入层数,求该层的数字元素个数。

输入格式:
第一行输入列表 第二行输入层数

输出格式:
在一行中输出元素个数

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

[1,2,[3,4,[5,6],7],8]
3
结尾无空行
输出样例:
在这里给出相应的输出。例如:

2
结尾无空行

a = eval(input())
b = int(input())
def sum(n, j):
    sums = 0
    if isinstance(n, int) and j == b:
        sums += 1
    if isinstance(n, list):
        for i in n:
            sums += sum(i, j + 1)
    return sums
print(sum(a, 0))

列表数字元素加权和(2) (40 分)

输入一个嵌套列表,嵌套层次不限,根据层次,求列表元素的加权和。第一层每个元素
的值为:元素值*1,第二层每个元素的值为:元素值*(-2),第三层每个元素的值为:元素值*3,
第四层每个元素的值为:元素值*(-4),…,以此类推!
输入格式:
在一行中输入列表

输出格式:
在一行中输出加权和

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

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

16
结尾无空行

def f(l,deep):
   sum=0
   for i in l:
      if isinstance(i,int):
         sum+=i*deep*(-1)**(deep+1)
      elif isinstance(i,list):
         sum+=f(i,(deep+1))
   return sum
l=eval(input())
print(f(l,1))

删除多余字符串 (10 分)

输入一行以空格作为分隔符的任意字符串,对其按下列要求处理后输出: 删除所有的数字字符 删除单词中的破折号- 删除以@和#字符开头的单词 删除单词尾部有三个点的省略号(…) 如果所有字符串都被删除掉,输出none

输入格式:
输入非空的字符串。

输出格式:
输出处理后的字符串

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

#1: welcome @tom to the2 Basic-building…
结尾无空行
输出样例:
在这里给出相应的输出。例如:

welcome to the Basicbuilding
结尾无空行
输入样例:
在这里给出一组输入。例如:

#1: #2 @222
结尾无空行
输出样例:
在这里给出相应的输出。例如:

none
结尾无空行

s=input()
a=""
b=""
for i in range(len( s)):
    if s[i]=="." or s[i]=="-" or s[i].isdigit():
        a+=""
    else:
        a+=s[i]
a=a.split()
for i in a:
    if i[0]=="#" or i[0]=="@":
        continue
    else:
        b+=i+" "
b=b.strip()
if len(b)==0:
    print("none")
else:
    print(b)

输出A以内能被B整除的数 (10 分)

本题目要求读入2个不超过100的非0正整数A和B,然后输出(0,A]中所有能被B整除的数。

输入格式:
输入在一行中给出2个不超过100的非零正整数A和B。

输出格式:
对每一组输入,在一行中输出(0,A]中所有能被B整除的数,数字之间用空格分隔,最后一个数字后面没有空格。 如果没有这样的数,输出“None.”

输入样例1:
37 5
结尾无空行
输出样例1:
5 10 15 20 25 30 35
结尾无空行
输入样例2:
37 40
结尾无空行
输出样例2:
None.
结尾无空行

s = input().split()
a = int(s[0])
b = int(s[1])
m = ""
for i in range(1, a+1):
    if i % b == 0:
        m += str(i) + " "
m=m.strip()
if len(m) != 0:
    print(m)
else:print("None.")

jmu-python-逆序输出 (5 分)

输入一行字符串,然后对其进行如下处理。

输入格式:
字符串中的元素以空格或者多个空格分隔。

输出格式:
逆序输出字符串中的所有元素。
然后输出原列表。
然后逆序输出原列表每个元素,中间以1个空格分隔。注意:最后一个元素后面不能有空格。

输入样例:
a b c e f gh
结尾无空行
输出样例:
ghfecba
[‘a’, ‘b’, ‘c’, ‘e’, ‘f’, ‘gh’]
gh f e c b a
结尾无空行

a = input()
b = a.split()
for i in range(len(b) - 1, -1, -1):
    print(b[i], end="")
print()
print(b)
for i in range(len(b)-1,-1,-1):
    print(b[i],end=" "if b[i]!=b[0]else"")

求所有N位的素数和 (15 分)

输入一个正整数n(n>=2),输出所有n位的素数和,如n=2,即输出的是10-99之间的所有素数的和。

输入格式:
一个正整数n(n>=2)

输出格式:
输出所有n位的素数和

输入样例:
2
结尾无空行
输出样例:
10-99之间所有的素数和=1043
结尾无空行

import math

s = int(input())
m = pow(10, s-1)
m1 = pow(10, s )
y = [1] * (m1 + 1)
for i in range(4, m1):
    if i % 2 == 0:
        y[i] = 0
    else:
        y[i] = 1
for i in range(2, int(math.sqrt(m1))):
    p = 3
    while (i * p <= m1):
        y[i * p] = 0
        p += 2
t=0
for i in range(m, m1):
    if y[i] == 1:
        t+=i
print("{}-{}之间所有素数和={}".format(m,m1-1,t))

逢七拍手游戏 (20 分)

逢七拍手游戏规则是:从1 开始顺序数数,数到有包含有7或者7的倍数的时候拍手。编写程序实现逢七拍手游戏,输入整数n ,输出 n 以内(包含n)的需要拍手的数字,数字之间用1个空格分隔。

输入格式:
输入 一个整数

输出格式:
输出满足条件的所以数据,用空格分隔

输入样例:
30
结尾无空行
输出样例:
7 14 17 21 27 28
结尾无空行

s = input()
s1=""
for i in range(1,int(s)):
    if int(i) % 7 == 0:
        s1+=str(i)+" "
    elif "7" in str(i):
        s1+=str(i)+" "
print(s1)

完全数 (10 分)

完全数,指所有的真因子(即除了自身以外的约数)的和,恰好等于它本身。本题目要求读入2个整数A和B,输出该范围内的所有完全数(A<=完全数<=B)。

输入格式:
输入在一行中给出2个整数A和B。

输出格式:
以“完全数=约数1+约数2+…”的格式,输出该范围(A<=完全数<=B)内的所有完全数,每个完全数占一行。若该范围内没有完全数,则打印“no”。

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

1 100
结尾无空行
输出样例:
在这里给出相应的输出。例如:

6=1+2+3
28=1+2+4+7+14
结尾无空行
输入样例:
在这里给出一组输入。例如:

10 20
结尾无空行
输出样例:
在这里给出相应的输出。例如:

no
结尾无空行

import math

s = input()
s = s.split()
a = int(s[0])
b = int(s[1])
p=0
for i in range(a, b):
    t = 0
    m = 0
    c=0
    for j in range(1, i):
        if (i % j == 0):
            t += j
            m += 1
    if (t == i):
        print(t, end="=")
        for o in range(1,t):
            if (t % o == 0):
                c+=1
                if c==m:
                    print(o)
                else:
                    print(o, end="+")
                    p=1
if p==0:
    print("no")

输出倒三角 (100 分)

输入任意一个字符,打印以该字符构成的倒三角形(4行)。

输入格式:
输入一个字符,如:*

输出格式:

输入样例:
*
结尾无空行
输出样例:



*   *
  *

结尾无空行

s=input()
print("{}   {}   {}   {}".format(s,s,s,s))
print("  {}   {}   {}".format(s,s,s))
print("    {}   {}".format(s,s))
print("      {}".format(s))

合并两个列表并去重 (10 分)

输入两个列表alist和blist,要求列表中的每个元素都为正整数且不超过10; 合并alist和blist,并将重复的元素去掉后输出一个新的列表clist。 可以使用以下实现列表alist的输入: alist=list(map(int,input().split())) 同时为保证输出结果一致,请将集合内元素排序之后再输出。 如对于列表alist,可输出sorted(alist)。

输入格式: 共两行,每一行都用来输入列表中的元素值,以空格隔开(可能不至一个空格 )。

输出格式: 共一行,以列表形式打印输出。

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

1 2 3
4 3 2
结尾无空行
输出样例:
在这里给出相应的输出。例如:

[1, 2, 3, 4]
结尾无空行

a=list(map(int,input().split()))
b=list(map(int,input().split()))
for i in b:
    if i not in a:
        a.append(i)
print(sorted(a))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值