Print Pascal Triangle in Python
def main():
"""
Prints pyramid patterns.
"""
num = int(input("Enter height: "))
sep = "=" * (num * 4 - 2)
print(sep)
t_skewed(num)
print(sep)
b_skewed(num)
print(sep)
r_skewed(num)
print(sep)
l_skewed(num)
print(sep)
# Works perfectly when num <= 9.
def t_skewed(n: int):
"""
1
1 2 1
1 2 3 2 1
1 2 3 4 3 2 1
"""
for r in range(1, n + 1):
# Print leading spaces
for _ in range(n - r, 0, -1):
print(" ", end="")
# Print increasing numbers
for c in range(1, r + 1):
print(f"{c} ", end="")
# Print decreasing numbers
for c in range(r - 1, 0, -1):
print(f"{c} ", end="")
print()
def b_skewed(n: int):
"""
1 2 3 4 3 2 1
1 2 3 2 1
1 2 1
1
"""
for r in range(n, 0, -1):
# Print leading spaces
for _ in range(n - r, 0, -1):
print(" ", end="")
# Print increasing numbers
for c in range(1, r + 1):
print(f"{c} ", end="")
# Print decreasing numbers
for c in range(r - 1, 0, -1):
print(f"{c} ", end="")
print()
def r_skewed(n: int):
"""
1
1 2
1 2 3
1 2 3 4
1 2 3
1 2
1
"""
# Upper part of the pattern
for r in range(1, n + 1):
for c in range(1, r + 1):
print(f"{c} ", end="")
print()
# Lower part of the pattern
for r in range(n - 1, 0, -1):
for c in range(1, r + 1):
print(f"{c} ", end="")
print()
def l_skewed(n: int):
"""
1
1 2
1 2 3
1 2 3 4
1 2 3
1 2
1
"""
# Upper part of the pattern
for r in range(1, n + 1):
# Print leading spaces
for _ in range(n - r, 0, -1):
print(" ", end="")
# Print numbers
for c in range(1, r + 1):
print(f"{c} ", end="")
print()
# Lower part of the pattern
for r in range(n - 1, 0, -1):
# Print leading spaces
for _ in range(n - r, 0, -1):
print(" ", end="")
# Print numbers
for c in range(1, r + 1):
print(f"{c} ", end="")
print()
if __name__ == "__main__":
main()