Python实验四 Python序列结构

7-1 sdut-ASCII码排序

while 1:
    try:
        s = input()
        ls = list(s)
        ls.sort()
        print(" ".join(i for i in ls))
    except:
        break

7-2 sdut-数据逆序

while True:
    try:
        ls = []
        ls = list(map(int, input().split()))
        ls.reverse()
        for i in range(len(ls) - 1):
            print(ls[i], end = ' ')
        print(ls[(len(ls) - 1)])
    except:
        break

7-4 sdut-统计身高超过平均值的学生

ls = list(map(int, input().split()))
sum = sum(ls)
ave = sum/(len(ls))
for i in ls :
    if i > ave:
        print(i, end = " ")

7-5 sdut-求整数的位数及各位数字之和

n = int(input())
s = str(n)
print(len(s), end = " ")
ans = 0
for i in range(len(s)) :
    ans += int(s[i])
print(ans)

7-6 sdut-字母替换

str = input()
s = ""
for i in range(len(str)) :
    if str[i].isupper() :
        s += chr(155 - ord(str[i]))
    else :
        s += str[i]
print(s)

7-7 sdut-输出字母在字符串中位置索引

st = input()
a, b = map(str, input().split())
for i in range(len(st) - 1, -1, -1) :
    if(st[i] == a[0]) :
        print(i, a[0])
    elif st[i] == b[0] :
        print(i, b[0])

7-8 sdut- 输出10个不重复的英文字母

str = input()
cnt = 0
s = ""
for i in range(len(str)) :
    if(str[i].isalpha()):
        if(cnt < 10 and str[i].upper() not in s and str[i].lower() not in s) :
            cnt += 1
            s += str[i]
if(cnt < 10) :
    print("not found")
else :
    print(s)

7-9 sdut-判断两个字符串是否为变位词

s = input()
s = list(s)
t = input()
t = list(t)
s.sort()
t.sort()
if s == t :
    print("yes")
else :
    print("no")

7-10 sdut-猴子选大王

n = int(input())
p = 0
for i in range(2, n + 1) :
    p = (p + 3) % i
print(p + 1)

7-11 sdut-找出两组数据中非公共元素

lis1 = list(input().split())
lis2 = list(input().split())
lis = []
for i in lis1 :
    if i not in lis2 :
        lis.append(i)
for i in lis2 :
    if i not in lis1 :
        lis.append(i)

print(*lis, sep=' ')

7-13 sdut-矩阵行、列、对角线和的最大值

num=list(map(int,input().split()))
l=[]
l.append(num[0]+num[4]+num[8])
l.append(num[2]+num[4]+num[6])
for i in range(0,6,3):
    l.append(num[i]+num[i+1]+num[i+2])
for j in range(0,3):
    l.append(num[j]+num[j+3]+num[j+6])
print(max(l))

7-15 sdut-打印显示直角字母图形

s="ABCDEFGHIJ"
n=int(input())
for i in range(n):
    for j in range(i+1):
        print(s[j],end='')
    print()

7-17 sdut-array2-5 打印“杨辉三角“ 品中国数学史 增民族自豪感(2)

n = int(input())
ls = [[1]]

for i in range(1, n):
    row = [1]
    for j in range(1, i):
        row.append(ls[i - 1][j] + ls[i - 1][j - 1])
    row.append(1)
    ls.append(row)

cnt = n * 2 - 2
for i in range(n):
    print(' ' * cnt, end = '')
    for j in range(i + 1):
        print("%-4d" %ls[i][j], end = '')
    print()
    cnt -= 2
    

7-18 sdut-列表去重

ls1 = eval(input())
ls2 = sorted(set(ls1), key=ls1.index)
print(*ls2, sep=' ')

7-19 sdut-期末考试之排名次

n = int(input())
ls = []
for i in range(n):
    ls.append(sum(map(int, input().split())))
ls.sort(reverse=True)
for it in ls:
    print(it)

7-20 sdut- 矩阵转置(II)

n, m = map(int, input().split())
ls = []
for i in range(n):
    ls.append(list(map(int, input().split())))
ls_re = list(zip(*ls))
for i in range(m):
    print(*ls_re[i], sep=' ')

7-23 sdut-对称矩阵的判定

while True:
    n = int(input())
    if n == 0:
        break
    else:
        ls, flag = [], 1
        for i in range(0, n):
            ls.append(list(input().split()))
        for i in range(n):
            for j in range(n):
                if ls[i][j] != ls[j][i]:
                    flag = 0
        if flag == 0:
            print("no")
        else:
            print("yes")

7-18 sdut-查验身份证

lis=[7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]
M=[1,0,"X",9,8,7,6,5,4,3,2]
n=int(input())
al=0
for i in range(n):
    sum=0
    lt=input()
    if lt[:-1].isdigit():
        ans=list(map(int,lt[:-1]))
        for i in range(len(ans)):
            sum+=lis[i]*ans[i]
        sum=sum%11
        if str(M[sum])!=lt[-1]:
            print(lt)
        else:
            al+=1
    else:
        print(lt)
if al==n:
    print("All passed")

7-19 sdut-统计两个字符串中相同的字符个数

a = input()
b = input()
sum = 0
for i in set(a):
    if i in set(b):
        sum += 1
print(sum)

7-20 sdut-分析每队活动投票情况

l=list(map(int,input().split(',')))
s=[]
q=[]
for j in range(1,6):
    if j not in l:
        q.append(j)
print(*q,sep=' ')
for i in range(6,11):
    if i not in l:
        s.append(i)
print(*s,sep=' ')

7-21 sdut-统计字符在字符串中出现的次数

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

7-22 sdut-四则运算(用字典实现)

a = float(input())
op = input()
b = float(input())
d = {'+':a+b, '-':a-b, '*':a*b, '/':a/b if b!=0 else "divided by zero"}
res = d[op]
if type(res)==float:
    print("%.2f"%res)
else:
    print(res)

7-23 sdut-统计工龄

n = int(input())
ls1 = list(map(int, input().split()))
dic = {}
for it in ls1:
    dic[it] = dic.get(it, 0) + 1
ls2 = sorted(dic.keys())
for i in ls2:
    print("%d:%d" % (i, dic[i]))

7-24 sdut-字典合并

dict1 = dict(eval(input()))
dict2 = dict(eval(input()))
list1 = []
for i in dict1:
    if i in dict2:
        dict2[i] += dict1[i]
    else:
        dict2[i] = dict1[i]
for i in dict2:
    list1.append(i)
list2 = list(set(list1))
list3 = []
list4 = []
for i in list2:
    if isinstance(i, str):
        list3.append(i)
        list4.append(ord(i))
    else:
        list4.append(i)
dict3 = {}
for i in dict2:
    if isinstance(i, str):
        dict3[ord(i)] = dict2[i]
    else:
        dict3[i] = dict2[i]
for i in sorted(list4):
    if chr(i) not in list3:
        print("%s:%s" % (i, dict3[i]))
    else:
        print("'%s':%s" % (chr(i), dict3[i]))

7-25 sdut-集合相等问题

n = int(input())
a = list(map(int, input().split()))
b = list(map(int, input().split()))
a.sort()
b.sort()
a = set(a)
b = set(b)
if a == b:
    print("YES")
else :
    print("NO")

7-26 sdut-植物与颜色

ls1 = ['red', 'orange', 'yellow', 'green', 'blue', 'violet']
ls2 = ['Rose', 'Poppies', 'Sunflower', 'Grass', 'Bluebells', 'Violets']
dic = dict(zip(ls1, ls2))
n=int(input())
for i in range(n):
    col=input()
    if col in ls1:
        print("%s are %s."%(dic[col],col))
    else:
        print("I don't know about the color %s."%col)

7-27 sdut-众数

while True:
    try:
        n=int(input())
        ls=list(map(int,input().split()))
        num=max(ls,key=ls.count)
        print(num,ls.count(num))
    except EOFError:
        break

  • 3
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值