Created
February 15, 2022 11:19
-
-
Save hcosta/589db30b61b391b089478d4c83e06ee8 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import sys | |
if len(sys.argv) == 2: | |
numero = int(sys.argv[1]) | |
if numero < 0: | |
print("Error - Número es incorrecto") | |
print("Ejemplo: descomposicion.py [0-999999999999999999999999]") | |
else: | |
# Aqui va la lógica | |
cadena = str(numero) | |
longitud = len(cadena) | |
for i in range(longitud): | |
# Utilizamos identificadores para la cadena y la longitud | |
print( "{cadena:0{longitud}d}".format( | |
cadena=int(cadena[longitud-1-i]) * 10 ** i, | |
longitud=longitud)) | |
else: | |
print("Error - Argumentos incorrectos") | |
print("Ejemplo: descomposicion.py [0-999999999999999999999999]") |
Hola profe Hector, esta fue mi variante del ejercicio:
import sys
if len(sys.argv) == 2:
num=int(sys.argv[1])
if num < 0:
print("El numero debe ser positivo")
else:
long=len(str(num))
for i,v in enumerate(str(num)[::-1]):
print(f"{int(v)*10**i:0{long}d}")
else:
print("Error, se debe poner un número entero positivo, ejemplo: \"Descomposicion.py 25\"")
Con pop ;)
import sys
numero = int(float(sys.argv[1]))
cadena= str(numero)
longitud = len(cadena)
lista = [digit for digit in cadena]
if (len(sys.argv) == 2) and (9999 >= numero >= 1):
for i in range(longitud):
valor_posicion = int(lista.pop()) * (10 ** i)
print(f"{valor_posicion:0{longitud}d}")
else:
print("Introduce 1 valor entero en consola del 1 al 9999")
Yo lo hice así
`import sys
lugar = 0
if len(sys.argv) == 2:
#n = int(sys.argv[1])
s = sys.argv[1]
largo = len(s)
for i in range(largo):
lugar -= 1
n = int(s[lugar])
print(f"{n * 10 ** i:0{largo}}")
else:
print("Sólo puede haber 1 argumento")`
Yo lo hice de la siguiente manera:
import sys
print("Introduzca un número entero positivo")
if int(sys.argv[1])%1 != 0 or int(sys.argv[1])< 0:
print("Introduzca un número entero positivo para poder descomponerlo")
elif int(sys.argv[1])%1 == 0 and int(sys.argv[1])>= 0:
a = len(sys.argv[1])
print("Se descompone el número en lo siguiente: ")
for i in range(a):
print(f"{int(sys.argv[1][-1-i])*(10**i):{a}}")
else:
print("Introduzca un número entero positivo para poder descomponerlo")
hola. Lo realicé de la siguiente manera:
import sys
print(sys.argv) # argumentos enviados
if len(sys.argv)== 2:
numero = (sys.argv[1])
long = len(numero)
numero = int(numero)
med = 1
lista =[]
while long > 0:
digito = int((numero / med) % 10)
lista.append(digito)
long-=1
med *=10
a=1
for n in lista:
print(f"{n*a:0{len(lista)}d}")
a*=10
else:
print("Error: Introduce la cantidad de argumentos 1 entero positivo")
print("Ejemplo: descomposicion.py 1")
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Yo lo probé con f-string para este ejercicio. También me funcionó.