Python练习7——文件目录

目录

7-1 词频统计

7-2 综合题:学生成绩输入及输出

8-1 基于命令行的文件浏览器


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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值