7個Python實戰專案(附原始碼),拿走就用

shunshunss發表於2021-12-20

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” 

 

相關文章