Corrige el informe de gastos
Un empleado recibe un informe de gastos de la compañía de tarjetas de crédito. Debe modificar los importes de ciertas actividades antes de presentarlo a su empleador para que se los reembolse. La entrada es una cadena multilínea. Cada línea tiene la siguiente forma:
- activity_description = $amountLas actividades se dividen en cuatro categorías:
activity = {
"secret": ["bribery", "spying", "settlement", "poaching"],
"undesirable": ["gambling", "alcohol", "sex"],
"illegal": ["drugs", "gun", "speeding"]
}
# "normal" — any other activity that does not have a word
# (case non-sensitive) from the 3 lists mentioned above.- Para una actividad
secret, reemplazaactivity_descriptionporlen(description) * "x"y multiplica elamountpor1.2(y redondéalo a 2 decimales) para obtener una propina secreta para ti. Estos gastos ayudan a la empresa a alcanzar sus objetivos y a que no se revisen con demasiado cuidado. - Para una actividad
undesirable, mantén la descripción tal como está, pero divide elamountpor2(y redondéalo a 2 decimales) para promover una imagen positiva del empleado. - La línea de las actividades ilegales debe eliminarse por completo del informe. Nadie tiene por qué verla.
- Las actividades normales permanecen sin cambios.
Escribe dos expresiones regulares que se pasarán a re.sub() para modificar el informe.
pattern = ...
repl = ...Ejemplos
8 activities: 2 from each category
s = """
- Rental car costs = $175.00
- Supplier bribery = $70000.00
- Coffee with secretary = $5.20
- Speeding ticket = $15.99
- Spying on competitors = $900.00
- Electroshock gun = $1500.00
- Online gambling = $500.00
- Alcoholic cocktail = $16.00
"""
re.sub(pattern, repl, s) ➞
6 remaining activities: 4 modified, 2 kept unchanged, 2 replaced with empty sting
"""
- Rental car costs = $175.00
- xxxxxxxxxxxxxxxx = $84000.00
- Coffee with secretary = $5.20
- xxxxxxxxxxxxxxxxxxxxx = $1080.00
- Online gambling = $250.00
- Alcoholic cocktail = $8.00
"""Notas
Prerequisito: la serie de Ejercicios de RegEx de Alessandro.