当前位置: 代码迷 >> 综合 >> PTA-浙大版《Python 程序设计》AC解答汇总-第六章
  详细解决方案

PTA-浙大版《Python 程序设计》AC解答汇总-第六章

热度:114   发布时间:2023-09-26 22:32:37.0
# 第6章-1 输入列表,求列表元素和(eval输入应用) (10分)
def demo_6_1():print(sum(eval(input())))  # 第6章-2 一帮一 (15分)
def demo_6_2():n = int(input())stu = []woman = []man = []for i in range(n):t = input().split()stu.append(t)if t[0] == '0':woman.append(t[1])else:man.append(t[1])for i in range(n//2):if stu[i][0] == '0':print(woman.pop(0),man.pop())else:print(man.pop(0),woman.pop())# 第6章-3 列表或元组的数字元素求和 (20分)
def demo_6_3():def f(string):res=[]for x in string:if type(x)==list or type(x)==tuple:for son in f(x):res.append(son)elif type(x)==type(1):res.append(x)return resstring=eval(input())print(sum(f(string)))# 第6章-4 列表数字元素加权和(1) (40分)
def demo_6_4():def f(lists,weight):res=[]for x in lists:if type(x)==list:for son in f(x,weight+1):res.append(son)elif type(x)==type(1):res.append(x*weight)return resstring=eval(input())print(sum(f(string,1)))# 第6章-5 列表元素个数的加权和(1) (40分)
def demo_6_5():def f(lists,weight):res=[]for x in lists:if type(x)==list:for son in f(x,weight+1):res.append(son)elif type(x)==type(1):res.append(weight)return resstring=eval(input())print(sum(f(string,1)))# 第6章-6 求指定层的元素个数 (40分)
def demo_6_6():def f(lists,weight):res=[]for x in lists:if type(x)==list:for son in f(x,weight+1):res.append(son)elif type(x)==type(1):res.append(weight)return resstring=eval(input())level=int(input())print(f(string,1).count(level))# 第6章-7 找出总分最高的学生 (15分)
def demo_6_7():class stu:def __init__(self,id,name,s1,s2,s3):self.id=idself.name=nameself.s=int(s1)+int(s2)+int(s3)n=int(input())res=stu(0,0,0,0,0)for i in range(n):id,name,s1,s2,s3=input().split()t=stu(id,name,s1,s2,s3)if t.s>res.s:res=tprint(res.name,res.id,res.s)# 第6章-8 *输出全排列(选作) (20分)
def demo_6_8():def f(string,x):if x not in string:string+=xif len(string)<n:for x in num:f(string,x)else:res.append(string)n=int(input())num=[str(x) for x in range(1,n+1)]res=[]for x in num:f("",x)print(*res,sep="\n")