sdut-python-实验五-函数、模块、包(编程题)

发布时间:2026/7/26 2:41:30

sdut-python-实验五-函数、模块、包(编程题) 7-1 sdut-求全排列分数 10作者 周雪芹单位 山东理工大学输入整数n3n7编写程序输出1,2,...,n整数的全排列按从小到大的顺序输出。提示求全排列的过程定义为一个函数输入参数为包含n个元素的列表返回值为包含全排列的列表。输入格式:在一行内输入正整数n。输出格式:按数值从小到大的顺序输出1到n的全排列。每种排列占一行数字间无空格。输入样例:3输出样例:123132213231312321实现代码from itertools import permutations nint(input()) for s in permutations(range(1,1n)): for i in str(s): if i.isdigit(): print(i,end) print()7-3 sdut-列表数字元素加权和(2)分数 10作者 周雪芹单位 山东理工大学输入一个嵌套列表嵌套层次不限根据层次求列表元素的加权和。第一层每个元素 的值为元素值*1第二层每个元素的值为元素值*2第三层每个元素的值为元素值*3 ...,以此类推输入格式:在一行中输入列表。输出格式:在一行中输出元素加权之和。输入样例:[1,2,[3,4,[5,6],7],8]输出样例:72实现代码def fun(l,d): sum 0 for i in l: if isinstance(i,int): sumi*d elif isinstance(i,list): sumfun(i,d1) return sum leval(input()) d1 print(fun(l,d))7-4 sdut-列表或元组的数字元素求和yeild)分数 10作者 周雪芹单位 山东理工大学求列表中数字和列表中嵌套层次不限。输入格式:在一行中输入列表或元组。输出格式:在一行中输出数字的和。输入样例:[11,2,[3,7],(68,-1),123,9]输出样例:99实现代码def fun(l): sum0 for i in l: if isinstance(i,int): sumi elif isinstance(i,list): sumfun(i) elif isinstance(i,tuple): sumfun(i) return sum leval(input()) print(fun(l))7-6 sdut-学生互助组队分数 10作者 周雪芹单位 山东理工大学“一对一学习互助小组”是中小学中常见的学习组织方式老师把学习成绩靠前的学生跟学习成绩靠后的学生排在一组。请你编写程序帮助老师完成这个分配工作即在得到全班学生的排名后在当前尚未分组的学生中将名次最靠前的学生与名次最靠后的异性学生分为一组。输入格式:第一行给出正偶数N≤50即全班学生的人数。此后N行按照名次从高到低的顺序给出每个学生的性别0代表女生1代表男生和姓名不超过8个英文字母的非空字符串以1个空格分隔。这里保证本班男女比例是1:1并且没有并列名次。输出格式:每行输出一组两个学生的姓名其间以1个空格分隔。名次高的学生在前名次低的学生在后。小组的输出顺序按照前面学生的名次从高到低排列。输入样例:80 Amy1 Tom1 Bill0 Cindy0 Maya1 John1 Jack0 Linda输出样例:Amy JackTom LindaBill MayaCindy John实现代码nint(input()) tn//2 l[] l0[] l1[] while n: n-1 x,ymap(str,input().split()) l.append(y) xint(x) if x0: l0.append(y) else: l1.append(y) ab0 for i in range(t): if l[i] in l0: print(l[i],l1[t-1-a]) a1 else: print(l[i], l0[t-1 - b]) b 17-7 sdut-求指定层的元素个数分数 10作者 周雪芹单位 山东理工大学输入一个嵌套列表再输入层数求该层的元素个数。输入格式:第一行输入列表第二行输入层数。输出格式:在一行中输出元素个数。输入样例:[1,2,[3,4,[5,6],7],8]3输出样例:2实现代码def fun(l,n,d): sum0 if nd: return len(l) else: for i in l: if isinstance(i,list): sumfun(i,n,d1) return sum leval(input()) nint(input()) d1 print(fun(l,n,d))7-6 sdut-oop-8 分数四则运算分数 10作者 周雪芹单位 山东理工大学定义类Fraction在其中定义属性:numerator和denominator分别表示分子和分母。然定再定义两个分数的加、减、乘、除运算的方法。在主类中输入2个分数计算它们的四则运算结果。提示若用Python语言来实现不必自行创建类可直接使用 fractions模块处理分数的表示与运算。输入格式:第一行是整数N表示待进行分数四则运算式子的数量。接下来包含N行输入。每行数据是一个字符串格式是a/boc/d。其中a, b, c, d为数字每个数字保证在int类型范围内为正数并且不存在正号。o是运算符或者-,*,。输出格式:对于每一行分数四则运算输出一行计算结果。注意结果应符合书写习惯没有多余的符号、分子、分母并且化简至最简分数形式。输入样例:51/1003/1001/4-1/21/3-1/31/2*2/11/2\1/2输出样例:1/25-1/4011实现代码from fractions import Fraction nint(input()) while n: n-1 sinput() if in s: x,ys.split() print(Fraction(x)Fraction(y)) elif - in s: x, y s.split(-) print(Fraction(x) - Fraction(y)) elif * in s: x, y s.split(*) print(Fraction(x) * Fraction(y)) elif \\ in s: x, y s.split(\\) print(Fraction(x) / Fraction(y))7-7 sdut-分数加减法分数 10作者 周雪芹单位 山东理工大学编写一个程序实现两个分数的加减法。输入格式:输入包含多行数据。每行数据是一个字符串格式是a/boc/d。其中a, b, c, d是一个0-9的整数。o是运算符或者-。输出格式:对于输入数据的每一行输出两个分数的运算结果。注意结果应符合书写习惯没有多余的符号、分子、分母并且化简至最简分数。输入样例:在这里给出一组输入。例如1/83/81/4-1/21/3-1/3输出样例:在这里给出相应的输出。例如1/2-1/40实现代码from fractions import Fraction while True: try: sinput() if in s: x,ys.split() print(Fraction(x)Fraction(y)) else: x, y s.split(-) print(Fraction(x) - Fraction(y)) except: break

相关新闻