Closed matiasmasjuan closed 2 years ago
Se puede usar la librería tabulate para mostrar las encomiendas hechas por el usuario?
¿Puedo usar la librería time para hacer time.sleep(random.randint(1,2)) para simular una pantalla de carga? No solo lo hace más realista cuando se pasa a un menú distinto. Sino que también hace que sea más fácil leer el texto que aparece en pantalla para el usuario.
Hola!!
@Jeremiah-PHP6 : Sí, puedes usar la librería tabulate
para mostrar las encomiendas en un formato mas "ordenado". Recuerda indicarlo en tu archivo README.md para que el ayudante corrector sepa que debe instalar esa librería antes de ejecutar tu tarea.
@Chumi-sun : No puedes usar la función sleep
de time
. Si bien es cierto que agregar delays puede hacer que el programa sea mas realista, el uso de pausas en el código puede ocasionar molestias al momento de corregir 😢. Imaginen que en la corrección ejecutamos su tarea varias veces, al momento de tener pausas lo único que ocasionas es que el tiempo de revisión aumente considerablemente.
Hola, no es una duda respecto a una libreria en particular, pero es posible el uso de clases? Lo pregunto puesto que OOP es materia vista en el curso de introducción a la programación, pero dicha materia está disponible en la semana 2 de contenidos.
Gracias de antemano.
Hola @Chalecons !
Sí, pueden hacer uso de cualquier contenido visto en el curso de introducción a la programación, por lo que está permitido el uso de clases, aunque no es obligatorio. Si bien en ese curso vieron una introducción a objetos, a lo largo de este curso veremos contenidos más profundos en relación al tema, por lo que recomendamos fuertemente revisar esos contenidos, ya que serán evaluados en las futuras tareas y actividades.
Hola, se puede hacer uso de la materia de manejo de excepciones para manejar los errores del usuario?
Desde ya, muchas gracias!
Puedo usar un archivo.py para almacenar variables de textos como constantes para que quede más ordenado?
Hola!
@Rolivares2 : Sí, puedes hacer uso de los contenidos de excepciones para manejar los inputs del usuario. Ahora bien, debes asegurarte de capturar correctamente los tipos de errores, ya que si usas solamente except Exception
será considerado como mala práctica y tendrá penalización.
@FabriRandon : Sí, está permitido el uso de nuevos archivo.py
para almacenar valores constantes, como los textos estándares de los menús o aspectos de ese estilo. Ahora bien, hacer uso de otros archivos.txt
o similares para almacenar variables temporales estaría prohibido, ya que la idea es que almacenen esas variables a lo largo de la ejecución del programa sin recurrir a archivos externos.
Hola, puedo hacer uso de la libreria 'os' para limpiar la pantalla cuando cambio de menu?
Hola @Maratripa !
No, no puedes usar la librería os
para limpiar la consola. Si bien esto podría verse más ordenado al momento de ejecutar la tarea, puede que el ayudante corrector quiera ver el estado de la consola en menús anteriores, por lo que limpiando la consola solo dificultarías más la corrección. Ahora bien, si quieres usar la librería os
para utilizar paths
relativos para los archivos, sí estaría permitido.
Hola, se pueden utilizar subclases (contenido semana 2)?
Hola @diegorakos !
Sí, pueden hacer uso de los contenidos de Programación orientada a objetos vista en el curso. Ahora bien, en el caso de que vayas a utilizar herencia, asegurate de que el modelamiento tenga sentido. Por ejemplo, no porque exista la clase Mesa
(que tiene 4 patas) y la clase Perro
(también tiene 4 patas) implica que Perro
deba heredar de Mesa
. Esto sería una mala práctica y perjudicaría la lectura y compresión del código.
Hola! Puedo hacer uso de los métodos .isnumeric()
y .isalpha()
para revisar que los inputs del usuario sean del tipo correcto?
Hola @benja420p !
Sí, no hay problema con que uses esos built-ins
para verificar los inputs del usuario.
Hola, una preguntaa, puedo usar la función de python exit() en vez de sys.exit()?
Hola @Maratripa !
No, no puedes el built-in exit
de python directamente, ya que puede no ser buena buena práctica. Si bien ambas funciones podrían ser "iguales" a simple vista, en realidad hay pequeñas diferencias.
exit
lo que realiza es cortar la ejecución del programa, por lo que cualquier comando o línea siguiente simplemente no será ejecutada.
En cambio, sys.exit
proviene del módulo sys
el cual siempre se encuentra disponible. Además, lo que realiza es levantar una excepción SystemExit
, por lo que uno podría captar ese error y darle nuevas funcionalidades si uno lo considera necesario. En ese sentido, utilizar sys.exit
es una forma un poco más "limpia" de terminar con la ejecución del programa y no estaría cerrándolo de forma tan abrupta.
se puede usar la librería "tabulate" en la tarea 0?
Hola @FlorenciaOnetto ! Tal como comenté con anterioridad, sí está permitido:
Hola!! @Jeremiah-PHP6 : Sí, puedes usar la librería
tabulate
para mostrar las encomiendas en un formato mas "ordenado". Recuerda indicarlo en tu archivo README.md para que el ayudante corrector sepa que debe instalar esa librería antes de ejecutar tu tarea.@Chumi-sun : No puedes usar la función
sleep
detime
. Si bien es cierto que agregar delays puede hacer que el programa sea mas realista, el uso de pausas en el código puede ocasionar molestias al momento de corregir cry. Imaginen que en la corrección ejecutamos su tarea varias veces, al momento de tener pausas lo único que ocasionas es que el tiempo de revisión aumente considerablemente.
Hola! Se puede hacer uso de la función quit()?
Hola @jinfantel !
Tal como comenté con anterioridad:
Hola @Maratripa !
No, no puedes el built-in
exit
de python directamente, ya que puede no ser buena buena práctica. Si bien ambas funciones podrían ser "iguales" a simple vista, en realidad hay pequeñas diferencias.
exit
lo que realiza es cortar la ejecución del programa, por lo que cualquier comando o línea siguiente simplemente no será ejecutada. En cambio,sys.exit
proviene del módulosys
el cual siempre se encuentra disponible. Además, lo que realiza es levantar una excepciónSystemExit
, por lo que uno podría captar ese error y darle nuevas funcionalidades si uno lo considera necesario. En ese sentido, utilizarsys.exit
es una forma un poco más "limpia" de terminar con la ejecución del programa y no estaría cerrándolo de forma tan abrupta.
La función quit
funciona prácticamente igual a la del exit
, solamente que también está levantando la excepción SystemExit
. Ahora bien, quit
proviene del módulo site
, el cual siempre se encuentra disponible al trabajar desde el interprete, pero no siempre lo estará si estas trabajando en proyectos de producción y debes tener esa librería cargando. En cambio sys.exit
viene del módulo sys
que siempre se encuentra disponible. Para efectos de este curso, no importaría cual usar, pero al trabajar en otro tipo de proyectos más avanzados y poseas algún trabajo en producción, es recomendable utilizar sys.exit
ya que te aseguras que el módulo siempre estará disponible.
En resumidas cuentas, si deseas cerrar el programa en algún momento determinado, es más recomendable utilizar sys.exit
ya que es considerado una mejor práctica.
Hola @matiasmasjuan, que sys
se encuentre siempre disponible significa que está permitido usar otros métodos de sys
como por ejemplo sys.path.insert
para añadir un directorio al path del sistema?
Hola @Fhanz !
No, cuando me refiero a disponible, es que se encuentre a disposición en la librería estándar de python en todo tipo de proyectos, no ha que este disponible en el curso. Con respecto a tu segunda pregunta sobre el uso de sys.path.insert
, estaría prohibido. Recuerda que dentro de las librerías permitidas está solo el uso de sys.exit
, no cualquier función de sys
. Ahora bien, no veo el uso que le podrías dar a sys.path.insert
, ya que me imagino que lo utilizarías para agregar paths absolutos a alguna ruta específica de tu sistema, lo cual tendría una penalización por formato según la guía de descuentos. No veo la necesidad de agregar un directorio al path, ya que si lo que quieres es abrir archivos contenidos en otras subcarpetas, perfectamente lo podrías realizar concatenando las rutas mediante os.path.join
. Te recomiendo revisar los contenidos de Paths de la semana 0 para mayor información.
De hecho, lo que hago con la función sys.path.insert
es entregarle el path relativo hecho con os.path.join
para importar un archivo con extensión .py
. Aún así no está permitido?
Hola! Queria saber si era mala practica el colocar en determinadas partes de la tarea inputs con texto diciendo "Pulse cualquier tecla para continuar", esto lo hago por ejemplo cuando el usuario quiere ver el estado de sus encomiendas y asi el usuario pueda visualizar el tiempo que quiera sus encomiendas y cuando termine se devuelva al menu de usuario, leí arriba que la libreria time con el comando sleep no se puede usar pero no estaba seguro si lo que estoy haciendo yo esta permitido o si seria una carga extra para la correción. Eso, ¡muchas gracias!
Hola! Puedo hacer uso de los métodos .isalnum() para revisar que los inputs del usuario sean del tipo correcto?
@Fhanz : sys.path.insert
está prohibido. Independiente que le entregues un path relativo para importar un archivo, al trabajar con sys.path
estarías trabajando con el importador de librerías de python y para efectos de esta tarea no tiene ningún sentido que lo utilicen. Recuerda que todo lo que sea en el mismo nivel de directorio lo pueden importar normalmente, sin la necesidad de usar sys.path
. Insisto en revisar los contenidos de Paths para evitar el uso de sys.path
.
@NicolasOlmosQuiroga: Sí, no hay problemas con que utilices un input con ese tipo de texto incluido 👌 .
@jahernandez2: Sí, puedes hacer uso del método isalnum
para verificar los inputs del usuario.
Hola! Encontré en internet una librería llamada PrettyTable la cual te permite crear tablas de manera muy práctica. Con respecto a esto, ¿hay algún problema con que la ocupe? Vi que dejaron ocupar tabulate() y creo que es como lo mismo, pero pregunto para salir de la duda.
Gracias de antemano! :)
Hola @paulmacguire !
Al igual que la librería tabultate
, PrettyTable
sí está permitido. Ahora bien, recuerda mencionar en tu README.md el uso de esta librería, para que el ayudante sepa que debe instalarla antes de correr tu programa.
holaa, entonces si están permitidas esas librerias de tablas mencionadas anteriormente, BeautifulTable también se puede ocupar?:)
Hola @beitmank!
Efectivamente, puedes usar BeautifulTable
siempre que lo notifiques en tu README.md para que el ayudante corrector no tenga problemas :ok_hand:
Hola! Se puede usar el comando ¨break¨en un for o un while?gracias.
Hola @Prado408 !
Sí, se puede usar break
en un for
o while
pero intentaría, en la medida de lo posible, de buscar otras alternativas de cerrar ciclos. De todas formas no habrá penalización si lo utilizas.
Hola, puedo utilizar las librerías fileinput y sys (no sys.exit), para poder escribir un archivo con una nueva línea (reemplazando una que tenía antes)?
Gracias
Hola, encontré una librería para abrir archivos con encoding, porque no se ejecuta bien las letras y no sé como modificarlo, encontré que con io podría hacerse, pero no sé si está permitido o hay una forma más sencilla de abrir archivos sin que las tildes interfieran? Gracias.
Hola! @Rolivares2 : Sí, puedes hacer uso de los contenidos de excepciones para manejar los inputs del usuario. Ahora bien, debes asegurarte de capturar correctamente los tipos de errores, ya que si usas solamente
except Exception
será considerado como mala práctica y tendrá penalización.@FabriRandon : Sí, está permitido el uso de nuevos
archivo.py
para almacenar valores constantes, como los textos estándares de los menús o aspectos de ese estilo. Ahora bien, hacer uso de otrosarchivos.txt
o similares para almacenar variables temporales estaría prohibido, ya que la idea es que almacenen esas variables a lo largo de la ejecución del programa sin recurrir a archivos externos.
No me queda claro. Puedo realizar un try: junto con un except ValueError?
@masoto22 : No, no pueden utilizar librerías externas para manejar archivos. Uno de los objetivos a evaluar en esta tarea es que ustedes sepan manejar la lectura y escritura de archivos con los contenidos aprendidos de cursos anteriores, por lo que no pueden utilizar librerías externas.
@TatyFlores : No, no está permitido el uso de io
para modificar los encoding
. Recuerda que para esta tarea es obligatorio el uso de encoding utf-8
, por lo que no es necesario requerir de librerías externas para realizar esto. Además, si revisas el enunciado de la sección de archivos, notarás que aparece una footnote con ejemplos de uso para leer y escribir archivos mediante utf-8
y así no tener problemas con caracteres especiales:
@pascualferrer : Para esta tarea no es necesario que realicen try/except
. En el ejemplo que dices, utilizar except ValueError
si estaría permitido siempre y cuando realices alguna acción con la excepción y manejes los errores de forma correcta, notificando al usuario de manera descriptiva.
Hola, puedo usar la libreria "time" para conseguir la fecha y hora exacta del momento? Que me resulta mas sencillo
@TomLgod : No puede utilizar la librería time
para obtener directamente la fecha y hora exacta del momento, ya que tanto el enunciado como la Distribución de Puntajes indican que debe ser con datetime
. Ahora bien, si luego de obtener la fecha y hora deseas cambiar el formato haciendo uso de otros métodos de la librería time
, sí estaría permitido el uso de esa librería.
Para consultar sobre una librería deben responder esta issue con una pregunta de la siguiente forma:
¡Recuerden especificar en su README qué librerías utilizan!
✅ Librerías Permitidas
❌ Librerías Prohibidas
☠️ Built-ins Prohibidos
El uso de alguna de las siguiente funciones es automáticamente un 1,0 sin discusión. 😭
(try/except)
(el uso correcto detry/except
es contenido que se verá en una futura semana del curso, por lo que se espera que las tareas previas a esa fecha puedan ser resueltas sin estebuilt-in
)¡Ánimo y éxito en sus tareas! 📬️🚐️