这题和我之前写的一差不多,要注意的是题目中

这个怎么用?

1.import jieba 直接在开头用就行了

2.把输入套入 words = jieba.lcut()

直接上代码(!注意不用排序了,题目没要求):

import jieba
names = {
 "曹操", "刘备", "孙权", "诸葛亮", "孔明", "关羽", "云长", "张飞", "翼德", "赵云", "子龙", "马超", "孟起", "黄忠", "汉升", "周瑜", "公瑾","吕布","玄德", "华雄", "颜良", "文丑", "周郎", "仲谋", "许褚", "夏侯渊"
 }
s = input().strip()
word_list = jieba.lcut(s)
name_count = {}

for word in word_list:
    if word in names:
        if word in name_count:
            name_count[word] += 1
        else:
            name_count[word] = 1

for name,count in name_count.items():
    print(f"{name}: {count}")

这道题不会写:

问题:怎么把原字母替换成对应字母,怎么按要求输出?

(只替换大写字母)替换公式:replace_char = chr(ord('A') + ord('Z') - ord(c)

这里c指变量c,里面装着字符,不用加 ‘’ ,至于A 和 Z 是固定字母,要加引号

代码:

  

s = input().strip()
result = []
for c in s:
    if 'A' <= c <= 'Z':
        replace_char = chr(ord('A') + ord('Z') - ord(c))
        result.append(replace_char)
    else:
        result.append(c)

print(''.join(result))

还有输出为啥用.join():

输入都不知道怎么输,用循环的方法

代码:

provinces = set()

while True:
    p = input().strip()
    if p == "":
        break
    provinces.add(p)

count = len(provinces)
print(f"来自于{count}个省份。")  

为啥要用集合?

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐