目录
7-1 词频统计
import sys
s = sys.stdin.read()
s = s[:s.find('#')] #读写所有内容,输入 ctrl+d 结束
for i in s: #将所有非字母、非数字、非下划线的字符均用空格替换
if i.isalnum() == False and i != '_':
s = s.replace(i, ' ')
words1 = s.lower().split(' ') #以空格分隔各个单词并存储它们的小写
words2 = {}
for i in words1:
if i == '': #上一步分隔后,可能存在分隔了两个空格存留的空字符,将其略过
continue
else:
i = i[:15] #保留所有单词的前十五位
words2[i] = words2.get(i, 0) + 1#如果字典中有这个键,则值加一,若没有,则创建一个并令值等于零
#将字典先按“值”倒序排列,大的在前,最大的数前面加个符号就变的最小,这样排得越前
#然后再按“键”排列,即相同数量时,按字母顺序排列
words3 = sorted(words2.items(), key=lambda x:(-x[1],x[0]))#-x[1]:将字典先按“值”倒序排列
print(len(words3))
num = int(len(words3) / 10) #输出前10%的单词
for i in range(num):
print(str(words3[i][1]) + ':' + str(words3[i][0]))
7-2 综合题:学生成绩输入及输出
try:
n=int(input())
if n<=1 or n>100:
raise ValueError
a = []
for i in range(n):
b=input().split()
if len(b[0])!=4 or not b[0].isdigit():
raise ValueError
if not b[2].isdigit():
raise ValueError
if not b[3].isdigit():
raise ValueError
if not b[4].isdigit():
raise ValueError
a.append([b[0],b[1],int(b[2]),int(b[3]),int(b[4])])
for i in a:
i.append(sum(i[2:])/3)
a.sort(key = lambda x : (-x[5],-x[2]))
for i in a:
print(i[0],i[1],i[2],i[3],i[4],end=" ")
print("%.2f"%i[5])
except ValueError:
print("输入的人数必须是数字,大于0并且小于等于100")
8-1 基于命令行的文件浏览器
import os
import sys
def init():
print()
print('当前目录: ',os.path.abspath('.'))
print("---------------------------------")
print("1 列出当前目录内容\\n2 向上一级\\n3 向下一级\\n4 统计当前目录中的文件个数\\n5 退出")
print("---------------------------------")
print()
#列出当前目录内容
def showFile():
file_Lst = os.listdir(os.path.abspath('.'))
for i in file_Lst:
print(i)