22 miniprogramas de Python que vale la pena aprender (con código)

Introducción

La rica ecología de desarrollo de Python es una de sus principales ventajas. Varias bibliotecas, marcos y códigos de terceros son "ruedas" creadas por predecesores, que pueden completar muchas operaciones y hacer que su desarrollo sea más eficiente.

Aquí hay 22 proyectos creados con Python para aprender a programar en Python.

Estos ejemplos son simples y prácticos, perfectos para que los principiantes practiquen. También puede intentar construir una solución usted mismo de acuerdo con el propósito y los consejos del proyecto para mejorar el nivel de programación.

Si desea obtener un código fuente más completo y materiales de aprendizaje de Python, puede hacer clic en esta línea de fuentes

①Simulador de dados

Propósito: Crear un programa para simular el lanzamiento de dados.

Consejo: use el módulo aleatorio para generar un número entre 1 y 6 cuando el usuario pregunta

②Juego de piedra , papel o tijera

Objetivo: crear un juego de línea de comandos en el que los jugadores puedan elegir entre piedra, tijera y papel, y jugar contra la computadora. Si el jugador gana, el puntaje se agrega hasta el final del juego, el puntaje final se muestra al jugador.

Pista: Reciba la elección del jugador y compárela con la elección de la computadora. La elección de la computadora se selecciona aleatoriamente de una lista de selección. Si el jugador gana, suma 1 punto.

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)

③Generador de  contraseñas

Objetivo: crear un programa que genere una cadena aleatoria de contraseñas con una longitud de contraseña específica.

Sugerencia: cree una cadena de números + letras mayúsculas + letras minúsculas + caracteres especiales. Genere aleatoriamente una cadena de contraseñas de acuerdo con la longitud de la contraseña establecida.

④Generador  de

Propósito: generar oraciones aleatorias y únicas a partir de la entrada proporcionada por el usuario.

Consejo: Tome como entrada los sustantivos, pronombres, adjetivos, etc. ingresados ​​por el usuario, luego agregue todos los datos a la oración y devuélvalos en combinación.

  Adivina el juego de números

Propósito: En este juego, la tarea es crear un script capaz de generar un número aleatorio dentro de un rango. Si el usuario adivina el número correctamente en tres oportunidades, el usuario gana el juego, de lo contrario, el usuario pierde.

Sugerencia: genere un número aleatorio, luego use un ciclo para darle al usuario tres oportunidades de adivinar e imprima el resultado final según la suposición del usuario.

⑥Generador de  historias

Propósito: Cada vez que el usuario ejecuta el programa, se genera una historia aleatoria.

CONSEJO: El módulo aleatorio se puede usar para seleccionar partes aleatorias de la historia de cada lista.

  Cortador de direcciones de correo electrónico

Propósito: escribir un script de Python que pueda obtener el nombre de usuario y el nombre de dominio de una dirección de correo electrónico.

Sugerencia: use @ como delimitador para dividir la dirección en dos cadenas.

  Enviar correos electrónicos automáticamente

Propósito: escribir un script de Python que se pueda usar para enviar correos electrónicos.

Sugerencia: la biblioteca de correo electrónico se puede utilizar para enviar correos electrónicos.

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

  Abreviaturas

Propósito: escribir un script de Python que genere un acrónimo a partir de una oración dada.

Sugerencia: puede obtener la primera palabra dividiendo e indexando, luego combínela.

  Juego de aventuras de texto

Objetivo: escribir un script de Python divertido que lleve al usuario a una aventura divertida eligiendo diferentes opciones para el camino

 Ahorcado

Propósito: crear un juego de ahorcado de línea de comando simple.

Consejo: crea una lista de contraseñas y elige una palabra al azar. Cada palabra ahora está representada por un guión bajo "_", lo que le da al usuario la oportunidad de adivinar la palabra y, si el usuario adivina la palabra correctamente, reemplaza el "_" con la palabra.

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

   Despertador

Propósito: escribir un script de Python que cree un despertador.

Sugerencia: puede usar el módulo de fecha y hora para crear alarmas y la biblioteca de sonidos para reproducir sonidos.

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

   Audiolibros

Propósito: escribir un script de Python para convertir archivos PDF en audiolibros.

Consejo: Convierta texto a voz con la ayuda de la biblioteca pyttsx3.

Instalación: pyttsx3, PyPDF2

⑭ Aplicación del  tiempo

Propósito: Escribir un script de Python que reciba el nombre de la ciudad y use el rastreador para obtener la información meteorológica de la ciudad.

Sugerencia: puede usar Beautifulsoup y las bibliotecas de solicitudes para extraer datos directamente de la página de inicio de Google.

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)

Instalación: solicitudes, BeautifulSoup

⑮Detección de  rostros

Propósito: escribir un script de Python que pueda detectar rostros en una imagen y guardar todos los rostros en una carpeta.

Sugerencia: puede usar el clasificador en cascada de haar para detectar rostros. La información de coordenadas de la cara que devuelve se puede guardar en un archivo.

Instalación: OpenCV.

Descargar: 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.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()

 ⑯ Aplicación de  recordatorio

Propósito: crear una aplicación de recordatorio que le recuerde hacer algo en un momento específico (notificación de escritorio).

Sugerencia: el módulo de tiempo se puede usar para realizar un seguimiento de los tiempos de los recordatorios, y la biblioteca de notificaciones de brindis se puede usar para mostrar notificaciones de escritorio.

Instalación: 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)     

   Resumen del artículo de Wikipedia

Propósito: utilice un método simple para generar resúmenes a partir de enlaces a artículos proporcionados por el usuario.

Sugerencia: puede usar un rastreador para obtener datos de artículos y generar resúmenes extrayendo

from bs4 import BeautifulSoup
import re
import requests
import heapq
from nltk.tokenize import sent_tokenize,word_tokenize
from nltk.corpus import stopwords

url = str(input("Paste the url"\n"))
num = int(input("Enter the Number of Sentence you want in the summary"))
num = int(num)
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'}
#url = str(input("Paste the url......."))
res = requests.get(url,headers=headers)
summary = ""
soup = BeautifulSoup(res.text,'html.parser') 
content = soup.findAll("p")
for text in content:
    summary +=text.text 
def clean(text):
    text = re.sub(r"\[[0-9]*\]"," ",text)
    text = text.lower()
    text = re.sub(r'\s+'," ",text)
    text = re.sub(r","," ",text)
    return text
summary = clean(summary)

print("Getting the data......\n")


##Tokenixing
sent_tokens = sent_tokenize(summary)

summary = re.sub(r"[^a-zA-z]"," ",summary)
word_tokens = word_tokenize(summary)
## Removing Stop words

word_frequency = {}
stopwords =  set(stopwords.words("english"))

for word in word_tokens:
    if word not in stopwords:
        if word not in word_frequency.keys():
            word_frequency[word]=1
        else:
            word_frequency[word] +=1
maximum_frequency = max(word_frequency.values())
print(maximum_frequency)          
for word in word_frequency.keys():
    word_frequency[word] = (word_frequency[word]/maximum_frequency)
print(word_frequency)
sentences_score = {}
for sentence in sent_tokens:
    for word in word_tokenize(sentence):
        if word in word_frequency.keys():
            if (len(sentence.split(" "))) <30:
                if sentence not in sentences_score.keys():
                    sentences_score[sentence] = word_frequency[word]
                else:
                    sentences_score[sentence] += word_frequency[word]

print(max(sentences_score.values()))
def get_key(val): 
    for key, value in sentences_score.items(): 
        if val == value: 
            return key 
key = get_key(max(sentences_score.values()))
print(key+"\n")
print(sentences_score)
summary = heapq.nlargest(num,sentences_score,key=sentences_score.get)
print(" ".join(summary))
summary = " ".join(summary)

 Obtener resultados de búsqueda de Google

Propósito: crear una secuencia de comandos que pueda obtener datos de la Búsqueda de Google en función de los criterios de consulta.

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 google(query):
    query = query.replace(" ","+")
    try:
        url = f'https://www.google.com/search?q={query}&oq={query}&aqs=chrome..69i57j46j69i59j35i39j0j46j0l2.4948j0j7&sourceid=chrome&ie=UTF-8'
        res = requests.get(url,headers=headers)
        soup = BeautifulSoup(res.text,'html.parser')
    except:
        print("Make sure you have a internet connection")
    try:
        try:
            ans = soup.select('.RqBzHd')[0].getText().strip()

        except:
            try:
                title=soup.select('.AZCkJd')[0].getText().strip()
                try:
                    ans=soup.select('.e24Kjd')[0].getText().strip()
                except:
                    ans=""
                ans=f'{title}\n{ans}'

            except:
                try:
                    ans=soup.select('.hgKElc')[0].getText().strip()
                except:
                    ans=soup.select('.kno-rdesc span')[0].getText().strip()

    except:
        ans = "can't find on google"
    return ans

result = google(str(input("Query\n")))
print(result)

Los resultados obtenidos son los siguientes.

 Convertidor de divisas

Propósito: escribir un script de Python que pueda convertir una moneda a la moneda elegida por otro usuario.

Sugerencia: use la API en Python o a través del módulo forex-python para obtener tasas de cambio de divisas en tiempo real.

Instalar: forex-python

Registrador de  teclas

Propósito: escribir un script de Python que guarde todas las teclas presionadas por el usuario en un archivo de texto.

Consejo: pynput es una biblioteca en Python para controlar los movimientos del teclado y el mouse, también se puede usar para hacer keyloggers. Simplemente lea las teclas que presionó el usuario y guárdelas en un archivo de texto después de un cierto número de teclas.

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

 ㉑Lector de  artículos

Propósito: escribir un script de Python que lea automáticamente los artículos de los enlaces provistos.

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

 Generador de URL cortas

Propósito: Escribir un script de Python que acorte una URL dada usando la API.

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()
-----------------------------OUTPUT------------------------
python url_shortener.py https://www.wikipedia.org/
https://tinyurl.com/buf3qt3

 Resumir:

Algunos de los proyectos necesitan ser ajustados apropiadamente. Por ejemplo, para enviar correos electrónicos automáticamente, puede elegir usar el buzón QQ; para consultar información meteorológica, también puede usar algunas API gratuitas en China; Wikipedia puede corresponder a la Enciclopedia de Baidu; la búsqueda de Google puede corresponder a la búsqueda de Baidu, etc.

Estas son todas las cosas a las que debes prestar atención cuando corres.

 final

Lo anterior es el contenido compartido hoy ~ ¡Espero que te ayude un poco! Si te gusta, recuerda darle tres golpes al editor antes de irte.

Supongo que te gusta

Origin blog.csdn.net/L010409/article/details/123177415
Recomendado
Clasificación