Rettangolo di asterischi

Small Basic Challenge – Week 9: Easy

Write a Text Window program that asks the user for a width and height.
The program will then draw a rectangle with these dimensions using asterisks.

Example:

What is the width? 10
What is the height? 5
Here is your rectangle:
**********
**********
**********
**********
**********

1

Comincia visualizzando una riga di asterischi di lunghezza n

for i in range(n):
    print("*", end="")
print()

2

Un rettangolo di asterischi con height righe di width caratteri

width  = int(input("What is the width? "))
height = int(input("What is the height? "))

print("Here is your rectangle:")
for r in range(height):
    for c in range(width):
        print("*"', end="")
    print()

3

La parte del codice che disegna diventa una funzione

def rectangle(w, h):
    print("Here is your rectangle:")
    for r in range(h):
        for c in range(w):
            print("*", end="")
        print()

width  = int(input("What is the width? "))
height = int(input("What is the height? "))

rectangle(width, height)

4

Più difficile: disegna solo il contorno del rettangolo (una cornice).

Osserva

  • La prima e l’ultima riga sono piene: il codice è lo stesso…
  • Le righe intermedie sono vuote
def rectangle2(w, h):
    print("Here is your rectangle:")
    for c in range(w):
        print("*", end="")
    print()
    for r in range(h-2):
        print("*", end="")
        for c in range(w-2):
            print(" ", end="")
        print("*")
    for c in range(w):
        print("*", end="")
    print()

width  = int(input("What is the width? "))
height = int(input("What is the height? ")) 

rectangle2(width, height)

5

Disegna

  • una riga piena
  • height-2 volte una riga vuota
  • una riga piena
def full(n): 
    for i in range(n):
        print("*", end="")
    print()

def empty(n):
    print("*",end="")
    for i in range(n-2):
        print(" ", end="")
    print("*")
    
def rectangle3(w, h):
    print("Here is your rectangle:")
    full(w)
    for i in range(h-2):
        empty(w)
    full(w)

width  = int(input("What is the width? "))
height = int(input("What is the height? ")) 

rectangle3(width, height)