es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Quiero recibir argumentos del usuario y ponerlos en la función.

Quiero obtener argumentos del usuario y usarlos en la función, pero los tipos son diferentes.

Nota: hay un comentario al final del código que funciona correctamente, pero quiero obtener los argumentos directamente.

Gracias por tu ayuda.

from string import ascii_letters

def encrypt(string , key):
    alpha = ascii_letters
    result = ''

    for ch in string : 
        if ch not in alpha :
            result += ch
        else :
            new_key = (alpha.index(ch) + int(key) ) % len(alpha)
            result += alpha[new_key]
    return result

def decrypt(string , key):
    key *= -1
    return encrypt(string , int(key))

state = ''
print("por favor ingrese 'e' para encriptar y escriba 'd' para desencriptar:...")
state = input()

if state == 'e' : 
    print("por favor ingrese la cadena que desea encriptar:... ")
    c_str1 = input()
    print("\npor favor ingrese la clave que desplaza las cadenas (por ejemplo, de 1 a 52):... ")
    c_in1=input()
    encrypt(c_str1, c_in1)

elif state == 'd':
    print("por favor ingrese la cadena que desea desencriptar:... ")
    c_str = input('')
    print("\npor favor ingrese la clave (por ejemplo, de 1 a 52):... ")
    c_in = input()
    decrypt(c_str, c_in )

# print(decrypt('amir',4))
Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para obtener argumentos directamente, puedes utilizar el módulo sys para pasar los argumentos desde la línea de comandos.

    Primero, importa el módulo sys:

    import sys
    

    Luego, puedes acceder a los argumentos pasados en la línea de comandos utilizando la lista sys.argv. El primer argumento (en el índice 0) será el nombre del archivo, por lo que puedes empezar a acceder a los argumentos a partir del índice 1.

    Por ejemplo, si deseas pasar dos argumentos (una cadena de texto y un número entero) al script desde la línea de comandos:

    python script.py "hello" 5
    

    Puedes acceder a estos argumentos en tu script de la siguiente manera:

    import sys
    
    def mi_funcion(arg_cadena, arg_entero):
        # hacer algo con los argumentos...
    
    arg_cadena = sys.argv[1] # "hello"
    arg_entero = int(sys.argv[2]) # 5
    
    mi_funcion(arg_cadena, arg_entero)
    

    Ten en cuenta que sys.argv devuelve una lista de cadenas de texto, por lo que es posible que necesites convertir los argumentos a un tipo diferente (como se muestra en el ejemplo con int(sys.argv[2])).

Comments are closed.