try:
n = int(input("Introducir un número entero: "))
except:
print("Error. Tiene que ingresarse un número entero.")
Introducir un número entero: 10
Esta función forma el triágulo de pascal agregando el resto de filas de acuerdo al valor de n y retorna la y retorna la n-ésima fila.
def triangulo_pascal(x):
#El único dígito de la primera fila del triángulo es 1
triangulo = [[1]]
#Recorrer las filas
for fila in range(0,x):
#Inicializar la línea
linea = [1]
#Recorrer las columnas
for col in range(0, len(triangulo[fila])-1):
#Agregar a la fila siguiente la suma de los elementos
#de la fila que se recorre
linea.extend([triangulo[fila][col] + triangulo[fila][col+1]])
#Agregar el último elemento de todas las filas
linea.append(1)
#Agregar la fila al triángulo
triangulo.append(linea)
return triangulo[x]
triangulo_pascal(n)
[1, 10, 45, 120, 210, 252, 210, 120, 45, 10, 1]
En esta lista se almaceran los números ingresados por el usuario.
numeros = []
#Se imprimen indicaciones para el usuario
print("Ingresar números enteros uno a la vez.")
print("Una vez ingresados todos escriba: done.")
print(" ")
while True:
try:
#Si el número es entero se agrega a la lista "numeros"
n = input("Ingresar número: ")
num = int(n)
numeros.append(num)
except:
print("Error. Tiene que ingresarse un número entero.")
#Cuando el usuario escribe 'done' el programa deja de
#solicitar números
if n == 'done': break
Ingresar números enteros uno a la vez. Una vez ingresados todos escriba: done. Ingresar número: 2.2 Error. Tiene que ingresarse un número entero. Ingresar número: 3 Ingresar número: 10 Ingresar número: 2 Ingresar número: 4 Ingresar número: done Error. Tiene que ingresarse un número entero.
#Ordenar los numeros de menor a mayor
numeros.sort()
#Seleccionar el número mayor
mayor = numeros[-1]
Esta función retorna una lista con las filas correspondientes a los números ingresados.
def pascal_triangulo(x, lista):
#El único dígito de la primera fila del triángulo es 1
triangulo = [[1]]
#Recorrer las filas
for fila in range(0,x):
#Inicializar la línea
linea = [1]
#Recorrer las columnas
for col in range(0, len(triangulo[fila])-1):
#Agregar a la fila siguiente la suma de los elementos
#de la fila que se recorre
linea.extend([triangulo[fila][col] + triangulo[fila][col+1]])
#Agregar el último elemento de todas las filas
linea.append(1)
#Agregar la fila al triángulo
triangulo.append(linea)
#Lista que muestra las filas correspondientes a los números
#ingresados
triangulo_final = []
for num in lista:
triangulo_final.append(triangulo[num])
return triangulo_final
Se hace un llamado a la función utilizando el mayor número ingresado para crear el triángulo e imprimir todas las filas correspondientes.
pascal_triangulo(mayor, numeros)
[[1, 2, 1], [1, 3, 3, 1], [1, 4, 6, 4, 1], [1, 10, 45, 120, 210, 252, 210, 120, 45, 10, 1]]