def mostrar_menu():
print("\nEstimado Sr. Presidente, seleccione el país:")
print("1. Vietnam (46%)")
print("2. Suiza (31%)")
print("3. Laos (48%)")
print("4. Francia (20%)")
print("5. España (20%)")
print("6. Italia (20%)")
print("7. Marruecos (10%)")
print("8. Colombia (10%)")
print("9. Perú (10%)")
print("10. Ecuador (10%)")
print("11. Salir del programa")
def obtener_tasa(opcion):
tasas = {
1: ("Vietnam", 46),
2: ("Suiza", 31),
3: ("Laos", 48),
4: ("Francia", 20),
5: ("España", 20),
6: ("Italia", 20),
7: ("Marruecos", 10),
8: ("Colombia", 10),
9: ("Perú", 10),
10: ("Ecuador", 10)
}
return [Link](opcion, (None, None))
def main():
while True:
mostrar_menu()
try:
opcion = int(input("Ingrese el número del país: "))
if opcion == 11:
print("Saliendo del programa. Hasta luego, Sr. Presidente.")
break
pais, tasa = obtener_tasa(opcion)
if pais:
print(f"La tasa aplicable en {pais} es del {tasa}%.")
else:
print("Opción no válida. Por favor, intente de nuevo.")
except ValueError:
print("Entrada inválida. Ingrese un número entre 1 y 11.")
if __name__ == "__main__":
main()
Estimado Sr. Presidente, seleccione el país:
1. Vietnam (46%)
2. Suiza (31%)
3. Laos (48%)
4. Francia (20%)
5. España (20%)
6. Italia (20%)
7. Marruecos (10%)
8. Colombia (10%)
9. Perú (10%)
10. Ecuador (10%)
11. Salir del programa
Ingrese el número del país: 2
La tasa aplicable en Suiza es del 31%.
Estimado Sr. Presidente, seleccione el país:
...
🧠 Estructura del Script
python
CopiarEditar
def mostrar_menu():
...
Este bloque define una función llamada mostrar_menu() que simplemente imprime el
menú de opciones que el usuario verá. Las funciones te permiten organizar tu código en
bloques reutilizables.
python
CopiarEditar
def obtener_tasa(opcion):
...
Otra función que recibe un número (opcion) y devuelve el país y su tasa
correspondiente, usando un diccionario.
python
CopiarEditar
def main():
...
La función principal main() contiene la lógica principal del programa: muestra el menú,
recibe la opción del usuario, busca la tasa, y muestra la respuesta.
Finalmente:
python
CopiarEditar
if __name__ == "__main__":
main()
Este bloque indica que si este archivo se ejecuta directamente, entonces debe correr la
función main().
🧾 Línea por línea explicada
1. Mostrar el menú
python
CopiarEditar
def mostrar_menu():
print("\nEstimado Sr. Presidente, seleccione el país:")
print("1. Vietnam (46%)")
print("2. Suiza (31%)")
...
● print(...): Muestra texto en pantalla.
● \n: Salto de línea para dejar un espacio antes del menú.
● Cada print muestra una línea del menú.
2. Guardar tasas en un diccionario
python
CopiarEditar
def obtener_tasa(opcion):
tasas = {
1: ("Vietnam", 46),
2: ("Suiza", 31),
...
}
return [Link](opcion, (None, None))
● Aquí usamos un diccionario (tasas) que asocia cada número con un par de
valores: el país y su tasa.
● [Link](opcion, (None, None)): Busca la opción en el diccionario. Si no la
encuentra, devuelve (None, None) para saber que no es válido.
3. Función principal
python
CopiarEditar
def main():
while True:
● while True: crea un bucle infinito, es decir, el menú se repite hasta que el
usuario elija salir.
python
CopiarEditar
mostrar_menu()
● Llama a la función que imprime el menú.
python
CopiarEditar
try:
opcion = int(input("Ingrese el número del país: "))
● input(...): Pregunta algo al usuario.
● int(...): Convierte la respuesta a número.
● try: intenta ejecutar el código. Si el usuario pone letras o algo inválido, no se
rompe el programa.
python
CopiarEditar
if opcion == 11:
print("Saliendo del programa...")
break
● Si el usuario elige la opción 11, termina el bucle con break.
python
CopiarEditar
pais, tasa = obtener_tasa(opcion)
● Aquí se usa la función obtener_tasa() para obtener el nombre del país y la tasa.
python
CopiarEditar
if pais:
print(f"La tasa aplicable en {pais} es del
{tasa}%.")
else:
print("Opción no válida.")
● Si se encuentra el país, lo imprime. Si no (pais == None), dice que la opción no es
válida.
python
CopiarEditar
except ValueError:
print("Entrada inválida. Ingrese un número entre 1 y
11.")
● Si el usuario escribe letras u otra cosa no convertible a número, se atrapa el error
con except y se muestra un mensaje.
✅ ¿Qué necesitas saber para hacer esto tú?
1. Variables y diccionarios – para guardar pares clave-valor como país → tasa.
2. Funciones (def) – para dividir tu código en bloques reutilizables.
3. Entrada de usuario – con input().
4. Control de errores – con try/except.
5. Condicionales (if/else) – para tomar decisiones.
6. /Bucles (while) – para repetir el menú hasta que el usuario decida salir.
touch
#!/bin/bash
# Comprobar que hay un solo argumento y que es un directorio
if [ "$#" -ne 1 ] || [ ! -d "$1" ]; then
echo "Uso: $0 <directorio>"
exit 1
fi
# Recorrer el contenido del directorio
for item in "$1"/*; do
if [ -d "$item" ]; then
chmod 751 "$item"
elif [ -f "$item" ]; then
chmod 644 "$item"
fi
done
#!/bin/bash
# Comprobar que se reciben dos argumentos
if [ "$#" -ne 2 ]; then
echo "Uso: $0 <nombre_carpeta> <nombre_grupo>"
exit 1
fi
CARPETA=$1
GRUPO=$2
RUTA="/usr/local/share/$CARPETA"
# Verificar que el grupo existe
if ! getent group "$GRUPO" > /dev/null; then
echo "El grupo '$GRUPO' no existe."
exit 2
fi
# Crear la carpeta
mkdir -p "$RUTA"
# Cambiar grupo propietario
chown :$GRUPO "$RUTA"
# Opcional: establecer permisos típicos de carpeta compartida
chmod 770 "$RUTA"
echo "Carpeta '$RUTA' creada y asignada al grupo '$GRUPO'.”
#!/bin/bash
# Ruta de la carpeta a copiar
ORIGEN="/carpeta_a_copiar"
# Ruta donde se guardará la copia
DESTINO="-copia_seguridad"
# Verificar que la carpeta de origen existe
if [ ! -d "$ORIGEN" ]; then
echo "La carpeta $ORIGEN no existe."
exit 1
fi
# Crear la carpeta destino si no existe
mkdir -p "$DESTINO"
# Formato de nombre: [Link]
FECHA=$(date +"%m.%d%H.%M%S")
ARCHIVO="totalaaaa$[Link]"
# Crear archivo tar
tar -cf "/tmp/$ARCHIVO" -C "$ORIGEN" .
# Comprimirlo en ZIP
zip -j "$DESTINO/$[Link]" "/tmp/$ARCHIVO"
# Limpiar el .tar temporal
rm "/tmp/$ARCHIVO"
echo "Copia realizada: $DESTINO/$[Link]”