Python是目前最好的编程语言之一。 由于其可读性和对初学者的友好性,已被广泛使用。
那么要想学会并掌握Python,可以实战的练习项目是必不可少的。
接下来,我将给大家介绍20个非常实用的Python项目,帮助大家更好的学习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, 来玩一下。
2. 闹钟
闹钟是一种具有可以在预先设定的时间被激活以响铃的功能的时钟,用于唤醒打工人们。
使用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
来测试一下,设置一个闹钟,到指定时间就会有音乐响起。
3. 骰子模拟器
可以通过选择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()函数。函数根据我们指定的开始和结束范围返回一个随机整数。
结果如下。
4. 语言检测
当你需要处理包含不同语言数据,且数据非常大的时候,语言检测就派上用场了。
使用Python中的langdetect包,可以在几行代码内检测超过55种不同的语言。
from langdetect import detect text = input("输入信息: ") print(detect(text))
示例。
5. 加密和解密
密码术意味着更改消息的文本,以便不知道你秘密的人永远不会理解你的消息。
下面就来创建一个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()
示例。
6. 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=1719379508156841662']): print(tinyurl) if __name__ == '__main__': main()
运行代码,输出如下。
# 输出 https://tinyurl.com/y4z6z2gq
7. 音乐播放器
音乐播放器,可让你快速轻松地管理和收听所有音乐文件。
应该不少小伙伴都使用过,网易云音乐、QQ音乐、酷狗音乐等。
这里小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()
选择音乐文件所在的文件夹,点击播放,即可听见音乐。
想要更多的小项目可以加这个老师或者评论区扣“1”