7个Python实战项目(附源码),可以白嫖

Python是目前最好的编程语言之一。 由于其可读性和对初学者的友好性,已被广泛使用。那么要想学会并掌握Python,可以实战的练习项目是必不可少的。

接下来,我将给大家介绍20个非常实用的Python项目,帮助大家更好的学习Python。

大家也可根据项目的需求,自己构建解决方法,提高编程水平。

1. 猜字游戏

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

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

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

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()

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

想要更多python实战项目+python全套学习资料的小伙伴,可以扫码CSDN认证官方二维码免费领取。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值