YouTip LogoYouTip

Python Print Triangle

## Python: How to Print an Isosceles Triangle In Python, printing geometric patterns like triangles is a classic exercise for mastering loops, string manipulation, and basic algorithms. This tutorial demonstrates how to write a clean, efficient Python program to print an **isosceles triangle** (a centered triangle) using asterisks (`*`). The program dynamically adjusts the triangle's size based on user input. --- ## Understanding the Logic To construct an isosceles triangle of height $H$, we need to print $H$ rows. For each row $i$ (where $i$ ranges from $0$ to $H-1$): 1. **Leading Spaces:** To center the asterisks, we must print a decreasing number of spaces before the stars. The formula for the number of spaces in row $i$ is: $$\text{Spaces} = H - i - 1$$ 2. **Asterisks:** The number of asterisks increases by $2$ for each subsequent row to maintain symmetry. The formula for the number of asterisks in row $i$ is: $$\text{Asterisks} = 2 \times i + 1$$ By combining these two components using Python's string multiplication operator (`*`), we can easily construct each line. --- ## Code Example Below is the complete Python implementation using a reusable function: ```python def print_triangle(height): """ Prints an isosceles triangle of a given height. """ for i in range(height): # Print the leading spaces to center the triangle print(' ' * (height - i - 1), end='') # Print the asterisks for the current row print('*' * (2 * i + 1)) # Get user input for the triangle's height try: height = int(input("Enter the height of the triangle: ")) if height > 0: print_triangle(height) else: print("Please enter a positive integer.") except ValueError: print("Invalid input. Please enter a valid integer.") ``` --- ## Code Explanation 1. **`def print_triangle(height):`** Defines a reusable function that accepts an integer parameter `height` representing the number of rows in the triangle. 2. **`for i in range(height):`** A `for` loop that iterates from `0` to `height - 1`. This loop controls the current row being printed. 3. **`print(' ' * (height - i - 1), end='')`** Calculates and prints the required leading spaces for the current row. The `end=''` parameter prevents Python from automatically printing a newline character, allowing the asterisks to be printed on the same line. 4. **`print('*' * (2 * i + 1))`** Calculates and prints the odd number of asterisks required for the current row, followed by a newline. 5. **`int(input(...))`** Captures user input from the console and converts it into an integer. --- ## Sample Output If the user inputs a height of `5`, the program will generate the following output: ```text Enter the height of the triangle: 5 * *** ***** ******* ********* ``` --- ## Key Considerations * **String Multiplication:** Python allows you to repeat strings easily using the multiplication operator (e.g., `' ' * 3` yields `' '`). This makes pattern printing much cleaner than using nested loops. * **Input Validation:** When dealing with console inputs (`input()`), it is best practice to wrap the conversion in a `try-except` block to handle cases where the user enters non-numeric characters. * **Scalability:** This logic scales perfectly for larger integers, though console width limits how large the triangle can display cleanly.
← Python Factor CheckPython Digit Count β†’