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()

posted @ 2025-05-18 10:38  你好book  阅读(41)  评论(0)    收藏  举报