值得學(xué)習(xí)練手的五個Python迷你程序(附代碼)
在使用Python的過程中,我最喜歡的就是Python的各種第三方庫,能夠完成很多操作。
下面就給大家介紹5個通過Python構(gòu)建的項目,以此來學(xué)習(xí)Python編程。
一、石頭剪刀布游戲
目標(biāo):創(chuàng)建一個命令行游戲,游戲者可以在石頭、剪刀和布之間進行選擇,與計算機PK。如果游戲者贏了,得分就會添加,直到結(jié)束游戲時,最終的分?jǐn)?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)
二、隨機密碼生成器
目標(biāo):創(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)建一個程序來模擬擲骰子。
提示:當(dā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