精选了10个Python实战项目(附源码),拿走即用!

精选了10个Python实战项目(附源码),拿走即用!猜字游戏在这个游戏中 你必须一个字母一个字母的猜出秘密单词

大家好,欢迎来到IT知识分享网。

精选了10个Python实战项目(附源码),拿走即用!

 猜字游戏

在这个游戏中,你必须一个字母一个字母的猜出秘密单词。

如果你猜错了一个字母,你将丢掉一条命。

正如游戏名那样,你需要仔细选择字母,因为你的生命数量非常有限。

import random # 生命次数 lives = 3 # 神秘单词, 随机选择 words = ['pizza', 'fairy', 'teeth', 'shirt', 'otter', 'plane'] secret_word = random.choice(words) # print(secret_word) clue = list('?????') heart_symbol = u'\u2764' guessed_word_correctly = False def update_clue(guessed_letter, secret_word, clue): index = 0 while index < len(secret_word): if guessed_letter == secret_word[index]: clue[index] = guessed_letter index = index + 1 while lives > 0: print(clue) print('剩余生命次数: ' + heart_symbol * lives) guess = input('猜测字母或者是整个单词: ') if guess == secret_word: guessed_word_correctly = True break if guess in secret_word: update_clue(guess, secret_word, clue) else: print('错误。你丢了一条命\n') lives = lives - 1 if guessed_word_correctly: print('你赢了! 秘密单词是 ' + secret_word) else: print('你输了! 秘密单词是 ' + secret_word)

下面就让小F,来玩一下。

精选了10个Python实战项目(附源码),拿走即用!

 闹钟

闹钟是一种具有可以在预先设定的时间被激活以响铃的功能的时钟,用于唤醒打工人们。

使用Python中的DateTime模块来创建闹钟,并用Python中的playsound库来播放闹钟声音。

from datetime import datetime from playsound import playsound # 输入 alarm_time = input("请输入闹钟时间, 示例: 09:50:00 am\n") # 时 alarm_hour = alarm_time[0:2] # 分 alarm_minute = alarm_time[3:5] # 秒 alarm_seconds = alarm_time[6:8] # 上午或下午 alarm_period = alarm_time[9:11].upper() print("完成闹钟设置..") while True: now = datetime.now() current_hour = now.strftime("%I") current_minute = now.strftime("%M") current_seconds = now.strftime("%S") current_period = now.strftime("%p") # 时间判断 if alarm_period == current_period: if alarm_hour == current_hour: if alarm_minute == current_minute: if alarm_seconds == current_seconds: print("起来啦!") # 闹钟铃声 playsound('audio.mp3') break

来测试一下,设置一个闹钟,到指定时间就会有音乐响起。

精选了10个Python实战项目(附源码),拿走即用!

 骰子模拟器

可以通过选择1到6之间的随机整数,来完成骰子模拟。

import random # 设置最大值和最小值 min_val = 1 max_val = 6 # 是否继续 roll_again = "yes" # 循环 while roll_again == "yes" or roll_again == "y": print("开始掷骰子") print("骰子数值是 :") # 第一轮 print(random.randint(min_val, max_val)) # 第二轮 print(random.randint(min_val, max_val)) # 是否继续 roll_again = input("是否继续掷骰子?(是的话, 输入yes或者y)")

使用random.randint()函数。函数根据我们指定的开始和结束范围返回一个随机整数。

精选了10个Python实战项目(附源码),拿走即用!

 二维码

二维码是用于将数据编码和解码为机器可读的方法。

包含一个白色背景上的黑色方块网格,可以被任何成像设备(如手机)读取,并进行处理以从图案中提取所需的数据。

import pyqrcode # 设置二维码信息 s = "https://www.baidu.com" # 生成二维码 url = pyqrcode.create(s) # 保存二维码 url.svg("baidu.svg", scale=8)

结果如下。

 语言检测

当你需要处理包含不同语言数据,且数据非常大的时候,语言检测就派上用场了。

使用Python中的langdetect包,可以在几行代码内检测超过55种不同的语言。

from langdetect import detect text = input("输入信息: ") print(detect(text))

示例。

精选了10个Python实战项目(附源码),拿走即用!

 加密和解密

密码术意味着更改消息的文本,以便不知道你秘密的人永远不会理解你的消息。

下面就来创建一个GUI应用程序,使用Python进行加密和解密。

在这里,我们需要编写使用无限循环的代码,代码将不断询问用户是否要加密或解密消息。

from tkinter import messagebox, simpledialog, Tk def is_even(number): return number % 2 == 0 def get_even_letters(message): even_letters = [] for counter in range(0, len(message)): if is_even(counter): even_letters.append(message[counter]) return even_letters def get_odd_letters(message): odd_letters = [] for counter in range(0, len(message)): if not is_even(counter): odd_letters.append(message[counter]) return odd_letters def swap_letters(message): letter_list = [] if not is_even(len(message)): message = message + 'x' even_letters = get_even_letters(message) odd_letters = get_odd_letters(message) for counter in range(0, int(len(message) / 2)): letter_list.append(odd_letters[counter]) letter_list.append(even_letters[counter]) new_message = ''.join(letter_list) return new_message def get_task(): task = simpledialog.askstring('任务', '你是否想要加密或解密信息?') return task def get_message(): message = simpledialog.askstring('信息', '输入相关信息: ') return message root = Tk() while True: task = get_task() if task == '加密': message = get_message() encrypted = swap_letters(message) messagebox.showinfo('密电的密文为:', encrypted) elif task == '解密': message = get_message() decrypted = swap_letters(message) messagebox.showinfo('密电的明文为:', decrypted) else: break root.mainloop()

示例。

精选了10个Python实战项目(附源码),拿走即用!

精选了10个Python实战项目(附源码),拿走即用!

精选了10个Python实战项目(附源码),拿走即用!

⑦ URL缩短

短网址由于易于记忆和输入,因此在数字营销领域非常受欢迎。

这里给大家介绍一下,如何使用Python创建URL缩短器。

from __future__ import with_statement import contextlib try: from urllib.parse import urlencode except ImportError: from urllib import urlencode try: from urllib.request import urlopen except ImportError: from urllib2 import urlopen import sys def make_tiny(url): request_url = ('http://tinyurl.com/api-create.php?' + urlencode({'url': url})) # print(request_url) with contextlib.closing(urlopen(request_url)) as response: return response.read().decode('utf-8') def main(): for tinyurl in map(make_tiny, ['https://baijiahao.baidu.com/s?id=']): print(tinyurl) if __name__ == '__main__': main()

运行代码,输出如下。

# 输出 https://tinyurl.com/y4z6z2gq

 音乐播放器

音乐播放器,可让你快速轻松地管理和收听所有音乐文件。

应该不少小伙伴都使用过,网易云音乐、音乐、酷狗音乐等。

这里小F将使用Pygame和Tkinter,来创建一个音乐播放器。

import pygame import tkinter as tkr from tkinter.filedialog import askdirectory import os music_player = tkr.Tk() music_player.title("我的音乐播放器") music_player.geometry("450x350") directory = askdirectory() os.chdir(directory) song_list = os.listdir() play_list = tkr.Listbox(music_player, font="Helvetica 12 bold", bg='yellow', selectmode=tkr.SINGLE) for item in song_list: pos = 0 play_list.insert(pos, item) pos += 1 pygame.init() pygame.mixer.init() def play(): """播放""" pygame.mixer.music.load(play_list.get(tkr.ACTIVE)) var.set(play_list.get(tkr.ACTIVE)) pygame.mixer.music.play() def stop(): """停止""" pygame.mixer.music.stop() def pause(): """暂停""" pygame.mixer.music.pause() def unpause(): """取消暂停""" pygame.mixer.music.unpause() Button1 = tkr.Button(music_player, width=5, height=3, font="Helvetica 12 bold", text="播放", command=play, bg="blue", fg="white") Button2 = tkr.Button(music_player, width=5, height=3, font="Helvetica 12 bold", text="停止", command=stop, bg="red", fg="white") Button3 = tkr.Button(music_player, width=5, height=3, font="Helvetica 12 bold", text="暂停", command=pause, bg="purple", fg="white") Button4 = tkr.Button(music_player, width=5, height=3, font="Helvetica 12 bold", text="取消暂停", command=unpause, bg="orange", fg="white") var = tkr.StringVar() song_title = tkr.Label(music_player, font="Helvetica 12 bold", textvariable=var) song_title.pack() Button1.pack(fill="x") Button2.pack(fill="x") Button3.pack(fill="x") Button4.pack(fill="x") play_list.pack(fill="both", expand="yes") music_player.mainloop()

选择音乐文件所在的文件夹,点击播放,即可听见音乐。

精选了10个Python实战项目(附源码),拿走即用!

 生命游戏

生命游戏由英国数学家约翰·H·康威设计的,是一种类似于生物社会的兴衰和交替的游戏。

动图封面

游戏使用无限大小的矩形网格,其中每个网格都是空的或被有机体占据。被占用的细胞是活的,而空的细胞是死的。

游戏在特定时期内进行,每一轮都会根据当前配置中生物体的排列创建一个新的世代。

下一代网格的状态,是通过将以下四个基本规则应用于当前配置的每个网格来确定的:

  • 如果一个细胞还活着并且有两个或三个活着的邻居,那么该细胞在下一代中仍然活着;
  • 一个没有活邻居或只有一个活邻居的活细胞会在下一代死于孤立;
  • 有四个或更多活邻居的活细胞会因下一代人口过剩而死亡;
  • 一个只有三个活着的邻居的死细胞会导致出生并在下一代中存活;
board = [[1, 0, 0], [1, 0, 0], [1, 0, 0]] # 邻居数组为给定的单元格找到8个相邻的单元格 neighbors = [(1, 0), (1, -1), (0, -1), (-1, -1), (-1, 0), (-1, 1), (0, 1), (1, 1)] rows = len(board) cols = len(board[0]) # 创建一个原始板的副本 copy_board = [[board[row][col] for col in range(cols)] for row in range(rows)] # 逐个单元地迭代 for row in range(rows): for col in range(cols): # 对于每个单元计算邻居的数量 live_neighbors = 0 for neighbor in neighbors: r = (row + neighbor[0]) c = (col + neighbor[1]) # 检查相邻细胞的有效性,以及它是否原来是一个活细胞 # 评估是针对副本进行的,因为它永远不会更新。 if (r < rows and r >= 0) and (c < cols and c >= 0) and (copy_board[r][c] == 1): live_neighbors += 1 # 规则1或规则3 if copy_board[row][col] == 1 and (live_neighbors < 2 or live_neighbors > 3): board[row][col] = 0 # 规则4 if copy_board[row][col] == 0 and live_neighbors == 3: board[row][col] = 1 print(board)

结果如下。

# 输入 board = [[1, 0, 0], [1, 0, 0], [1, 0, 0]] # 输出 board = [[0, 0, 0], [1, 1, 0], [0, 0, 0]]

 Turtle绘图

Turtle模块提供了在二维平面上移动的环境。

Turtle可以实现位置、航向和各种可能的状态和动作。

import turtle as tu roo = tu.Turtle() # 创建对象 wn = tu.Screen() # 屏幕对象 wn.bgcolor("black") # 屏幕背景 wn.title("分形树") roo.left(90) # 移动 roo.speed(20) # 速度 def draw(l): # 以长度'l'作为参数的递归函数 if l < 10: return else: roo.pensize(2) # 设置画笔大小 roo.pencolor("yellow") # 画笔颜色 roo.forward(l) # 朝向 roo.left(30) # 移动 draw(3 * l / 4) # 绘制 roo.right(60) # 移动 draw(3 * l / 4) # 绘制 roo.left(30) # 移动 roo.pensize(2) roo.backward(l) # 返回初始位置 draw(20) # 绘制20次 roo.right(90) roo.speed(2000) # recursion def draw(l): if (l < 10): return else: roo.pensize(2) roo.pencolor("magenta") # magenta roo.forward(l) roo.left(30) draw(3 * l / 4) roo.right(60) draw(3 * l / 4) roo.left(30) roo.pensize(2) roo.backward(l) draw(20) roo.left(270) roo.speed(2000) # recursion def draw(l): if (l < 10): return else: roo.pensize(2) roo.pencolor("red") # red roo.forward(l) roo.left(30) draw(3 * l / 4) roo.right(60) draw(3 * l / 4) roo.left(30) roo.pensize(2) roo.backward(l) draw(20) roo.right(90) roo.speed(2000) # recursion def draw(l): if (l < 10): return else: roo.pensize(2) roo.pencolor('#FFF8DC') # white roo.forward(l) roo.left(30) draw(3 * l / 4) roo.right(60) draw(3 * l / 4) roo.left(30) roo.pensize(2) roo.backward(l) draw(20) def draw(l): if (l < 10): return else: roo.pensize(3) roo.pencolor("lightgreen") # lightgreen roo.forward(l) roo.left(30) draw(4 * l / 5) roo.right(60) draw(4 * l / 5) roo.left(30) roo.pensize(3) roo.backward(l) draw(40) roo.right(90) roo.speed(2000) # recursion def draw(l): if (l < 10): return else: roo.pensize(3) roo.pencolor("red") # red roo.forward(l) roo.left(30) draw(4 * l / 5) roo.right(60) draw(4 * l / 5) roo.left(30) roo.pensize(3) roo.backward(l) draw(40) roo.left(270) roo.speed(2000) # recursion def draw(l): if (l < 10): return else: roo.pensize(3) roo.pencolor("yellow") # yellow roo.forward(l) roo.left(30) draw(4 * l / 5) roo.right(60) draw(4 * l / 5) roo.left(30) roo.pensize(3) roo.backward(l) draw(40) roo.right(90) roo.speed(2000) # recursion def draw(l): if (l < 10): return else: roo.pensize(3) roo.pencolor('#FFF8DC') # white roo.forward(l) roo.left(30) draw(4 * l / 5) roo.right(60) draw(4 * l / 5) roo.left(30) roo.pensize(3) roo.backward(l) draw(40) def draw(l): if (l < 10): return else: roo.pensize(2) roo.pencolor("cyan") # cyan roo.forward(l) roo.left(30) draw(6 * l / 7) roo.right(60) draw(6 * l / 7) roo.left(30) roo.pensize(2) roo.backward(l) draw(60) roo.right(90) roo.speed(2000) # recursion def draw(l): if (l < 10): return else: roo.pensize(2) roo.pencolor("yellow") # yellow roo.forward(l) roo.left(30) draw(6 * l / 7) roo.right(60) draw(6 * l / 7) roo.left(30) roo.pensize(2) roo.backward(l) draw(60) roo.left(270) roo.speed(2000) # recursion def draw(l): if (l < 10): return else: roo.pensize(2) roo.pencolor("magenta") # magenta roo.forward(l) roo.left(30) draw(6 * l / 7) roo.right(60) draw(6 * l / 7) roo.left(30) roo.pensize(2) roo.backward(l) draw(60) roo.right(90) roo.speed(2000) # recursion def draw(l): if (l < 10): return else: roo.pensize(2) roo.pencolor('#FFF8DC') # white roo.forward(l) roo.left(30) draw(6 * l / 7) roo.right(60) draw(6 * l / 7) roo.left(30) roo.pensize(2) roo.backward(l) draw(60) wn.exitonclick()

绘制时间较长,结果如下,挺好看的。

精选了10个Python实战项目(附源码),拿走即用!

最后,如果你对Python感兴趣,想要学习python,希望可以帮到你,一起加油!以上是给大家分享的Python全套学习资料,都是我自己学习时整理的:

全套Python学习资料分享:(点击领取)

一、Python所有方向的学习路线

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

图片

图片

二、学习软件

工欲善其事必先利其器。学习Python常用的开发软件都在这里了,还有环境配置的教程,给大家节省了很多时间。

图片

三、全套PDF电子书

书籍的好处就在于权威和体系健全,刚开始学习的时候你可以只看视频或者听某个人讲课,但等你学完之后,你觉得你掌握了,这时候建议还是得去看一下书籍,看权威技术书籍也是每个程序员必经之路。

图片

四、入门学习视频全套

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

图片

图片

五、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

图片

图片

学习资源已打包,需要的小伙伴可以戳这里:Python学习大礼包

 

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/118489.html

(0)
上一篇 2025-11-12 19:20
下一篇 2025-11-12 19:26

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信