Skip to content
Snippets Groups Projects
Commit ed836510 authored by Jesus David Bermudez Sanchez's avatar Jesus David Bermudez Sanchez
Browse files

solucionamos el problema de saber si el numero ingresado por el usuario es...

solucionamos el problema de saber si el numero ingresado por el usuario es entero o no, se uso el metodo .isdecimal() de los strings
parent b8ba9851
No related branches found
No related tags found
No related merge requests found
%% Cell type:markdown id: tags:
# *Mi nombre es Jesus David Bermudez Sanchez, soy estudiante de la Maestria en Fisica de la Universidad Nacional de Colombia, Sede Bogotá*
---
%% Cell type:markdown id: tags:
## El problema a resolver se puede dividir en dos partes.
## La primera parte la podemos llamar: Triángulo de Pascal
Escriba una rutina en python que reciba como entrada un número entero, n, e imprima los números en la n-ésima fila
del triángulo de Pascal. El programa debe verificar si el número n es entero, o arrojar un mensaje informando que ha habido un error del usuario en caso contrario.
---
%% Cell type:markdown id: tags:
La funcion ``corazon_pascal`` es una funcion que usa recursión para retornar la fila ``n`` del triangulo de Pascal.
El resultado fundamental
%% Cell type:code id: tags:
``` python
def corazon_pascal(n):
"""
Esta función recibe un argumento de tipo entero
Retorna una lista con los numeros de la fila n del triangulo de Pascal
"""
lista=[]
if n==1:
lista=lista+[1]
#elif n==2:
#lista=lista+[1,1]
else:
lista_antes=corazon_pascal(n-1)
lista=[1]+[lista_antes[i]+lista_antes[i+1] for i,_ in enumerate(lista_antes) if i<len(lista_antes)-1]+[1]
return lista
```
%% Cell type:code id: tags:
``` python
def triangulo_pascal(n):
"""
Esta funcion recibe un string n
En caso de que la variable n NO sea un numero entero
imprime un mensaje en pantalla solicitando un entero
"""
for x in n:
if x==".":
print("El numero ingresado no es entero")
break
elif x==",":
print("El numero ingresado no es entero")
break
elif x=="j":
print("El numero ingresado no es entero")
break
else:
n=int(n)
return corazon_pascal(n)
es_entero=n.isdecimal()
if es_entero:
return corazon_pascal(int(n))
else:
print("""El numero introducido NO es un numero entero,
por favor introduzca un numero ENTERO""")
return ""
```
%% Cell type:code id: tags:
``` python
numero_usuario=input("""
Introduzca un numero entero mayor que cero,
se retornará la fila n del triangulo de Pascal
""")
print("")
print(triangulo_pascal(numero_usuario))
```
%% Output
Introduzca un numero entero mayor que cero,
se retornará la fila n del triangulo de Pascal
3.
5
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-28-e4e9f4a68874> in <module>
5 """)
6 print("")
----> 7 print(triangulo_pascal(numero_usuario))
<ipython-input-27-24d483c36d8d> in triangulo_pascal(n)
18 break
19 else:
---> 20 n=int(n)
21 return corazon_pascal(n)
22
ValueError: invalid literal for int() with base 10: '3.'
[1, 4, 6, 4, 1]
%% Cell type:markdown id: tags:
## Triangulo de Pascal modificado
Modifique la rutina anterior para que reciba un número variable de argumentos: n1, n2, n3,... y retorne una lista cuyo primer elemento es una lista conteniendo los números en la fila n1 del triángulo de Pascal, el segundo elemento una lista con los números en la fila n2, y así sucesivamente.
%% Cell type:code id: tags:
``` python
def f(x):
aux=0
try:
print(int(x))
except:
print("El numero no es entero")
f(3+4j)
```
%% Output
El numero no es entero
%% Cell type:code id: tags:
``` python
print(6//4)
```
%% Output
1
%% Cell type:markdown id: tags:
Bibliografia utilizada:
+ https://stackoverflow.com/questions/44891070/whats-the-difference-between-str-isdigit-isnumeric-and-isdecimal-in-python
+
%% Cell type:code id: tags:
``` python
```
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment