7个Python实战项目(附源码),拿走就用
Python是目前最好的編程語言之一。?由于其可讀性和對初學(xué)者的友好性,已被廣泛使用。
那么要想學(xué)會并掌握Python,可以實戰(zhàn)的練習(xí)項目是必不可少的。
接下來,我將給大家介紹20個非常實用的Python項目,幫助大家更好的學(xué)習(xí)Python。
大家也可根據(jù)項目的需求,自己構(gòu)建解決方法,提高編程水平。
①??猜字游戲
在這個游戲中,你必須一個字母一個字母的猜出秘密單詞。
如果你猜錯了一個字母,你將丟掉一條命。
正如游戲名那樣,你需要仔細選擇字母,因為你的生命數(shù)量非常有限。
import?random#?生命次數(shù) 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?=?Falsedef?update_clue(guessed_letter,?secret_word,?clue):index?=?0while?index?<?len(secret_word):if?guessed_letter?==?secret_word[index]:clue[index]?=?guessed_letterindex?=?index?+?1while?lives?>?0:print(clue)print('剩余生命次數(shù):?'?+?heart_symbol?*?lives)guess?=?input('猜測字母或者是整個單詞:?')if?guess?==?secret_word:guessed_word_correctly?=?Truebreakif?guess?in?secret_word:update_clue(guess,?secret_word,?clue)else:print('錯誤。你丟了一條命\n')lives?=?lives?-?1if?guessed_word_correctly:print('你贏了!?秘密單詞是?'?+?secret_word) else:print('你輸了!?秘密單詞是?'?+?secret_word)下面就讓小F,?來玩一下。
2.???鬧鐘
鬧鐘是一種具有可以在預(yù)先設(shè)定的時間被激活以響鈴的功能的時鐘,用于喚醒打工人們。
使用Python中的DateTime模塊來創(chuàng)建鬧鐘,并用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("完成鬧鐘設(shè)置..")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來測試一下,設(shè)置一個鬧鐘,到指定時間就會有音樂響起。
3.??骰子模擬器
可以通過選擇1到6之間的隨機整數(shù),來完成骰子模擬。
import?random#?設(shè)置最大值和最小值 min_val?=?1 max_val?=?6#?是否繼續(xù) roll_again?=?"yes"#?循環(huán) while?roll_again?==?"yes"?or?roll_again?==?"y":print("開始擲骰子")print("骰子數(shù)值是?:")#?第一輪print(random.randint(min_val,?max_val))#?第二輪print(random.randint(min_val,?max_val))#?是否繼續(xù)roll_again?=?input("是否繼續(xù)擲骰子?(是的話,?輸入yes或者y)")使用random.randint()函數(shù)。函數(shù)根據(jù)我們指定的開始和結(jié)束范圍返回一個隨機整數(shù)。
結(jié)果如下。
4.??語言檢測
當你需要處理包含不同語言數(shù)據(jù),且數(shù)據(jù)非常大的時候,語言檢測就派上用場了。
使用Python中的langdetect包,可以在幾行代碼內(nèi)檢測超過55種不同的語言。
from?langdetect?import?detecttext?=?input("輸入信息:?") print(detect(text))示例。
5.?加密和解密
密碼術(shù)意味著更改消息的文本,以便不知道你秘密的人永遠不會理解你的消息。
下面就來創(chuàng)建一個GUI應(yīng)用程序,使用Python進行加密和解密。
在這里,我們需要編寫使用無限循環(huán)的代碼,代碼將不斷詢問用戶是否要加密或解密消息。
from?tkinter?import?messagebox,?simpledialog,?Tkdef?is_even(number):return?number?%?2?==?0def?get_even_letters(message):even_letters?=?[]for?counter?in?range(0,?len(message)):if?is_even(counter):even_letters.append(message[counter])return?even_lettersdef?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_lettersdef?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_messagedef?get_task():task?=?simpledialog.askstring('任務(wù)',?'你是否想要加密或解密信息?')return?taskdef?get_message():message?=?simpledialog.askstring('信息',?'輸入相關(guān)信息:?')return?messageroot?=?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:breakroot.mainloop()示例。
6. URL縮短
短網(wǎng)址由于易于記憶和輸入,因此在數(shù)字營銷領(lǐng)域非常受歡迎。
這里給大家介紹一下,如何使用Python創(chuàng)建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?sysdef?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/y4z6z2gq7.???音樂播放器
音樂播放器,可讓你快速輕松地管理和收聽所有音樂文件。
應(yīng)該不少小伙伴都使用過,網(wǎng)易云音樂、QQ音樂、酷狗音樂等。
這里小F將使用Pygame和Tkinter,來創(chuàng)建一個音樂播放器。
import?pygame import?tkinter?as?tkr from?tkinter.filedialog?import?askdirectory import?osmusic_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?=?0play_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()選擇音樂文件所在的文件夾,點擊播放,即可聽見音樂。
想要更多的小項目可以加這個老師或者評論區(qū)扣“1”?
?
總結(jié)
以上是生活随笔為你收集整理的7个Python实战项目(附源码),拿走就用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux内核裁减
- 下一篇: fopen与读写的标识r,r+,rb+,