Skip to content

Instantly share code, notes, and snippets.

@hcosta
Created February 15, 2022 11:19
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save hcosta/589db30b61b391b089478d4c83e06ee8 to your computer and use it in GitHub Desktop.
Save hcosta/589db30b61b391b089478d4c83e06ee8 to your computer and use it in GitHub Desktop.
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]")
@edaagapu
Copy link

edaagapu commented Mar 29, 2023

Yo lo probé con f-string para este ejercicio. También me funcionó.

import sys

if len(sys.argv) == 2:
  number = sys.argv[1]
  if int(number) < 0:
    print('Error recuerde que el argumento debe ser un número entero positivo')
  else:
    for i in range(1,len(number)+1):
      format_number = int(number[len(number)-i])*(10**(i-1))
      print(f'{format_number:0{len(number)}}')
else:
  print('Argumento inválido.\nRecuerde que debe ingresar un parámetro.\nEjemplo: python3 descomposicion.py [0-n]')

@ericc91
Copy link

ericc91 commented Aug 16, 2023

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\"")

@nonasme
Copy link

nonasme commented Sep 6, 2023

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")

@luisceze1
Copy link

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")`

@Vingiloth
Copy link

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")

@sbc-fernandadiaz
Copy link

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