目录
程序设计题
1.无空隙回声输出
描述
获得用户输入,去掉其中全部空格,将其他字符按收入顺序打印输出。
输入输出示例
输入 | 输出 | |
示例 1 | | |
提交代码
txt = input()
print(txt.replace(" ", ""))
2.文件关键行数
描述
关键行指一个文件中包含的不重复行。关键行数指一个文件中包含的不重复行的数量。
统计附件文件中与关键行的数量。
输入输出示例
此处仅示例输出格式。
输入 | 输出 | |
示例 1 | 无 | |
提交代码
f = open("latex.log")
ls = f.readlines()
s = set(ls) # 利用集合去重
print("共{}关键行".format(len(s)))
3.字典翻转输出
描述
读入一个字典类型的字符串,反转其中键值对输出。
即,读入字典key:value模式,输出value:key模式。
输入格式
用户输入的字典格式的字符串,如果输入不正确,提示:输入错误。
输出格式
给定字典d,按照print(d)方式输出
输入输出示例
输入 | 输出 | |
示例 1 | | |
提交代码
s = input()
try:
d = eval(s)
e = {}
for k in d:
e[d[k]] = k # 遍历字典 d 的键值对,将键和值互换后存入字典 e
print(e)
except:
print("输入错误")
4.《沉默的羔羊》之最多单词
描述
附件是《沉默的羔羊》中文版内容,请读入内容,分词后输出长度大于等于2且出现频率最多的单词。
如果存在多个单词出现频率一致,请输出按照Unicode排序后最大的单词。
输入格式:文件
输出格式:字符串
输出示例
羔羊
提交代码
import jieba
f = open("沉默的羔羊.txt", encoding='utf-8')
ls = jieba.lcut(f.read())
d = {}
for w in ls:
if len(w) >= 2:
d[w] = d.get(w, 0) + 1
maxc = 0
maxw = ""
for k in d:
if d[k] > maxc :
maxc = d[k]
maxw = k
elif d[k] == maxc and k > maxw:
maxw = k
print(maxw)
f.close()
带解析代码:
import jieba # jieba库: 用于中文分词的Python库
f = open("沉默的羔羊.txt", encoding='utf-8')
ls = jieba.lcut(f.read()) # lcut方法对读取的文本进行分词,得到一个包含所有词语的列表 ls
d = {} # 空字典d,用于存储每个词语及其出现的次数
for w in ls:
if len(w) >= 2: # 词语的长度大于等于2 (题目条件)
d[w] = d.get(w, 0) + 1
maxc = 0 # 用于存储出现次数最多的词语的出现次数 (值)
maxw = "" # 用于存储出现次数最多的词语 (键)
for k in d:
if d[k] > maxc :
maxc = d[k]
maxw = k
elif d[k] == maxc and k > maxw: # 该词语大于maxw (基于字符串的Unicode编码值来进行比较)
maxw = k
print(maxw)
f.close()