练习(2)的参考代码

练习(2)的参考代码

  1. 敏感词审查

    代码

    #!/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!
    
  2. 词频统计

    代码

    注意:里面用到的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
    
  3. 智能排序机器人

    代码

    #!/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]
    
  4. 猜数字的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 次。
    
posted on 2025-06-20 23:52  burgess0x  阅读(25)  评论(0)    收藏  举报