- 第6章-6 求指定层的元素个数
- 第6章-7 找出总分最高的学生
- 第6章-8 输出全排列
- 第7章-1 词频统计
第6章-6 求指定层的元素个数
输入一个嵌套列表,再输入层数,求该层的数字元素个数。
输入格式:
第一行输入列表 第二行输入层数
输出格式:
在一行中输出元素个数
输入样例:
在这里给出一组输入。例如:
1
2
3[1,2,[3,4,[5,6],7],8] 3
输出样例:
在这里给出相应的输出。例如:
1
22
答案样例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14s = eval(input()) r = int(input()) while r > 0: r -= 1 c = 0 a = [] for i in s: if isinstance(i,int): c += 1 if isinstance(i,list): a += i s = a print(c)
第6章-7 找出总分最高的学生
给定N个学生的基本信息,包括学号(由5个数字组成的字符串)、姓名(长度小于10的不包含空白字符的非空字符串)和3门课程的成绩([0,100]区间内的整数),要求输出总分最高学生的姓名、学号和总分。
输入格式:
输入在一行中给出正整数N(≤10)。随后N行,每行给出一位学生的信息,格式为“学号 姓名 成绩1 成绩2 成绩3”,中间以空格分隔。
输出格式:
在一行中输出总分最高学生的姓名、学号和总分,间隔一个空格。题目保证这样的学生是唯一的。
输入样例:
1
2
3
4
5
6
75 00001 huanglan 78 83 75 00002 wanghai 76 80 77 00003 shenqiang 87 83 76 10001 zhangfeng 92 88 78 21987 zhangmeng 80 82 75
输出样例:
1
2zhangfeng 10001 258
答案样例:
1
2
3
4
5
6
7
8
9
10num = int(input()) s = 0 for i in range(num): a = input().split() if sum(map(int,a[2:])) > s: s = sum(map(int,a[2:])) name = a[1] id = a[0] print(name,id,s)
第6章-8 输出全排列
输入整数n(3<=n<=7),编写程序输出1,2,…,n整数的全排列,按字典序输出。
输入格式:
一行输入正整数n。
输出格式:
按字典序输出1到n的全排列。每种排列占一行,数字间无空格。
输入样例:
在这里给出一组输入。例如:
1
23
输出样例:
在这里给出相应的输出。例如:
1
2
3
4
5
6
7123 132 213 231 312 321
答案样例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15import random from math import factorial num = int(input()) x = [] for i in range(1,num+1): x.append(str(i)) s = set() while len(s) < factorial(num): random.shuffle(x)# 随机排序 s.add(''.join(x))# 集合自动去重 x = list(s) x.sort() for j in x: print(j)
第7章-1 词频统计
请编写程序,对一段英文文本,统计其中所有不同单词的个数,以及词频最大的前10%的单词。
所谓“单词”,是指由不超过80个单词字符组成的连续字符串,但长度超过15的单词将只截取保留前15个单词字符。而合法的“单词字符”为大小写字母、数字和下划线,其它字符均认为是单词分隔符。
输入格式:
输入给出一段非空文本,最后以符号#结尾。输入保证存在至少10个不同的单词。
输出格式:
在第一行中输出文本中所有不同单词的个数。注意“单词”不区分英文大小写,例如“PAT”和“pat”被认为是同一个单词。
随后按照词频递减的顺序,按照词频:单词的格式输出词频最大的前10%的单词。若有并列,则按递增字典序输出。
输入样例:
1
2
3
4
5
6
7This is a test. The word "this" is the word with the highest frequency. Longlonglonglongword should be cut off, so is considered as the same as longlonglonglonee. But this_8 is different than this, and this, and this...# this line should be ignored.
输出样例:(注意:虽然单词the也出现了4次,但因为我们只要输出前10%(即23个单词中的前2个)单词,而按照字母序,the排第3位,所以不输出。)
1
2
3
423 5:this 4:is
答案样例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16import sys import re from collections import Counter s = "".join(i for i in sys.stdin) # 测试的时候按下ctrl+d结束输入 s = s.lower().split('#')[0] s = re.split(r'W+',s)# 以非数字字母下划线进行分割 s = [i for i in s if i != ''] s = list(map(lambda x: x[0:15] if len(x) > 15 else x, s)) count_s = Counter(s)#词频统计 # 由于先要按次数降序,再按字母升序,所以把数字取反,就都是按升序排列了 sort_s = sorted(list(count_s.items()),key=lambda s:(-s[-1],s[0])) print(len(sort_s)) for i in sort_s[:int(len(sort_s)*0.1)]: print(f'{i[-1]}:{i[0]}')
最后
以上就是坚强胡萝卜最近收集整理的关于浙大版《Python 程序设计》题目集第6章-6——第7章-1第6章-6 求指定层的元素个数第6章-7 找出总分最高的学生第6章-8 输出全排列第7章-1 词频统计的全部内容,更多相关浙大版《Python内容请搜索靠谱客的其他文章。
发表评论 取消回复