Ejercicios Lección 5
Ejercicios de lo aprendido en la lección 5
Probando mi twttr
En un archivo llamado twttr.py
, del ejercicio anterior, vuelva a implementar Configurar mi twttr del Conjunto de problemas 2 , reestructurando su código según lo siguiente, donde shorten
espera a str
como entrada y devuelve lo mismo str
pero con todas las vocales (A, E, I, O y U) omitidas, ya sea ingresado en mayúsculas o minúsculas.
def main():
...
def shorten(word):
...
if __name__ == "__main__":
main()
Luego, en un archivo llamado test_twttr.py
, implemente una o más funciones que en conjunto prueben su implementación a shorten
fondo, cada uno de cuyos nombres debe comenzar con test_
para que pueda ejecutar sus pruebas con:
pytest test_twttr.py
Consejos
Asegúrate de incluir
import twttr
o
from twttr import shorten
encima
test_twttr.py
para que pueda solicitarshorten
sus pruebas.Tenga cuidado de
return
noprint
entrar . Sólo debería llamar .str``shorten``main``print
De vuelta al banco
En un archivo llamado bank.py
, de los ejercicios anteriores, vuelva a implementar Home Federal Savings Bank del conjunto de problemas 1 , reestructurando su código según lo siguiente, donde value
espera a str
como entrada y devuelve un int
, es decir, 0
si str
comienza con "hola", 20
si str
comienza con una "h" (pero no “hola”), o 100
de otro modo, tratar el str
caso sin distinguir entre mayúsculas y minúsculas. Puede suponer que la cadena pasada a la value
función no contendrá espacios iniciales. Sólo main
debería llamar print
.
def main():
...
def value(greeting):
...
if __name__ == "__main__":
main()
Luego, en un archivo llamado test_bank.py
, implemente tres o más funciones que en conjunto prueben su implementación a value
fondo, cada uno de cuyos nombres debe comenzar con test_
para que pueda ejecutar sus pruebas con:
pytest test_bank.py
Consejos
Asegúrate de incluir
import bank
o
from bank import value
encima
test_bank.py
para que pueda solicitarvalue
sus pruebas.Tenga cuidado de
return
no entrar . Sólo debería llamar .print``int``value``main``print
Volver a solicitar un plato de tocador
En un archivo llamado plates.py
, vuelva a implementar Vanity Plates del conjunto de problemas 2 , reestructurando su código según lo siguiente, donde is_valid
todavía espera una str
entrada y devuelve True
si str
cumple con todos los requisitos y False
si no los cumple, pero main
solo se llama si el valor de __name__
es "__main__"
:
def main():
...
def is_valid(s):
...
if __name__ == "__main__":
main()
Luego, en un archivo llamado test_plates.py
, implemente cuatro o más funciones que en conjunto prueben su implementación a is_valid
fondo, cada uno de cuyos nombres debe comenzar con test_
para que pueda ejecutar sus pruebas con:
pytest test_plates.py
Consejos
Asegúrate de incluir
import plates
o
from plates import is_valid
encima
test_plates.py
para que pueda solicitaris_valid
sus pruebas.Tenga cuidado de
return
noprint
entrar . Sólo debería llamar .bool``is_valid``main``print
Repostaje
En un archivo llamado fuel.py
, vuelva a implementar Fuel Gauge del conjunto de problemas 3 , reestructurando su código según lo siguiente, en el que:
convert
espera un formatostr
inX/Y
como entrada, donde cada uno deX
yY
es un número entero, y devuelve esa fracción como un porcentaje redondeado al más cercanoint
entre0
y100
, inclusive. SiX
y/oY
no es un número entero, o siX
es mayor queY
, entoncesconvert
debería generar unValueError
. SiY
es así0
, entoncesconvert
debería generar unZeroDivisionError
.gauge
espera unint
y devuelve unstr
que es:"E"
siint
es menor o igual a1
,"F"
siint
es mayor o igual a99
,- y
"Z%"
de lo contrario, dondeZ
es lo mismoint
.
def main():
...
def convert(fraction):
...
def gauge(percentage):
...
if __name__ == "__main__":
main()
Luego, en un archivo llamado test_fuel.py
, implemente dos o más funciones que prueben colectivamente sus implementaciones de convert
y gauge
en profundidad, cada uno de cuyos nombres debe comenzar con test_
para que pueda ejecutar sus pruebas con:
pytest test_fuel.py
Consejos
Asegúrate de incluir
import fuel
o
from fuel import convert, gauge
encima
test_fuel.py
para que puedas llamarconvert
ygauge
en tus pruebas.Tenga cuidado con
return
, noprint
, unaint
entradaconvert
y unastr
entradagauge
. Sólomain
debería llamarprint
.Tenga en cuenta que puede generar una excepción
ValueError
con código como:raise ValueError
Tenga en cuenta que puede verificar
pytest
si una función generó una excepción, según docs.pytest.org/en/latest/how-to/assert.html#assertions-about-expected-exceptions .