W którym miejscu pętla?

0

W którym miejscu dodać pętlę (while czy while not?) Tak aby po wybraniu innej opcji, niż "1" czy "2" program ponownie prosił o wybranie opcji?

# -*- coding: utf-8 -*-
 
Imie = input('Jak masz na imie')
Oczy = input('Jaki masz kolor oczu?')
Wzrost = input('Ile masz wzrostu?')
 
 
print('A wiec masz na Imie {0}, Twoje Oczy sa {1},i mierzysz {2}.'.format(Imie, Oczy, Wzrost))
 
print('''
Dochodzisz do wielkiej, kamiennej bramy. Nie potrafisz określic wieku tych murow,
jednak sadzac po dziurach :
1. Wejdz do miasta
2. Skrec w prawo''')
 
droga = input('Wybierz opcje:')
 

if droga == "1":
    print('\n'
          'Idziesz wzdluz muru, waska wydeptana sciezka. Dochodzisz do rozwidlenia...\n'
          '1. Skrec w prawo\n'
          '2. Idz Prosto\n')
elif droga == "2":
    print('Przechodzisz przez brame. Mijasz znudzonego strażnika'
           'spogladajacego na Ciebie spode łba')
else:
    print('Serio')


1

Ja bym to zrobił mniej więcej tak

 while(1):
    droga = input('Wybierz opcje:')
    if droga == "1":
        print('\n'
              'Idziesz wzdluz muru, waska wydeptana sciezka. Dochodzisz do rozwidlenia...\n'
              '1. Skrec w prawo\n'
              '2. Idz Prosto\n')
        break
    elif droga == "2":
        print('Przechodzisz przez brame. Mijasz znudzonego strażnika'
           'spogladajacego na Ciebie spode łba')
        break
    else:
        print('Serio?')
0

Ooo wielkie dzięki! A powiedz mi jeszcze, dlaczego po while umieściłeś "1" w nawiasie?

0

Bo wartość niezerowa oznacza True, dzięki temu będzie się wykonywać póki jej nie opuścisz break-iem.

1

@sig Lepiej pisać while True: zamiast while 1:, bardziej idiomatyczne IMO ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1