1

#PlatziCodingChallenge - coercion, de 0 a contratado.

Crea una función que reciba un número como un string y lo devuelva como un entero. ¿Qué pasa si el string no representa un número? ¿Puedes hacer que devuelva flotantes también? Por ejemplo:

'12' -> 12
'45' -> 45
'3.14159' -> 3.14159

https://platzi.com/blog/como-aprender-a-programar-desde-cero-platzi/

Escribe tu comentario
+ 2
Ordenar por:
1
28285Puntos
defto_int(str):try:
        return int(str)
    except: 
        try:
            return float(str)
        except:
            returnNone

print(to_int("3.1416"))
print(to_int("Hola"))
print(to_int("10"))

1
19943Puntos

Reto 53 en JavaScript y en Python:

// Coercion en JavaScriptfunctionStringToNumber(numberSt) {
  const chars = numberSt.split('')
  // Si tiene caracteres que no son números o un puntoif (!chars.every(char => (parseInt(char) >=0 && parseInt(char) <= 9) || char === '.')) {
    return'Esto no es un número'
  }
  // Si tiene más de un puntoif (chars.filter(char => char === '.').length > 1) {
    return'Esto no es un número'
  }
  returnparseFloat(numberSt)
}

console.log(StringToNumber('12')) // 12console.log(StringToNumber('45')) // 45console.log(StringToNumber('3.14159')) // 3.14159console.log(StringToNumber('3.141.59')) // Esto no es un númeroconsole.log(StringToNumber('Hola')) // Esto no es un número
# Coercion en PythondefStringToNumber(numberSt):try:
    numberFloat = float(numberSt)
    if numberFloat == int(numberFloat):
      return round(numberFloat)
    else:
      return numberFloat
  except:
    return'Este no es un número'

print(StringToNumber('12')) # 12
print(StringToNumber('45')) # 45
print(StringToNumber('3.14159')) # 3.14159
print(StringToNumber('3.141.59')) # Este no es un número
print(StringToNumber('Hola')) # Este no es un número
1

En Python 😃

minusculas=('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z')
mayusculas=('A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z')

defmain(entrada):
    cont=0for caracter in entrada:
        if caracter in minusculas or caracter in mayusculas:
            print('ESTO ES UN TEXTO')
            breakelse:
            cont=cont+1if cont!=0:
        numero(entrada)
    else:
        passdefnumero(entrada):if'.'in entrada:
        entrada=float(entrada)
        print(f'Esto es un decimal {entrada}')
        #breakelse:
        entrada=int(entrada)
        print(f'Esto es un entero {entrada}')
        #breakif __name__ == '__main__':
    entrada=input('Ingresa tu numero: ')
    entrada=str(entrada)
    main(entrada)
1
7689Puntos

Resultado hecho con html, un poco de css y js

<!DOCTYPE html><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width, initial-scale=1.0"><title>Coerción</title></head><style>
  * {
    margin: 0;
  }

  .contenedor {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    height: 100vh;
  }

  .inputs {
    display: flex;
    flex-flow: column;
    align-items: center;
    padding: 2rem;
  }

  .section {
    padding: 0.25rem2rem;
    display: flex;
    align-items: center;
  }

  .sectioninput, .sectionspan{
    margin-left: 12px;
    font-weight: bold;
  }


  .btn {
    border: 2px solid black;
    border-radius: 6px;
    cursor: pointer;
    padding: 20px;
  }

</style><body><divclass="contenedor"><h1style="margin-bottom: 24px;">De texto a número</h1><divclass="inputs"><sectionclass="section">
        Ingresa el string que deseas transformar a número <inputid="num"placeholder="número"/></section><sectionclass="section">
        Revisa la consola para ver el resultado
      </section></div><buttononclick="transformar()"class="btn">Transformar...</button></div><script>functiontransformar() {
      let num = document.getElementById('num').value
      if (num.includes('.')){
        num = parseFloat(num)
      } else {
        if (isNaN(num)){
          alert('Eso no es un número, pero te regresaré tu parrafo en código ASCII, revisa la consola c:')
          let array = num.split('')
          let charCode = []
          array.map(letter => {
            charCode.push(letter.charCodeAt(0))
          })
          console.log(charCode)
        } else {
          num = parseInt(num)
        }
      }
    }
  </script></body></html>