10个很酷、简单且有趣的Python项目

Python是一种功能强大且易于学习的编程语言,非常适合初学者和专业开发者。以下是10个简单但有趣的Python项目,适合各种水平的程序员练习和扩展他们的技能。

1. 计算器

创建一个简单的命令行计算器,让用户能够进行基本的数学运算。

def calculator():
    print("选择运算:")
    print("1. 加法")
    print("2. 减法")
    print("3. 乘法")
    print("4. 除法")

    choice = input("请输入你的选择(1/2/3/4): ")

    num1 = float(input("输入第一个数字: "))
    num2 = float(input("输入第二个数字: "))

    if choice == '1':
        print(f"{num1} + {num2} = {num1 + num2}")
    elif choice == '2':
        print(f"{num1} - {num2} = {num1 - num2}")
    elif choice == '3':
        print(f"{num1} * {num2} = {num1 * num2}")
    elif choice == '4':
        if num2 != 0:
            print(f"{num1} / {num2} = {num1 / num2}")
        else:
            print("除数不能为零")
    else:
        print("无效的输入")

calculator()

2. 随机密码生成器

生成一个随机的密码,用户可以指定密码的长度。

import random
import string

def generate_password(length):
    characters = string.ascii_letters + string.digits + string.punctuation
    password = ''.join(random.choice(characters) for i in range(length))
    return password

length = int(input("请输入密码长度: "))
print("生成的密码:", generate_password(length))

3. 词汇游戏

创建一个简单的单词猜测游戏,用户需要从给定的字母中猜出单词。

import random

words = ['python', 'java', 'ruby', 'javascript']
chosen_word = random.choice(words)
guesses = ''

while True:
    guess = input("猜一个字母: ").lower()

    if guess in guesses:
        print("你已经猜过这个字母")
    else:
        guesses += guess
        if guess in chosen_word:
            print("恭喜你,猜对了!")
        else:
            print("很遗憾,猜错了!")

    if all(letter in guesses for letter in chosen_word):
        print("你赢了!单词是:", chosen_word)
        break

4. 天气查询

利用API获取实时天气信息。

import requests

def get_weather(city):
    api_key = 'YOUR_API_KEY'  # 替换为你的API密钥
    url = f'http://api.openweathermap.org/data/2.5/weather?q={city}&appid={api_key}&units=metric'
    response = requests.get(url)
    data = response.json()
    if data['cod'] == 200:
        print(f"{city}的天气: {data['weather'][0]['description']}, 温度: {data['main']['temp']}°C")
    else:
        print("城市未找到")

city = input("请输入城市名: ")
get_weather(city)

5. 照片水印

为图片添加水印。

from PIL import Image
from PIL import ImageDraw
from PIL import ImageFont

def add_watermark(input_image_path, output_image_path, watermark_text):
    original = Image.open(input_image_path)
    width, height = original.size

    # 创建一个可用于绘制的图像对象
    txt = Image.new('RGBA', original.size, (255, 255, 255, 0))
    font = ImageFont.truetype("arial.ttf", 36)
    draw = ImageDraw.Draw(txt)

    # 在图像上添加水印
    draw.text((10, 10), watermark_text, fill=(255, 255, 255, 128), font=font)
    watermarked = Image.alpha_composite(original.convert('RGBA'), txt)

    watermarked.show()
    watermarked.save(output_image_path, "PNG")

add_watermark("input_image.jpg", "output_image.png", "水印文字")

6. 儿童画图工具

创建一个简单的绘图应用程序。

import turtle

def draw_square():
    for _ in range(4):
        turtle.forward(100)
        turtle.right(90)

turtle.title("儿童画图工具")
turtle.shape("turtle")
draw_square()
turtle.done()

7. 简易记事本

创建一个命令行记事本应用。

def notepad():
    notes = []
    while True:
        note = input("输入你的笔记(输入'退出'保存并退出): ")
        if note.lower() == '退出':
            break
        notes.append(note)

    with open('notes.txt', 'w') as f:
        for note in notes:
            f.write(note + '\n')

    print("笔记已保存!")

notepad()

8. 二维数组游戏

实现一个简单的二维数组(棋盘)游戏。

def print_board(board):
    for row in board:
        print(" ".join(row))

def initialize_board(size):
    return [['-' for _ in range(size)] for _ in range(size)]

size = 3
board = initialize_board(size)
print_board(board)

9. 快速排序算法

实现快速排序算法。

def quick_sort(arr):
    if len(arr) <= 1:
        return arr
    pivot = arr[len(arr) // 2]
    left = [x for x in arr if x < pivot]
    middle = [x for x in arr if x == pivot]
    right = [x for x in arr if x > pivot]
    return quick_sort(left) + middle + quick_sort(right)

arr = [34, 7, 23, 32, 5, 62]
print("排序前:", arr)
print("排序后:", quick_sort(arr))

10. 磁盘空间占用分析

分析文件夹中的文件并计算其大小。

import os

def folder_size(path):
    total = 0
    for dirpath, dirnames, filenames in os.walk(path):
        for f in filenames:
            fp = os.path.join(dirpath, f)
            total += os.path.getsize(fp)
    return total

path = input("输入文件夹路径: ")
print(f"文件夹大小: {folder_size(path)} 字节")

以上这些项目不仅可以帮助你练习Python编程,还能让你了解到如何处理各种实际问题。从简单的计算器到复杂的API应用,这些项目都能有效地提高你的编程能力。希望你能从中获得灵感,创造出更多有趣和实用的项目!

点赞(0) 打赏

微信小程序

微信扫一扫体验

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部