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应用,这些项目都能有效地提高你的编程能力。希望你能从中获得灵感,创造出更多有趣和实用的项目!