page contents

建议收藏,22个Python迷你项目(附源码)

在使用Python的过程中,我最喜欢的就是Python的各种第三方库,能够完成很多操作。下面就给大家介绍22个通过Python构建的项目,以此来学习Python编程。

在使用Python的过程中,我最喜欢的就是Python的各种第三方库,能够完成很多操作。


下面就给大家介绍22个通过Python构建的项目,以此来学习Python编程。


大家也可根据项目的目的及提示,自己构建解决方法,提高编程水平。



 骰子模拟器


目的:创建一个程序来模拟掷骰子。


提示:当用户询问时,使用random模块生成一个1到6之间的数字。


图片



 石头剪刀布游戏


目标:创建一个命令行游戏,游戏者可以在石头、剪刀和布之间进行选择,与计算机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)



 随机密码生成器


目标:创建一个程序,可指定密码长度,生成一串随机密码。


提示:创建一个数字+大写字母+小写字母+特殊字符的字符串。根据设定的密码长度随机生成一串密码。


图片



 句子生成器


目的:通过用户提供的输入,来生成随机且唯一的句子。


提示:以用户输入的名词、代词、形容词等作为输入,然后将所有数据添加到句子中,并将其组合返回。


图片



 猜数字游戏


目的:在这个游戏中,任务是创建一个脚本,能够在一个范围内生成一个随机数。如果用户在三次机会中猜对了数字,那么用户赢得游戏,否则用户输。


提示:生成一个随机数,然后使用循环给用户三次猜测机会,根据用户的猜测打印最终的结果。


图片



 故事生成器


目的:每次用户运行程序时,都会生成一个随机的故事。


提示:random模块可以用来选择故事的随机部分,内容来自每个列表里。


图片



 邮件地址切片器


目的:编写一个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



 缩写词


目的:编写一个Python脚本,从给定的句子生成一个缩写词。


提示:你可以通过拆分和索引来获取第一个单词,然后将其组合。


图片



 文字冒险游戏


目的:编写一个有趣的Python脚本,通过为路径选择不同的选项让用户进行有趣的冒险。


图片



 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"



 闹钟


目的:编写一个创建闹钟的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



 有声读物


目的:编写一个Python脚本,用于将Pdf文件转换为有声读物。


提示:借助pyttsx3库将文本转换为语音。


安装:pyttsx3,PyPDF2


图片



 天气应用


目的:编写一个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)



 人脸检测


目的:编写一个Python脚本,可以检测图像中的人脸,并将所有的人脸保存在一个文件夹中。


提示:可以使用haar级联分类器对人脸进行检测。它返回的人脸坐标信息,可以保存在一个文件中。


安装:OpenCV。

下载:haarcascade_frontalface_default.xml

https://raw.githubusercontent.com/opencv/opencv/master/data/haarcascades/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.34)
# Draw rectangle around the faces
for (x, y, w, h) in faces:
    cv2.rectangle(img, (x, y), (x+w, y+h), (25500), 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()


 提醒应用


目的:创建一个提醒应用程序,在特定的时间提醒你做一些事情(桌面通知)。


提示:Time模块可以用来跟踪提醒时间,toastnotifier库可以用来显示桌面通知。


安装:win10toast


from win10toast import ToastNotifier
import time
toaster = ToastNotifier()
try:
    print("Title of reminder")
    header = input()
    print("Message of rem

  • 发表于 2021-04-22 19:27
  • 阅读 ( 692 )
  • 分类:Python开发

0 条评论

请先 登录 后评论
小柒
小柒

1320 篇文章

作家榜 »

  1. 轩辕小不懂 2403 文章
  2. 小柒 1320 文章
  3. Pack 1135 文章
  4. Nen 576 文章
  5. 王昭君 209 文章
  6. 文双 71 文章
  7. 小威 64 文章
  8. Cara 36 文章