Skip to Main Content
Blog

Print Floyd Triangle in Python

Print Floyd Triangle in Python

def main():
	"""
	Prints the Floyd triangle.
	"""

	num = int(input("Enter height: "))
	sep = "=" * (num * 4 - 2)

	print(sep)
	left_floyd_triangle(num)
	print(sep)
	right_floyd_triangle(num)
	print(sep)
	center_floyd_triangle(num)
	print(sep)

	# Works perfectly when num <= 13.


def left_floyd_triangle(n: int):
	"""
	1
	2  3
	4  5  6
	7  8  9 10
	"""

	k = 1
	for r in range(1, n + 1):
		for _ in range(1, r + 1):
			print(f"{k:2} ", end="")
			k += 1
		print()


def right_floyd_triangle(n: int):
	"""
	         1
	      2  3
	   4  5  6
	7  8  9 10
	"""

	k = 1
	for r in range(1, n + 1):
		for _ in range(n - r, 0, -1):
			print("   ", end="")  # 3 spaces
		for _ in range(1, r + 1):
			print(f"{k:2} ", end="")
			k += 1
		print()


def center_floyd_triangle(n: int):
	"""
	      1
	    2   3
	  4   5   6
	7   8   9  10
	"""

	k = 1
	for r in range(1, n + 1):
		for _ in range(n - r, 0, -1):
			print("  ", end="")  # 2 spaces
		for _ in range(1, r + 1):
			print(f"{k:2}  ", end="")
			k += 1
		print()


if __name__ == "__main__":
	main()