YouTip LogoYouTip

Python Inverted Triangle

## Python Program to Print an Inverted Triangle Pattern In Python, printing geometric patterns using characters (such as asterisks `*`) is a classic exercise for mastering loop control structures, range manipulation, and string operations. This tutorial will guide you through creating an inverted right-angled triangle pattern of stars. We will cover the basic implementation, break down how the code works, and explore alternative variations (such as a centered inverted pyramid). --- ## 1. Basic Implementation: Inverted Right-Angled Triangle The simplest way to print an inverted triangle in Python is by using a `for` loop combined with Python's native string multiplication feature. ### Code Example ```python def print_inverted_triangle(n): # Loop from n down to 1 (inclusive), decrementing by 1 in each step for i in range(n, 0, -1): print('*' * i) # Call the function to print an inverted triangle with 5 rows print_inverted_triangle(5) ``` ### Output ```text ***** **** *** ** * ``` --- ## 2. Detailed Code Explanation Let's break down how this program works step-by-step: 1. **`def print_inverted_triangle(n):`** This defines a reusable function named `print_inverted_triangle` that accepts a single integer parameter `n`, representing the total number of rows (and the starting width) of the triangle. 2. **`for i in range(n, 0, -1):`** The `range()` function is configured with three arguments: `range(start, stop, step)`. * **`start = n`**: The loop starts at the maximum number of stars (e.g., `5`). * **`stop = 0`**: The loop stops before reaching `0` (meaning the last value of `i` will be `1`). * **`step = -1`**: The loop decrements by `1` on each iteration. For `n = 5`, the variable `i` will take the values `5, 4, 3, 2, 1` sequentially. 3. **`print('*' * i)`** Python allows string repetition using the multiplication operator (`*`). Multiplying the string `'*'` by the integer `i` generates a new string containing exactly `i` asterisks, which is then printed to the console. --- ## 3. Advanced Variation: Centered Inverted Pyramid If you want to print a centered, symmetrical inverted pyramid instead of a right-angled one, you need to calculate and prepend spaces to each row to align the stars correctly. ### Code Example ```python def print_inverted_pyramid(n): for i in range(n, 0, -1): # Calculate leading spaces: (n - i) spaces spaces = ' ' * (n - i) # Calculate stars: (2 * i - 1) stars to maintain odd-numbered symmetry stars = '*' * (2 * i - 1) print(spaces + stars) # Call the function to print a centered inverted pyramid with 5 rows print_inverted_pyramid(5) ``` ### Output ```text ********* ******* ***** *** * ``` ### How it works: * **Row 1 (`i = 5`)**: `5 - 5 = 0` spaces, `2 * 5 - 1 = 9` stars. * **Row 2 (`i = 4`)**: `5 - 4 = 1` space, `2 * 4 - 1 = 7` stars. * **Row 5 (`i = 1`)**: `5 - 1 = 4` spaces, `2 * 1 - 1 = 1` star. --- ## 4. Key Considerations & Best Practices * **Time Complexity**: Both approaches run in $\mathcal{O}(n)$ time complexity regarding the loop iterations, making them highly efficient for standard console outputs. * **String Multiplication**: Utilizing Python's `'*' * i` syntax is much cleaner and faster than writing nested loops to print individual characters one by one. * **Input Validation**: When building production-ready CLI tools, ensure that the input `n` is a positive integer to prevent empty outputs or infinite loops.
← Python Narcissistic NumberPython Print Odds β†’