Time zones
Clase 20 de 21 • Curso Profesional de Python
Contenido del curso
Clase 20 de 21 • Curso Profesional de Python
Contenido del curso
Ángel Yasmani Viñamagua Cuenca
JUAN PABLO MAYORGA MENDIETA
Javier Suárez Meerhoff
Brayan Alexis Lechon Andrango
Alfredo José Sensente Cortez
Roberth Mateo Insuasti Guerrero
marco antonio
Cesar Hernández Ramírez
marco antonio
Aaron Contreras Garibay
Francisco Moreno
Elmer Jaén
Andrés Camilo Rozo Vanegas
Arturo Escobar Fernandez
Marcos Gomez
Roberto Andres Viruete Gonzalez
Pedro Alvarado Garcia
Roberto Andres Viruete Gonzalez
Miguel Angel Reyes Moreno
Miguel Angel Reyes Moreno
Rene Rosas
Joel Orellana
Evander Nassem Ramírez Hernández
Jonathan Vásquez Alvarado
Axel Alberto Jimenez
Lucas Yañez
Freddy William Martinez Cuzco
Carlos Orejuela
Angel Mejia
Gutemberg S. Mendoza Mestanza
Eduardo Pérez
Jonathan Edwin Gutiérrez Olvera
Jhon Freddy Tavera Blandon
Cesar Elías Armendariz Ruano
Ramdhei López Arcila
Excelente curso. ¡Aquí! les dejo los ejercicios y notas de toda esta tribología de Python (curso básico, intermedio y avanzado) en caso de que quieran revisar algo. Suerte a todos :)
muchas gracias muy buen aporte
gracias-1
Después de un par de días de pensar en algún proyecto he realizado un organizador de archivos, porque siempre mi carpeta de downloads esta toda desorganizada xd
al ejecutar el programa se ve asi
link del repositorio de GitHub
Este proyecto fue el que más me gustó definitivamente!
Muy buena has aplicado gran parte de lo que vimos en esta saga de cursos, felicidades!
!QReloj
No se me ocurrió nada excepcional así que solo hice un reloj XD
es simple solo cambia la hora y fecha presionando el botón que quieras !QReloj Si les gusto y si quieren jugar con el código o sienten curiosidad pueden verlo en mi github
¡Te quedó genial! ¿Cómo hiciste lo del reloj, para que sea todo más visual??
@CesarHera Muchas gracias >///< use Qt un framework que sirve en multiples lenguajes [ C, C++, ruby, python, java, pascal ] y muchos mas, dehecho deje el codigo en mi github por si deseas verlo
Si quieres cambiar el nombre a una variable (refactorizar) en VS code, coloca el cursor en la definición, presiona f2 y escribe el nuevo nombre
Excelente!
Excelente tip. Muchas gracias! 😃
Hola, te comparto mis apuntes de la trilogía de Python con Facundo. :snake: :unlock:
Escribeme si tienes alguna duda.
Muchas gracias!!
Del video anterior a este paso un año XD
no por favor yo queria que nos pusiera un desafio usted, o pudo dejarnos un desafio libre y uno en especifico , noooooooo
Hahaha sí, yo estoy batallando porque no se que hacer.
si es decir , pudo haber dejado un reto libre y uno especifico , hubiera sido mas divertido
Bueno, esto es lo que se me ocurrió hacer, no es mucho, pero es trabajo honesto:
from datetime import datetime import pytz def get_date_time_from_timezone(city_name:str, timezone:str)-> datetime: city_timezone = pytz.timezone(timezone) return datetime.now(city_timezone) london = get_date_time_from_timezone("London", "Europe/London") cdmx = get_date_time_from_timezone("LA", "America/Los_Angeles") difference = london - cdmx print(f'Diferencia entre London y CDMX: {difference}')
Antes de hacer el reto, dejo el código a modo de función para que sea más fácil de utilizar:
from datetime import datetime import pytz def get_date_time_from_timezone(city_name:str, timezone:str)-> str: city_timezone = pytz.timezone(timezone) city_time = datetime.now(city_timezone) print(f'{city_name}: {city_time.strftime("%d/%m/%Y, %H:%M:%S")}') get_date_time_from_timezone("London", "Europe/London") get_date_time_from_timezone("LA", "America/Los_Angeles") get_date_time_from_timezone("CDMX", "America/Mexico_City") get_date_time_from_timezone("Tokyo", "Asia/Tokyo") get_date_time_from_timezone("Sydney", "Australia/Sydney")
yo no se hacer proyectos y programas :( no se como plantear cosas y asi
soi io
Te recomiendo cursos los cursos de lógica de programación en Platzi, además de muchos, muchos ejercicios de Python en cualquier plataforma y checar los proyectos de los demás compañeros
CONTAR LAS PALABRAS DE UN AUDIO Tenía la curiosidad de saber que palabras se repiten mas en mis canciones favoritas, así que hice un programa para contar las palabras de un archivo de audio. Ahora funciona con solo audios de voz, pero espero poder mejorarlo para que extraiga las pistas de audio de la cancion entera (IA), se los dejo aquí: Github Jona-vz
Hola. ya no seguiste con tu proyecto? suena interesante.
No se me caia una idea de que proyecto hacer asiq la tome prestada del compañero Marco Antonio pero como no se usar pyQT tuve que usar la librería estandar de Python para interfaces gráficas , Tkinter, y como tampoco tengo mucha idea de ejes cartesianos el reloj es digital :)
Les comparto el codigo por si les interesa ver como funciona por dentro👨💻
from tkinter import * from datetime import datetime import pytz import time from functools import partial id_after = None #---------------(ARG)Clock function update def updateARG(): global id_after argentina_timezone = pytz.timezone("America/Buenos_Aires") argentina_hour = datetime.now(argentina_timezone) hour = argentina_hour.strftime('%H:%M:%S') date = argentina_hour.strftime('%A %d %B') country_screen.config(text="ARGENTINA",fg="goldenrod2") watch_screen.config(text=hour, fg="#64fff6") id_after = watch_screen.after(1000,updateARG) date_screen.config(text=date) #---------------(MEX)Clock function update def updateMEX(): global id_after mexico_timezone = pytz.timezone("America/Mexico_City") mexico_hour = datetime.now(mexico_timezone) hour = mexico_hour.strftime('%H:%M:%S') date = mexico_hour.strftime('%A %d %B') country_screen.config(text="MEXICO city",fg="red3") watch_screen.config(text=hour, fg="#00ad10") id_after = watch_screen.after(1000,updateMEX) #---------------(USA)Clock Function update def updateUSA(): global id_after usa_timezone = pytz.timezone("America/New_York") usa_hour = datetime.now(usa_timezone) hour = usa_hour.strftime('%H:%M:%S') date = usa_hour.strftime('%A %d %B') country_screen.config(text="New York",fg="dodger blue") watch_screen.config(text=hour, fg="brown2") id_after = watch_screen.after(1000,updateUSA) date_screen.config(text=date) def switchbutton(country): if id_after==None: if country =="ARG": return updateARG() elif country == "MEX": return updateMEX() elif country == "USA": return updateUSA() else: watch_screen.after_cancel(id_after) if country =="ARG": return updateARG() elif country == "MEX": return updateMEX() elif country=="USA": return updateUSA() root = Tk() root.title("Digital Watch") root.geometry("395x150") root.config(bg="#282828") #---------------Labels country_screen = Label(root,text="",font=("Bebas Neue",16), bg="#282828",fg="white") country_screen.place(x=10, y= 40) BotonARG=Button(root, text="ARG",bg="gold",fg="black",font=("Bebas Neue",15),relief="flat",command=partial(switchbutton,"ARG")) BotonARG.place(x=360,y=8) BotonMEX=Button(root, text="MEX",bg="gold",fg="black",font=("Bebas Neue",15),relief="flat",command=partial(switchbutton,"MEX")) BotonMEX.place(x=360,y=53) BotonUSA=Button(root, text="USA",bg="gold",fg="black",font=("Bebas Neue",15),relief="flat",command=partial(switchbutton,"USA")) BotonUSA.place(x=360,y=98) watch_screen = Label(root,text="",justify="right", fg="#64fff6", bg="#282828",font=("Technology",60)) watch_screen.place(x=105, y= 20) date_screen = Label(root,text="",justify="right",font=("Bebas Neue",15),fg="linen", bg="#282828") date_screen.place(x=150, y= 100) root.mainloop()
Reto: Es muy simple, y poco funcional, pero poco a poco veo que se me hace mas fácil hacer este tipo de programas. Contexto -El programa pregunta al usuario cuantos puntos quiere en el mapa, posterior genera las coordenadas aleatorias y las grafica consecuentemente generando un camino. -Te muestra el tiempo que se demoro el proceso. -Si "X" y "Y" son los mismos valores el programa la descarta. -Cree un modulo únicamente para graficar. -Trate de meter tipado, respetando los errores que me tiraba en consola con ("check-untyped-defs") CONCLUSION Eso es todo, nada de otro mundo. Seguro esto se puede resumir muy bien en menos líneas y de manera mas elegante, supongo que es una habilidad que se gana con la práctica.
from datetime import datetime import random from graph import Graphics from typing import List def time_ejecution(func): def time_decorator(*args, **kwargs): init_time = datetime.now() func(*args, **kwargs) end_time = datetime.now() total_time = end_time - init_time print("Tiempo: ", total_time.total_seconds()) return func(*args, **kwargs) return time_decorator def random_coor() -> set: x: int = random.randint(1,100) y: int = random.randint(1,100) return {x,y} def even_or_odd(numbers) -> set: if len(numbers) % 2 != 0: numbers.pop() return numbers @time_ejecution def main(): user_n_coor = int(input("Cuantas coordenadas?: ")) coor_x: List[int] = [] coor_y: List[int] = [] for _ in range(user_n_coor): coor_x_y = list(even_or_odd(random_coor())) if len(coor_x_y) >= 2: coor_x.append(coor_x_y[0]) coor_y.append(coor_x_y[1]) else: print("Coordenada Incompleta") print("COORDENADAS: \n","\n X: ", coor_x,"\n Y:", coor_y) Graphics.graph(coor_x, coor_y) if __name__ == '__main__': main()
MODULO PARA GRAFICAR
from bokeh.plotting import show, figure class Graphics(): def graph(x, y): draw = figure(title='RANDOM COOR', x_axis_label='X', y_axis_label='Y') draw.line(x, y, legend_label= ("Random")) show(draw)
En este programa quise hacer un análisis sobre un tema muy preocupante en la actualidad: La contaminacion ambiental. Mi objetivo principal fue encontrar cuales eran los paises que emiten las cantidades más altas de CO2 para luego verificar si existe una relación con su PIB, su %tasa de mortalidad y la esperanza de vida en cada una de ellas. Y lo que pude obtener es lo siguiente: GDP == PIB
""" Countries with... High CO2 emissions and high GDP: {'China', 'USA'} Low CO2 emissions and high life expectency: {'Germany', 'Japan'} High mortality rate and high CO2 emissions: {'USA'} """
Conclusiones: *Con estos resultados uno se puede percatar que las dos potencias más grandes del mundo son las que mayor PIB tiene, pero a su vez son los más contaminantes. *Los paises que menos contaminan tiene una esperanza de vida más alta. *USA a pesar de ser el segundo país más contaminante es el que tiene una mayor tasa de mortalidad .
Para este programa utilice: *Decorator *OOP *Sets *Typed static
Mi código: https://github.com/CarlosFOL/Environmental_Pollution Espero les guste.
Reto - calcular execution time en formato especifico y determinar hora en un lugar especifico o local: https://imgur.com/a/oGSQF8c
Este código ayuda a automatizar la tarea de compilar un código en C++ y ademas ordena sus archivos ejecutables. También imprime con bonitos colores en la terminal.
import os import re # This code works better with terminal command key extension in vscode class Route: def __init__(self, route): self.route = route def find_cpp_file(self): self.route = self.route[::-1] my_file = "" for i in self.route[1::]: if i !="/": my_file += i else: break return my_file[::-1] def delete_cpp_ext(self,cpp_file)->str: my_file_name = "" for i in cpp_file: if i != ".": my_file_name += i else: break return my_file_name def get_file_type(self, my_file)->bool: return re.search("cpp", my_file) #myfile.cpp class bcolors: HEADER = '\033[95m' OKBLUE = '\033[94m' OKGREEN = '\033[92m' WARNING = '\033[93m' FAIL = '\033[91m' ENDC = '\033[0m' def disable(self): self.HEADER = '' self.OKBLUE = '' self.OKGREEN = '' self.WARNING = '' self.FAIL = '' self.ENDC = '' def foo(): x = input("Here: ") print(x) def main(): promt = f"{bcolors.HEADER}Press cmd+h -->{bcolors.ENDC}" route_raw = input(promt) my_route = Route(route_raw) route_cpp = my_route.find_cpp_file() route_exe = my_route.delete_cpp_ext(route_cpp) print() if os.system("g++ {} -o bin/{}".format(route_cpp,route_exe)) == 0 : print(f"{bcolors.OKGREEN}----------------------{bcolors.ENDC}") print(f"{bcolors.OKGREEN}Compiled Successfully!{bcolors.ENDC}") print(f"{bcolors.OKGREEN}----------------------{bcolors.ENDC}") print('\n') os.system("./bin/{}".format(route_exe)) print('\n') elif re.search("/",route_raw)== None: print(f"{bcolors.FAIL}---------------------------------------------{bcolors.ENDC}") print(f"{bcolors.FAIL}Press cmd+h or check your keyboard shortcuts.{bcolors.ENDC}") print(f"{bcolors.FAIL}---------------------------------------------{bcolors.ENDC}") elif (my_route.get_file_type(route_cpp)) == None: print(f"{bcolors.WARNING}------------------------------------------------------------------------{bcolors.ENDC}") print(f"{bcolors.WARNING}Only works for c++ files. Your active vscode file isn't a c++/.cpp file.{bcolors.ENDC}") print(f"{bcolors.WARNING}------------------------------------------------------------------------{bcolors.ENDC}") else: print(f"{bcolors.FAIL}----------------{bcolors.ENDC}") print(f"{bcolors.FAIL}Debug your code!{bcolors.ENDC}") print(f"{bcolors.FAIL}----------------{bcolors.ENDC}") if __name__ == '__main__': main()
Esta buenisimo! Tuve la oportunidad de trabajar en un lugar donde la herramienta que se usaba para compilar y correr los test de C++ estaba hecha en Python, se usa mucho en la industria para este tipo de tareas
Mi proyecto fue un programa que te permite crear y notificar de recordatorios que el usuario vaya añadiendo.
Si quieren checarlo aquí esta el repositorio de GitHub 😁
****reto ****
import random # se define una constante con mayusculas IMAGES = [''' +---+ | | | | | | =========''', ''' +---+ | | O | | | | =========''', ''' +---+ | | O | / | | | =========''', ''' +---+ | | O | /| | | | =========''', ''' +---+ | | O | /|\ | | | =========''', ''' +---+ | | O | /|\ | | | | =========''', ''' +---+ | | O | /|\ | | | / | =========''', ''' +---+ | | O | /|\ | | | / \ | =========''', ''' '''] WORD=['lavadora','secadora','sofa','diana','democracia','diputado','teclado'] def main(): word = random_word() hidden_word=['_']*len(word) # uso de cadenas tries=0 # intentos while True: # Mostrar el tablero show_board(hidden_word,tries) current_letter =str(input('Escoge una letra: ')) current_letter = current_letter.lower() # Logica letter_indexes=[] for idx in range(len(word)): if word[idx] == current_letter: letter_indexes.append(idx) if(len(letter_indexes))==0: # si la lista esta vacia no fue correcto tries += 1 if tries== 7: show_board(hidden_word, tries) print('') print('') print('Perdiste, La palabra correcta era {}'.format(word)) break else: # si la lista tiene algo se cambia el _ por la letra digitada for idx in letter_indexes: hidden_word[idx] = current_letter letter_indexes =[] try: hidden_word.index('_') except ValueError: print('') print('GANASTE, Felicidades!. La palabra es {}'.format(word)) break def show_board(hidden_word,tries): print(IMAGES[tries]) print('') print(hidden_word) print('_.~"~._.~"~._.~"~._.~"~.~"~._.~"~._.~"~._.~"~._') def random_word(): idx = random.randint(0, len(WORD)-1) return WORD[idx] if __name__ == '__main__': print('B I EN V E N I D O S A L J U E G O A H O R C A D O S') main()
resultado
+---+ | | | | | | ========= ['_', '_', '_', '_', '_', '_', '_', '_', '_', '_'] _.~"~._.~"~._.~"~._.~"~.~"~._.~"~._.~"~._.~"~._ Escoge una letra: t +---+ | | O | | | | ========= ['_', '_', '_', '_', '_', '_', '_', '_', '_', '_'] _.~"~._.~"~._.~"~._.~"~.~"~._.~"~._.~"~._.~"~._ Escoge una letra: e +---+ | | O | | | | ========= ['_', 'e', '_', '_', '_', '_', '_', '_', '_', '_'] _.~"~._.~"~._.~"~._.~"~.~"~._.~"~._.~"~._.~"~._ Escoge una letra: w +---+ | | O | / | | | ========= ['_', 'e', '_', '_', '_', '_', '_', '_', '_', '_'] _.~"~._.~"~._.~"~._.~"~.~"~._.~"~._.~"~._.~"~._ Escoge una letra: a +---+ | | O | / | | | ========= ['_', 'e', '_', '_', '_', '_', 'a', '_', '_', 'a'] _.~"~._.~"~._.~"~._.~"~.~"~._.~"~._.~"~._.~"~._ Escoge una letra: d +---+ | | O | / | | | ========= ['d', 'e', '_', '_', '_', '_', 'a', '_', '_', 'a'] _.~"~._.~"~._.~"~._.~"~.~"~._.~"~._.~"~._.~"~._ Escoge una letra: f +---+ | | O | /| | | | ========= ['d', 'e', '_', '_', '_', '_', 'a', '_', '_', 'a'] _.~"~._.~"~._.~"~._.~"~.~"~._.~"~._.~"~._.~"~._ Escoge una letra: g +---+ | | O | /|\ | | | ========= ['d', 'e', '_', '_', '_', '_', 'a', '_', '_', 'a'] _.~"~._.~"~._.~"~._.~"~.~"~._.~"~._.~"~._.~"~._ Escoge una letra: +---+ | | O | /|\ | | | | ========= ['d', 'e', '_', '_', '_', '_', 'a', '_', '_', 'a'] _.~"~._.~"~._.~"~._.~"~.~"~._.~"~._.~"~._.~"~._ Escoge una letra: hj +---+ | | O | /|\ | | | / | ========= ['d', 'e', '_', '_', '_', '_', 'a', '_', '_', 'a'] _.~"~._.~"~._.~"~._.~"~.~"~._.~"~._.~"~._.~"~._ Escoge una letra: kjy +---+ | | O | /|\ | | | / \ | ========= ['d', 'e', '_', '_', '_', '_', 'a', '_', '_', 'a'] _.~"~._.~"~._.~"~._.~"~.~"~._.~"~._.~"~._.~"~._ Perdiste, La palabra correcta era democracia jhonftb3@JFTB:/mnt/c/Users/user/Documents$
El código con funciones
from datetime import datetime import pytz def timezone(city: str): ciudad = city.lower().capitalize() timezone = pytz.timezone('America/'+ciudad) date = datetime.now(timezone) print('La hora requerida es:') print(f"{ciudad}: {date.strftime('%d/%m/%Y, %H:%M:%S')}") def cities(func): def wrapper(*args, **kwargs): func(*args, **kwargs) print('Gracias por usar la aplicación, adios!!') return wrapper @cities def city_time(): city = input('Ingresa la ciudad de la que quieres saber su hora: ') timezone(city) if __name__ == '__main__': city_time()
Por acá dejo la lista de las zonas horarias que maneja pytz https://gist.github.com/heyalexej/8bf688fd67d7199be4a1682b3eec7568