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))
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
: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:
Puedes acceder a estos argumentos en tu script de la siguiente manera:
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 conint(sys.argv[2])
).