值得學(xué)習(xí)練手的5個Python迷你程序(附代碼)
在使用Python的過程中,我最喜歡的就是Python的各種第三方庫,能夠完成很多操作。
下面就給大家介紹5個通過Python構(gòu)建的項目,以此來學(xué)習(xí)Python編程。
一、石頭剪刀布游戲
目標:創(chuàng)建一個命令行游戲,游戲者可以在石頭、剪刀和布之間進行選擇,與計算機PK。如果游戲者贏了,得分就會添加,直到結(jié)束游戲時,最終的分數(shù)會展示給游戲者。
提示:接收游戲者的選擇,并且與計算機的選擇進行比較。計算機的選擇是從選擇列表中隨機選取的。如果游戲者獲勝,則增加1分。
import?random??
choices?=?["Rock",?"Paper",?"Scissors"]??
computer?=?random.choice(choices)??
player?=?False??
cpu_score?=?0??
player_score?=?0??
while?True:??
????player?=?input("Rock,?Paper?or??Scissors?").capitalize()??
????#?判斷游戲者和電腦的選擇??
????if?player?==?computer:??
????????print("Tie!")??
????elif?player?==?"Rock":??
????????if?computer?==?"Paper":??
????????????print("You?lose!",?computer,?"covers",?player)??
????????????cpu_score+=1??
????????else:??
????????????print("You?win!",?player,?"smashes",?computer)??
????????????player_score+=1??
????elif?player?==?"Paper":??
????????if?computer?==?"Scissors":??
????????????print("You?lose!",?computer,?"cut",?player)??
????????????cpu_score+=1?
????????else:??
????????????print("You?win!",?player,?"covers",?computer)??
????????????player_score+=1??
????elif?player?==?"Scissors":??
????????if?computer?==?"Rock":??
????????????print("You?lose...",?computer,?"smashes",?player)??
????????????cpu_score+=1??
????????else:??
????????????print("You?win!",?player,?"cut",?computer)??
????????????player_score+=1??
????elif?player=='E':??
????????print("Final?Scores:")??
????????print(f"CPU:{cpu_score}")??
????????print(f"Plaer:{player_score}")??
????????break??
????else:??
????????print("That's?not?a?valid?play.?Check?your?spelling!")??
????computer?=?random.choice(choices)?
二、隨機密碼生成器
目標:創(chuàng)建一個程序,可指定密碼長度,生成一串隨機密碼。
提示:創(chuàng)建一個數(shù)字+大寫字母+小寫字母+特殊字符的字符串。根據(jù)設(shè)定的密碼長度隨機生成一串密碼。
import?random??
passlen?=?int(input("enter?the?length?of?password"?))??
s="?abcdefghijklmnopqrstuvwxyz01234567890ABCDEFGHIJKL?MNOPQRSTUVIXYZ!aN$x*6*(?)?"??
p?=?".join(random.sample(s,passlen?))??
print(p)??
----------------------------??
enter?the?length?of?password??
6??
Za1gB0?
三、骰子模擬器
目的:創(chuàng)建一個程序來模擬擲骰子。
提示:當用戶詢問時,使用random模塊生成一個1到6之間的數(shù)字。
import?random;??
while?int(input('Press?1?to?roll?the?dice?or?0?to?exit:\n')):?print(?random.?randint(1,6))??
--------------------------------------------------------------------??
Press?1?to?roll?the?dice?or?0?to?exit??
1??
4?
四、自動發(fā)送郵件
目的:編寫一個Python腳本,可以使用這個腳本發(fā)送電子郵件。
提示:email庫可用于發(fā)送電子郵件。
import?smtplib??
?
from?email.message?import?EmailMessage?
?
email?=?EmailMessage()?##?Creating?a?object?for?EmailMessage?
?
email['from']?=?'xyz?name'???##?Person?who?is?sending?
?
email['to']?=?'xyz?id'???????##?Whom?we?are?sending?
?
email['subject']?=?'xyz?subject'??##?Subject?of?email?
?
email.set_content("Xyz?content?of?email")?##?content?of?email?
?
with?smtlib.SMTP(host='smtp.gmail.com',port=587)as?smtp:??????
?
##?sending?request?to?server??
?
????smtp.ehlo()??????????##?server?object?
?
smtp.starttls()??????##?used?to?send?data?between?server?and?client?
?
smtp.login("email_id","Password")?##?login?id?and?password?of?gmail?
?
smtp.send_message(email)???##?Sending?email?
?
print("email?send")????##?Printing?success?message?
五、鬧鐘
目的:編寫一個創(chuàng)建鬧鐘的Python腳本。
提示:你可以使用date-time模塊創(chuàng)建鬧鐘,以及playsound庫播放聲音。
from?datetime?import?datetime?????
from?playsound?import?playsound??
alarm_time?=?input("Enter?the?time?of?alarm?to?be?set:HH:MM:SS\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("Setting?up?alarm..")??
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("Wake?Up!")??
????????????????????playsound('audio.mp3')?##?download?the?alarm?sound?from?link??
????????????????????break??
*聲明:本文于網(wǎng)絡(luò)整理,版權(quán)歸原作者所有,如來源信息有誤或侵犯權(quán)益,請聯(lián)系我們刪除或授權(quán)事宜。
文章點贊超過100+
我將在個人視頻號直播(老表Max)
帶大家一起進行項目實戰(zhàn)復(fù)現(xiàn)
掃碼即可加我微信
老表朋友圈經(jīng)常有贈書/紅包福利活動
學(xué)習(xí)更多: 整理了我開始分享學(xué)習(xí)筆記到現(xiàn)在超過250篇優(yōu)質(zhì)文章,涵蓋數(shù)據(jù)分析、爬蟲、機器學(xué)習(xí)等方面,別再說不知道該從哪開始,實戰(zhàn)哪里找了 “點贊”就是對博主最大的支持?
評論
圖片
表情

