p126作业
7.2
import jieba
import wordcloud
import numpy as np
from PIL import Image
fname = "第十周\三国演义.txt"
with open(fname, "r", encoding="utf-8") as f:
ls = jieba.lcut(f.read())
for item in reversed(ls):
if len(item) == 1:
ls.remove(item)
生成圆形遮罩
x, y = np.ogrid[:300, :300]
mask = (x - 150) ** 2 + (y - 150) ** 2 > 130 ** 2
mask = 255 * mask.astype(int)
w = wordcloud.WordCloud(font_path="msyh.ttc",
width=1000, height=700,
background_color="white",
font_step=1,
mask=mask) # 添加遮罩参数
w.generate(" ".join(ls))
w.to_file("output.png")
7.3
import turtle as t
t.title("自动轨迹绘制")
t.setup(1000, 800, 0, 0)
t.pencolor("red")
t.pensize(5)
数据读取
datals = []
with open("第十周\date.txt") as f:
for line in f:
line = line.replace("\n", "")
datals.append(list(map(eval, line.split(","))))
自动绘制
for i in range(len(datals)):
t.pencolor(datals[i][3], datals[i][4], datals[i][5])
t.fd(datals[i][0])
if datals[i][1]:
t.right(datals[i][2])
else:
t.left(datals[i][2])
t.done()
7.4
import jieba
from wordcloud import WordCloud
import numpy as np
from PIL import Image
import requests
from bs4 import BeautifulSoup
def get_poem_text():
这里假设从诗词网站获取诗词,实际需根据真实网址调整
url = "诗词网址"
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
poem_text = ""
for p in soup.find_all('div', class_='poem_content'): # 假设诗词内容在class为poem_content的div中
poem_text += p.get_text()
return poem_text
def generate_logo_wordcloud():
poem_text = get_poem_text()
words = jieba.lcut(poem_text)
words_str = " ".join(words)
读取学校Logo图片
logo_mask = np.array(Image.open("school_logo.png"))
wordcloud = WordCloud(font_path='msyh.ttc', mask=logo_mask, background_color='white').generate(words_str)
wordcloud.to_file("logo_wordcloud.png")
print("Logo词云已生成并保存为logo_wordcloud.png")
if name == "main":
generate_logo_wordcloud()
7.5
import os
def add_word(dictionary, word, meaning):
if word in dictionary:
print(f"该单词{word}已添加到字典库")
else:
dictionary[word] = meaning
print(f"单词{word}已成功添加到字典库")
def query_word(dictionary, word):
if word in dictionary:
print(f"{word}: {dictionary[word]}")
else:
print(f"字典库中未找到这个单词{word}")
def save_dictionary(dictionary, file_path):
with open(file_path, 'w', encoding='utf - 8') as f:
for word, meaning in dictionary.items():
f.write(f"{word} {meaning}\n")
def load_dictionary(file_path):
dictionary = {}
if os.path.exists(file_path):
with open(file_path, 'r', encoding='utf - 8') as f:
for line in f:
parts = line.strip().split()
if len(parts) == 2:
dictionary[parts[0]] = parts[1]
return dictionary
def main():
file_path = "dictionary.txt"
dictionary = load_dictionary(file_path)
while True:
choice = input("请选择操作:1. 添加单词 2. 查询单词 3. 退出\n")
if choice == "1":
word = input("请输入英文单词:")
meaning = input("请输入中文释义:")
add_word(dictionary, word, meaning)
save_dictionary(dictionary, file_path)
elif choice == "2":
word = input("请输入要查询的英文单词:")
query_word(dictionary, word)
elif choice == "3":
print("退出程序")
break
else:
print("输入有误")
if name == "main":
main()
7.6
import os
def add_word(dictionary, word, meaning):
if word in dictionary:
dictionary[word] += f", {meaning}"
print(f"单词{word}已添加新释义到字典库")
else:
dictionary[word] = meaning
print(f"单词{word}已成功添加到字典库")
def query_word(dictionary, word):
if word in dictionary:
print(f"{word}: {dictionary[word]}")
else:
print(f"字典库中未找到这个单词{word}")
def save_dictionary(dictionary, file_path):
with open(file_path, 'w', encoding='utf - 8') as f:
for word, meaning in dictionary.items():
f.write(f"{word} {meaning}\n")
def load_dictionary(file_path):
dictionary = {}
if os.path.exists(file_path):
with open(file_path, 'r', encoding='utf - 8') as f:
for line in f:
parts = line.strip().split(maxsplit=1)
if len(parts) == 2:
dictionary[parts[0]] = parts[1]
return dictionary
def main():
file_path = "dictionary.txt"
dictionary = load_dictionary(file_path)
while True:
choice = input("请选择操作:1. 添加单词 2. 查询单词 3. 退出\n")
if choice == "1":
word = input("请输入英文单词:")
meaning = input("请输入中文释义:")
add_word(dictionary, word, meaning)
save_dictionary(dictionary, file_path)
elif choice == "2":
word = input("请输入要查询的英文单词:")
query_word(dictionary, word)
elif choice == "3":
print("退出程序")
break
else:
print("输入有误")
if name == "main":
main()

浙公网安备 33010602011771号