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.
①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.