练习(2)的参考代码
练习(2)的参考代码
-
敏感词审查
代码
#!/usr/bin/env python # 定义敏感词列表 sensitive_words = ["尼玛", "傻逼", "混蛋"] # 敏感词替换字符 replacement = "x" # 打开并读取文件内容 file_path = "text.txt" try: #默认为"r"模式以及编码为"utf-8",可以省略 with open(file_path, "r", encoding="utf-8") as file: #全部读取为字符串 content = file.read() # 逐个替换敏感词 for word in sensitive_words: #用字符串replace()函数替换敏感词 content = content.replace(word, replacement * len(word)) # 将处理后的内容写回文件 with open(file_path, "w", encoding="utf-8") as file: file.write(content) print("敏感词替换完成!") except FileNotFoundError: print("文件未找到,请确认 text.txt 是否存在于当前目录。") except Exception as e: print(f"发生错误:{e}")text.txt
这个网站真尼玛奇怪,你是不是傻逼啊,怎么这么混蛋!运行结果
┌──(root㉿kali)-[~/python_code/python_2/homework] └─# cat text.txt 这个网站真尼玛奇怪,你是不是傻逼啊,怎么这么混蛋! ┌──(root㉿kali)-[~/python_code/python_2/homework] └─# python review.py 敏感词替换完成! ┌──(root㉿kali)-[~/python_code/python_2/homework] └─# cat text.txt 这个网站真xx奇怪,你是不是xx啊,怎么这么xx! -
词频统计
代码
注意:里面用到的collections模块会在后面详细讲解。
#!/usr/bin/env python import csv from collections import Counter # 文件路径 file_path = "words.csv" # 初始化一个空列表来保存所有单词 word_list = [] try: # 读取 CSV 文件中的单词 with open(file_path, "r", encoding="utf-8") as csvfile: reader = list(csv.reader(csvfile)) for row in reader: for word in row: word_list.append(word.lower()) # 统计词频 word_counts = Counter(word_list) # 输出结果(按出现的次数频率从高到低排序) print("词频统计结果(从高到低):") for word, count in word_counts.most_common(): print(f"{word}: {count}") except FileNotFoundError: print("文件未找到,请确认 words.csv 是否存在于当前目录。") except Exception as e: print(f"发生错误:{e}")words.csv
apple,Apple,banana Banana,apple,orange banana,grape,orange apple,banana,apple运行结果
┌──(root㉿kali)-[~/python_code/python_2/homework] └─# python count_words.py 词频统计结果(从高到低): apple: 5 banana: 4 orange: 2 grape: 1 -
智能排序机器人
代码
#!/usr/bin/env python def sales_sorting_bot(): sales = [100, 200, 50, 300, 20, 500, 1000, 10] # 1. 升序排序,sorted默认为升序 ascending_sales = sorted(sales) print("升序排序结果:") print(ascending_sales) # 2. 降序排序 descending_sales = sorted(sales, reverse=True) print("降序排序结果:") print(descending_sales) # 3. Top3 销售额(最高三个) top3 = sorted(sales, reverse=True)[:3] print("Top3 销售额:") print(top3) # 4. 最低的3个销售额 lowest3 = sorted(sales)[:3] print("最低的3个销售额:") print(lowest3) # 启动智能排序机器人 sales_sorting_bot()运行结果
┌──(root㉿kali)-[~/python_code/python_2/homework] └─# python sort.py 升序排序结果: [10, 20, 50, 100, 200, 300, 500, 1000] 降序排序结果: [1000, 500, 300, 200, 100, 50, 20, 10] Top3 销售额: [1000, 500, 300] 最低的3个销售额: [10, 20, 50] -
猜数字的AI
代码
#!/usr/bin/env python def guess_number_ai(): print("欢迎使用猜数字的AI!") print("请想一个 1 到 100 之间的整数,AI将用最少次数猜中它。") low = 1 high = 100 attempts = 0 while low <= high: # 使用二分法猜中间值 mid = (low + high) // 2 attempts += 1 print(f"AI猜测:{mid}") feedback = input("反馈(1=太大了,2=太小了,3=猜中!):").strip() if feedback == '3': print(f"猜中啦!你的数字是 {mid},一共猜了 {attempts} 次。") #单独使用return结束函数 return elif feedback == '1': high = mid - 1 elif feedback == '2': low = mid + 1 else: print("输入无效,请输入 1、2 或 3。") print("没有找到可能的数字,你是不是作弊了?") # 启动猜数字的AI guess_number_ai()运行结果
┌──(root㉿kali)-[~/python_code/python_2/homework] └─# python guess_number_AI.py 欢迎使用猜数字的AI! 请想一个 1 到 100 之间的整数,AI将用最少次数猜中它。 AI猜测:50 反馈(1=太大了,2=太小了,3=猜中!):1 AI猜测:25 反馈(1=太大了,2=太小了,3=猜中!):2 AI猜测:37 反馈(1=太大了,2=太小了,3=猜中!):2 AI猜测:43 反馈(1=太大了,2=太小了,3=猜中!):2 AI猜测:46 反馈(1=太大了,2=太小了,3=猜中!):2 AI猜测:48 反馈(1=太大了,2=太小了,3=猜中!):2 AI猜测:49 反馈(1=太大了,2=太小了,3=猜中!):3 猜中啦!你的数字是 49,一共猜了 7 次。
浙公网安备 33010602011771号