概述
- 第6章-6 求指定层的元素个数
- 第6章-7 找出总分最高的学生
- 第6章-8 输出全排列
- 第7章-1 词频统计
第6章-6 求指定层的元素个数
输入一个嵌套列表,再输入层数,求该层的数字元素个数。
输入格式:
第一行输入列表 第二行输入层数
输出格式:
在一行中输出元素个数
输入样例:
在这里给出一组输入。例如:
[1,2,[3,4,[5,6],7],8]
3
输出样例:
在这里给出相应的输出。例如:
2
答案样例:
s = 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”,中间以空格分隔。
输出格式:
在一行中输出总分最高学生的姓名、学号和总分,间隔一个空格。题目保证这样的学生是唯一的。
输入样例:
5
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
输出样例:
zhangfeng 10001 258
答案样例:
num = 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的全排列。每种排列占一行,数字间无空格。
输入样例:
在这里给出一组输入。例如:
3
输出样例:
在这里给出相应的输出。例如:
123
132
213
231
312
321
答案样例:
import 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%的单词。若有并列,则按递增字典序输出。
输入样例:
This 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位,所以不输出。)
23
5:this
4:is
答案样例:
import 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 程序设计》题目集第6章-6——第7章-1第6章-6 求指定层的元素个数第6章-7 找出总分最高的学生第6章-8 输出全排列第7章-1 词频统计所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复