Софтуерно Инженерство
Loading...
+ Нов въпрос
georgibaldjiev avatar georgibaldjiev 9 Точки

Квадрат от звездички(не печати дясната стена)

Здрасти,нямам никакави знания по Python и ми остана от домашното само последната задача.Отделих малко време на циклите в Python, защото трябва да лягам рано, но заложих на знания от друг език.В C++ много често съм рисувал квадрати, но тук рисува горната стена, рисува лявата стена, рисува долната стена, но дясната стена не бива нарисувана.Съжалявам, че не съм отделил много време върху задачата, а едва 4-5 минутки, но просто много бързам.Може ли само някой да посочи къде е грешката, за да я оправя?Когато въвед 3, изходът ми е такъв:

* * *

*

* * *

n = int(input())
for i in range(0,n-1,1):
  print('*'),
for i in range(0,n-1,1):
    for j in range(0,n-1,1):
        if j == 0:
            print('*'),
        elif j == n-1:
            print ('*'),
        else:
            print(' '),

    print('\n')

for i in range(0,n,1):
  print('*'),

 

Тагове:
aggeorgiev avatar aggeorgiev 327 Точки
Best Answer

А така е още по-добре:

 

n = int(input())
print("*" * n)
str = "*" + (" " * (n - 2)) + "*"
for i in range(1, n - 1):
    print(str)
print("*" * n)
0
georgibaldjiev avatar georgibaldjiev 9 Точки

Видях начина, по който момчето от лекцията е решил задачата и научих доста неща и си я реших и аз.Просто видях неща, които мога да прилагам в print, които не бях виждал и тръгнах да въртя два цикъла аз, но здраве.Лека вечер.

0
aggeorgiev avatar aggeorgiev 327 Точки
n = int(input())
print("*" * n)
for i in range(1, n - 1):
    str = "*" + (" " * (n - 2)) + "*"
    print(str)
print("*" * n)
0