Koperta z gwiazdek, rysowanie w konsoli

Koperta z gwiazdek, rysowanie w konsoli
misio_
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 61
0

Napisałem tak skrypt. Czy moglibyście mi wytłumaczyć czemu to właściwie działa. Pisałem, poprawiałem, pisałem etc. aż w końcu się udało, jednak nie rozumiem do końca czemu to działa:

Kopiuj
import math

wiersze = 14
wiersze = wiersze if wiersze % 2 == 0 else wiersze + 1
kolumny = wiersze
srodek = wiersze // 2

for i in range(wiersze):
    if i == 0 or i == wiersze - 1:
        print('*' * kolumny)
        continue

    print('*', end='')
    print(' ' * (i - 1 if i < srodek else wiersze - i - 2), end='')
    print('*', end='')
    print(' ' * (wiersze - 2 * i - 2 if i < srodek else 2 * i - wiersze), end='')
    print('*', end='')
    print(' ' * (i - 1 if i < srodek else wiersze - i - 2), end='')
    print('*')

Chodzi mi o linijkę 16, czemu to działa? :P

output:

Kopiuj
**************
**          **
* *        * *
*  *      *  *
*   *    *   *
*    *  *    *
*     **     *
*     **     *
*    *  *    *
*   *    *   *
*  *      *  *
* *        * *
**          **
**************
Riddle
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 10227
1

Dopisz sobie sleep(1) w pętli i zobacz sekunda po sekundzie jak ta koperta się rysuje.

VBService
  • Rejestracja: dni
  • Ostatnio: dni
0

Sprawdź: Thonny [ 1 ] [ 2 ] (Python IDE dla początkujący, z funkcją podglądania każdej wykonywanej linijki kodu)
image
image
image

VBService
  • Rejestracja: dni
  • Ostatnio: dni
0

Sprawdź to:

Online Python compiler with AI help - the only tool that lets you visually debug your code step-by-step

image

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.