python - pętla while

0

Cześć. Mam pytanie. Powiedzmy że mam taką funkcję i pętlę:

def abc:
   b = 1
   a = {}
   while b != 0:
        b = int(input('Podaj cyfrę. jesli podasz wszystkie wpisz 0'))
        if b != 0:
                a[v] = []

Można zdefiniować jakoś tą funkcję, aby zamiast podawania 0, można zrobić że napiszę koniec lub nacisnę enter bez wpisywania i zadziała tak j/w?
Dzięki za pomoc.

0

Tak, można - po prostu nie rzutuj od razu na inta.

0

Próbowałem i nie działa.. ;/

def abc:
   b = 1
   a = {}
   while b != 0:
        b = input('Podaj cyfrę. jesli podasz wszystkie wpisz 0')
        if b != 0:
                a[v] = []

O to chodzi tak?
Jak napisać,aby wiedział ze wpiszę koniec lub enter?

0

Skoro w b trzymasz już teraz ciąg znaków, to uwaga, bo Cię zaskoczę:
if b == "koniec": :-P

0

Właśnie u mnie się gubi że najpierw daję cyfry, potem piszę koniec i nie tworzy tego co ma. ;D

Edit: może nie tyle co się gubi tylko nie kończy pętli

0

Huh? Wrzuć jakiś kod pokazujący problem, ponieważ ciężko mi sobie wyobrazić, o co może chodzić.

0
b = input('Podaj cyfrę. jesli podasz wszystkie wpisz 0')

wczytujesz znak, więc pętla while powinna wyglądać tak:

while b != '0' or b != 'koniec' or b != '':

chociaż przez to b != 'koniec' mogą być teraz błędy, dlatego polecam lekko zmodyfikować pętlę.

1

A może tak:

while 1:
    try:
        a = int (input("podaj liczbe"))
        if a == 0:
            break
        print(a)
    except:
        break
print("koniec")

Jeśli w bloku try wystąpi błąd (w tym przypadku to co wpisałeś nie jest liczbą, albo dałeś samo enter), to wykona się except, czyli wyjście z pętli break-iem

0
sig napisał(a):

A może tak:

while 1:
    try:
        a = int (input("podaj liczbe"))
        if a == 0:
            break
        print(a)
    except:
        break
print("koniec")

Jeśli w bloku try wystąpi błąd (w tym przypadku to co wpisałeś nie jest liczbą, albo dałeś samo enter), to wykona się except, czyli wyjście z pętli break-iem

Dzięki bardzo za pomoc. Udało się. :)

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