7-13 sdut-矩阵行、列、对角线和的最大值分数 10作者 周雪芹单位 山东理工大学求一个3*3矩阵每行、每列及对角线和的最大值。输入格式:在一行输入9个整数。输出格式:在一行输出每行、每列及对角线和的最大值。输入样例:3 6 5 9 8 2 1 4 5输出样例:19实现代码n[int(num) for num in input().split()] sum0 summax(sum,n[0]n[1]n[2]) summax(sum,n[3]n[4]n[5]) summax(sum,n[6]n[7]n[8]) summax(sum,n[0]n[3]n[6]) summax(sum,n[1]n[4]n[7]) summax(sum,n[2]n[5]n[8]) summax(sum,n[0]n[4]n[8]) summax(sum,n[2]n[4]n[6]) print(sum)7-15 sdut-打印显示直角字母图形分数 10作者 周雪芹单位 山东理工大学给定行数输出指定行数的字母组成的图形。输入格式:在一行内给出行数n1n10。输出格式:输出由大小字母组成的直角图形。输入样例1:2输出样例1:AAB输入样例2:7输出样例2:AABABCABCDABCDEABCDEFABCDEFG实现代码nint(input()) aA b65 while n: n-1 print(a) b1 achr(b)7-17 sdut-array2-5 打印“杨辉三角“ 品中国数学史 增民族自豪感2分数 10作者 周雪芹单位 山东理工大学背景介绍北宋人贾宪约1050年首先使用“贾宪三角”进行高次开方运算。南宋数学家杨辉在《详解九章算法》1261年记载并保存了“贾宪三角”故称杨辉三角。杨辉三角是中国数学史上的一个伟大成就。杨辉三角是中国古代数学的杰出研究成果之一它把二项式系数图形化把组合数内在的一些代数性质直观地从图形中体现出来是一种离散型的数与形的结合。中国南宋数学家杨辉1261年所著的《详解九章算法》一书中出现。在欧洲帕斯卡1623----1662在1654年发现这一规律所以这个表又叫做帕斯卡三角形。帕斯卡的发现比杨辉要迟393年比贾宪迟600年。杨辉三角数字的特点为1在三角形的首列和对角线上数值均为12其余数据为每个数字等于上一行的左右两个数字之和第n1行的第i个数等于第n行的第i-1个数和第i个数之和用公式表示为 C(n1,i)C(n,i)C(n,i-1)。图示为杨辉三角的应用(ab)的n次方展开式中的各项系数依次对应杨辉三角的第(n1)行中的每一项。输入格式:欲打印杨辉三角的行数n1n13)。输出格式:1输出的数据为等腰三角形样式2每个数字占据4个字符的位置数字左对齐数字不足4位的右边留出空格3最后一行的数值“1”顶格前面无空格。提示以n5分析行首空格数为输入样例1:5输出样例:11 11 2 11 3 3 11 4 6 4 1输入样例2:6输出样例:11 11 2 11 3 3 11 4 6 4 11 5 10 10 5 1实现代码nint(input()) l[0]*n for i in range(n): l[i][0]*(n1) l[i][0]1 l[i][i]1 for j in range(1,i1): l[i][j]l[i-1][j]l[i-1][j-1] for i in range(n): for j in range(2*n-2-2*i): print( ,end) for j in range(i1): print(%-4d %l[i][j],end) print()7-18 sdut-列表去重分数 10作者 周雪芹单位 山东理工大学输入一个列表去掉列表中重复的数字按原来次序输出输入格式:在一行中输入列表。输出格式:在一行中输出不重复的列表元素。输入样例1:[4,7,5,6,8,6,9,5]输出样例1:4 7 5 6 8 9输入样例2:[1,2,3,abcd,hello,1,2,3,4,5,6]输出样例2:1 2 3 abcd hello 4 5 6实现代码leval(input()) ssorted(set(l),keyl.index) print(*s,sep )7-19 sdut-期末考试之排名次分数 10作者 周雪芹单位 山东理工大学期末考试结束了童鞋们的成绩也出来的了可是为了排名次可忙坏了老师因为学生太多了。这时老师把这个任务交给了你希望你能帮老师完成。作为IT人你当然不能用笨笨的人工方法了编程解决才是好办法。共有三门课语文、数学和英语要求根据学生的各科成绩计算出其总成绩并根据总成绩从高到低排序.输入格式:第一行一个整数NN100代表学生的人数。接下来的N行数据每行有三个整数C,M,E分别代表一个学生语文、数学和英语的成绩.输出格式:一共N行每行一个数从大到小分别代表各个学生的总成绩.输入样例:370 80 9059 59 59100 100 100输出样例:300240177实现代码nint(input()) l[] while n: n-1 x,y,zmap(int,input().split()) l.append(xyz) l.sort(reverseTrue) print(*l,sep\n)7-20 sdut- 矩阵转置(II)分数 10作者 周雪芹单位 山东理工大学从键盘输入一个m(2m6)*n(2n6)阶的矩阵编程输出它的转置矩阵。输入格式:在第一行输入矩阵的行数m和列数n的值;在第二行按照矩阵格式输入矩阵的数据同行数据之间用空格隔开。输出格式:矩阵格式输出同行数据之间用一个空格隔开。输入样例:3 51 2 3 4 51 2 3 4 51 2 3 4 5输出样例:1 1 12 2 23 3 34 4 45 5 5实现代码x,ymap(int,input().split()) l[] for i in range(x): s[int(num) for num in input().split()] l.append(s) for i in range(y): for j in range(x): if j!x-1: print(l[j][i],end ) else: print(l[j][i], end\n)7-23 sdut-对称矩阵的判定分数 10作者 周雪芹单位 山东理工大学输入矩阵的行数再依次输入矩阵的每行元素判断该矩阵是否为对称矩阵若矩阵对称输出“yes”不对称输出“no”。输入格式:输入有多组每一组第一行输入一个正整数NN20表示矩阵的行数若N0表示输入结束。下面依次输入N行数据。输出格式:若矩阵对称输出“yes不对称输出“no”。输入样例:36 3 123 18 812 8 736 9 123 5 812 6 30输出样例:yesno实现代码while True: nint(input()) if n0: break else: l[] f0 for i in range(n): num1[int(num) for num in input().split()] l.append(num1) for i in range(n): for j in range(n): if l[i][j]!l[j][i]: f1 break if f0: print(yes) else: print(no)7-18 sdut-查验身份证分数 10作者 周雪芹单位 山东理工大学一个合法的身份证号码由17位地区、日期编号和顺序编号加1位校验码组成。校验码的计算规则如下首先对前17位数字加权求和权重分配为{7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2}然后将计算的和对11取模得到值Z最后按照以下关系对应Z值与校验码M的值Z0 1 2 3 4 5 6 7 8 9 10M1 0 X 9 8 7 6 5 4 3 2现在给定一些身份证号码请你验证校验码的有效性并输出有问题的号码。验证身份证合法性的规则1前17位是否全为数字2最后1位校验码计算准确。输入格式:输入第一行给出正整数N≤100表示输入的身份证号码的个数。随后N行每行给出1个18位身份证号码。输出格式:按照输入的顺序每行输出1个有问题的身份证号码。如果所有号码都正常则输出All passed。输入样例1:432012419880824005612010X19890101123411010819671130186637070419881216001X输出样例1:12010X19890101123411010819671130186637070419881216001X输入样例2:2320124198808240056110108196711301862输出样例2:All passed实现代码nint(input()) l1[7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2] l2[1,0,X,9,8,7,6,5,4,3,2] tn cnt0 while n: n-1 sinput() sum0 if s[:-1].isdigit(): for i in range(17): sum(sumint(s[i])*int(l1[i]))%11 if s[17]str(l2[sum]): cnt1 else: print(s) else: print(s) if cntt: print(All passed)7-19 sdut-统计两个字符串中相同的字符个数分数 10作者 周雪芹单位 山东理工大学输入字符串A、字符串B求在字符串A、字符串B中相同的字符个数。输入格式:第一行输入表示字符串A。第二行输入表示字符串B。输出格式:在一行内输出字符串A、B中相同字符的个数。输入样例:AEIOUHELLO World!输出样例:在这里给出相应的输出。例如2实现代码sinput().upper() cinput().upper() ss cnt0 for i in s: if i in c and i not in ss: ssi.upper() cnt1 print(cnt)7-20 sdut-分析每队活动投票情况分数 10作者 周雪芹单位 山东理工大学利用集合分析活动投票情况。第一小队有五名队员序号是1,2,3,4,5; 第二小队也有五名队员序号6,7,8,9,10。输入一个得票队员的编号的字符串求第一、二小队没有得票的队员。在一行中输入得票的队员的序列号用逗号隔开。输入格式:在一行中输入得票的队员的序列号用逗号隔开。输出格式:在第一行中输出第一小队没有得票的队员序号用空格分开在第二行中输出第二小队没有得票的队员序号用空格分开。输入样例:1,5,9,3,9,1,1,7,5,7,7,3,3,1,5,7,4,4,5,4,9,5,10,9输出样例:26 8实现代码num1[int(num) for num in input().split(,)] l1[1,2,3,4,5] l2[6,7,8,9,10] ll1[] ll2[] for i in l1: if i not in num1: ll1.append(i) for i in l2: if i not in num1: ll2.append(i) print(*ll1,sep ) print(*ll2,sep )
sdut-python-实验四-python序列结构(11-20)
7-13 sdut-矩阵行、列、对角线和的最大值分数 10作者 周雪芹单位 山东理工大学求一个3*3矩阵每行、每列及对角线和的最大值。输入格式:在一行输入9个整数。输出格式:在一行输出每行、每列及对角线和的最大值。输入样例:3 6 5 9 8 2 1 4 5输出样例:19实现代码n[int(num) for num in input().split()] sum0 summax(sum,n[0]n[1]n[2]) summax(sum,n[3]n[4]n[5]) summax(sum,n[6]n[7]n[8]) summax(sum,n[0]n[3]n[6]) summax(sum,n[1]n[4]n[7]) summax(sum,n[2]n[5]n[8]) summax(sum,n[0]n[4]n[8]) summax(sum,n[2]n[4]n[6]) print(sum)7-15 sdut-打印显示直角字母图形分数 10作者 周雪芹单位 山东理工大学给定行数输出指定行数的字母组成的图形。输入格式:在一行内给出行数n1n10。输出格式:输出由大小字母组成的直角图形。输入样例1:2输出样例1:AAB输入样例2:7输出样例2:AABABCABCDABCDEABCDEFABCDEFG实现代码nint(input()) aA b65 while n: n-1 print(a) b1 achr(b)7-17 sdut-array2-5 打印“杨辉三角“ 品中国数学史 增民族自豪感2分数 10作者 周雪芹单位 山东理工大学背景介绍北宋人贾宪约1050年首先使用“贾宪三角”进行高次开方运算。南宋数学家杨辉在《详解九章算法》1261年记载并保存了“贾宪三角”故称杨辉三角。杨辉三角是中国数学史上的一个伟大成就。杨辉三角是中国古代数学的杰出研究成果之一它把二项式系数图形化把组合数内在的一些代数性质直观地从图形中体现出来是一种离散型的数与形的结合。中国南宋数学家杨辉1261年所著的《详解九章算法》一书中出现。在欧洲帕斯卡1623----1662在1654年发现这一规律所以这个表又叫做帕斯卡三角形。帕斯卡的发现比杨辉要迟393年比贾宪迟600年。杨辉三角数字的特点为1在三角形的首列和对角线上数值均为12其余数据为每个数字等于上一行的左右两个数字之和第n1行的第i个数等于第n行的第i-1个数和第i个数之和用公式表示为 C(n1,i)C(n,i)C(n,i-1)。图示为杨辉三角的应用(ab)的n次方展开式中的各项系数依次对应杨辉三角的第(n1)行中的每一项。输入格式:欲打印杨辉三角的行数n1n13)。输出格式:1输出的数据为等腰三角形样式2每个数字占据4个字符的位置数字左对齐数字不足4位的右边留出空格3最后一行的数值“1”顶格前面无空格。提示以n5分析行首空格数为输入样例1:5输出样例:11 11 2 11 3 3 11 4 6 4 1输入样例2:6输出样例:11 11 2 11 3 3 11 4 6 4 11 5 10 10 5 1实现代码nint(input()) l[0]*n for i in range(n): l[i][0]*(n1) l[i][0]1 l[i][i]1 for j in range(1,i1): l[i][j]l[i-1][j]l[i-1][j-1] for i in range(n): for j in range(2*n-2-2*i): print( ,end) for j in range(i1): print(%-4d %l[i][j],end) print()7-18 sdut-列表去重分数 10作者 周雪芹单位 山东理工大学输入一个列表去掉列表中重复的数字按原来次序输出输入格式:在一行中输入列表。输出格式:在一行中输出不重复的列表元素。输入样例1:[4,7,5,6,8,6,9,5]输出样例1:4 7 5 6 8 9输入样例2:[1,2,3,abcd,hello,1,2,3,4,5,6]输出样例2:1 2 3 abcd hello 4 5 6实现代码leval(input()) ssorted(set(l),keyl.index) print(*s,sep )7-19 sdut-期末考试之排名次分数 10作者 周雪芹单位 山东理工大学期末考试结束了童鞋们的成绩也出来的了可是为了排名次可忙坏了老师因为学生太多了。这时老师把这个任务交给了你希望你能帮老师完成。作为IT人你当然不能用笨笨的人工方法了编程解决才是好办法。共有三门课语文、数学和英语要求根据学生的各科成绩计算出其总成绩并根据总成绩从高到低排序.输入格式:第一行一个整数NN100代表学生的人数。接下来的N行数据每行有三个整数C,M,E分别代表一个学生语文、数学和英语的成绩.输出格式:一共N行每行一个数从大到小分别代表各个学生的总成绩.输入样例:370 80 9059 59 59100 100 100输出样例:300240177实现代码nint(input()) l[] while n: n-1 x,y,zmap(int,input().split()) l.append(xyz) l.sort(reverseTrue) print(*l,sep\n)7-20 sdut- 矩阵转置(II)分数 10作者 周雪芹单位 山东理工大学从键盘输入一个m(2m6)*n(2n6)阶的矩阵编程输出它的转置矩阵。输入格式:在第一行输入矩阵的行数m和列数n的值;在第二行按照矩阵格式输入矩阵的数据同行数据之间用空格隔开。输出格式:矩阵格式输出同行数据之间用一个空格隔开。输入样例:3 51 2 3 4 51 2 3 4 51 2 3 4 5输出样例:1 1 12 2 23 3 34 4 45 5 5实现代码x,ymap(int,input().split()) l[] for i in range(x): s[int(num) for num in input().split()] l.append(s) for i in range(y): for j in range(x): if j!x-1: print(l[j][i],end ) else: print(l[j][i], end\n)7-23 sdut-对称矩阵的判定分数 10作者 周雪芹单位 山东理工大学输入矩阵的行数再依次输入矩阵的每行元素判断该矩阵是否为对称矩阵若矩阵对称输出“yes”不对称输出“no”。输入格式:输入有多组每一组第一行输入一个正整数NN20表示矩阵的行数若N0表示输入结束。下面依次输入N行数据。输出格式:若矩阵对称输出“yes不对称输出“no”。输入样例:36 3 123 18 812 8 736 9 123 5 812 6 30输出样例:yesno实现代码while True: nint(input()) if n0: break else: l[] f0 for i in range(n): num1[int(num) for num in input().split()] l.append(num1) for i in range(n): for j in range(n): if l[i][j]!l[j][i]: f1 break if f0: print(yes) else: print(no)7-18 sdut-查验身份证分数 10作者 周雪芹单位 山东理工大学一个合法的身份证号码由17位地区、日期编号和顺序编号加1位校验码组成。校验码的计算规则如下首先对前17位数字加权求和权重分配为{7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2}然后将计算的和对11取模得到值Z最后按照以下关系对应Z值与校验码M的值Z0 1 2 3 4 5 6 7 8 9 10M1 0 X 9 8 7 6 5 4 3 2现在给定一些身份证号码请你验证校验码的有效性并输出有问题的号码。验证身份证合法性的规则1前17位是否全为数字2最后1位校验码计算准确。输入格式:输入第一行给出正整数N≤100表示输入的身份证号码的个数。随后N行每行给出1个18位身份证号码。输出格式:按照输入的顺序每行输出1个有问题的身份证号码。如果所有号码都正常则输出All passed。输入样例1:432012419880824005612010X19890101123411010819671130186637070419881216001X输出样例1:12010X19890101123411010819671130186637070419881216001X输入样例2:2320124198808240056110108196711301862输出样例2:All passed实现代码nint(input()) l1[7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2] l2[1,0,X,9,8,7,6,5,4,3,2] tn cnt0 while n: n-1 sinput() sum0 if s[:-1].isdigit(): for i in range(17): sum(sumint(s[i])*int(l1[i]))%11 if s[17]str(l2[sum]): cnt1 else: print(s) else: print(s) if cntt: print(All passed)7-19 sdut-统计两个字符串中相同的字符个数分数 10作者 周雪芹单位 山东理工大学输入字符串A、字符串B求在字符串A、字符串B中相同的字符个数。输入格式:第一行输入表示字符串A。第二行输入表示字符串B。输出格式:在一行内输出字符串A、B中相同字符的个数。输入样例:AEIOUHELLO World!输出样例:在这里给出相应的输出。例如2实现代码sinput().upper() cinput().upper() ss cnt0 for i in s: if i in c and i not in ss: ssi.upper() cnt1 print(cnt)7-20 sdut-分析每队活动投票情况分数 10作者 周雪芹单位 山东理工大学利用集合分析活动投票情况。第一小队有五名队员序号是1,2,3,4,5; 第二小队也有五名队员序号6,7,8,9,10。输入一个得票队员的编号的字符串求第一、二小队没有得票的队员。在一行中输入得票的队员的序列号用逗号隔开。输入格式:在一行中输入得票的队员的序列号用逗号隔开。输出格式:在第一行中输出第一小队没有得票的队员序号用空格分开在第二行中输出第二小队没有得票的队员序号用空格分开。输入样例:1,5,9,3,9,1,1,7,5,7,7,3,3,1,5,7,4,4,5,4,9,5,10,9输出样例:26 8实现代码num1[int(num) for num in input().split(,)] l1[1,2,3,4,5] l2[6,7,8,9,10] ll1[] ll2[] for i in l1: if i not in num1: ll1.append(i) for i in l2: if i not in num1: ll2.append(i) print(*ll1,sep ) print(*ll2,sep )