Pessoal, sou iniciante na área de programação e estou com dúvidas nas questões abaixo. Vou postar a questão e a minha tentativa. Se alguém puder me ajudar desde já agradeço.
1 - Escreva a função Retângulo, imprimindo os retângulos sem preenchimento, de forma que os caracteres que não estiverem na borda do retângulo sejam espaços.
largura = int(input("Digite a largura: "))
altura = int(input("Digite a altura: "))
caractere = "#"
def retângulo(largura, altura, caractere):
linha = caractere * largura
for i in range(altura):
print(linha)
retângulo(caractere, altura, largura)
Se ainda servir, veja se resolve, testei aqui e funcionou de prima
def retangulo(largura, altura, caractere):
print(caractere * largura) # cabeçalho
for i in range(altura):
espacos = (largura - 2) * ' '
print("%s%s%s" % (caractere, espacos, caractere)) # meio
print(caractere * largura) # rodapé
largura = int(input("Digite a largura: "))
altura = int(input("Digite a altura: "))
caractere = "#"
retangulo(largura, altura, caractere)
Outra dica: apesar do python aceitar acentos como em retângulo em nomes de funções e variáveis, evite, não é uma boa prática de programação…
Testando o seu código, reparei os seguintes pontos:
A altura mesmo que inserida por numero acima de 2, aparecia com duas unidades de altura no resultado.
portanto, fiz a seguinte correção:
Adicionei -2 na altura (linha 3)
veja abaixo:
def retangulo(largura, altura, caractere):
print(caractere * largura) # cabeçalho
for i in range(altura - 2):
espacos = (largura - 2) * ' '
print("%s%s%s" % (caractere, espacos, caractere)) # meio
print( caractere * largura ) # rodapé
largura = int(input("Digite a largura: "))
altura = int(input("Digite a altura: "))
caractere = “#”
retangulo(largura, altura, caractere)