Mini bir projemde dongude kaldim

sehirler=["Adana", "Adıyaman", "Afyon", "Ağrı", "Amasya", "Ankara", "Antalya", "Artvin", "Aydın",
          "Balıkesir", "Bilecik", "Bingöl", "Bitlis", "Bolu", "Burdur", "Bursa", "Çanakkale", "Çankırı",
          "Çorum", "Denizli", "Diyarbakır", "Edirne", "Elazığ", "Erzincan", "Erzurum", "Eskişehir",
          "Gaziantep", "Giresun", "Gümüşhane", "Hakkari", "Hatay", "Isparta", "Mersin",
          "İstanbul", "İzmir", "Kars", "Kastamonu", "Kayseri", "Kırklareli", "Kırşehir", "Kocaeli",
          "Konya", "Kütahya", "Malatya", "Manisa", "Kahramanmaraş", "Mardin", "Muğla", "Muş", "Nevşehir",
          "Niğde", "Ordu", "Rize", "Sakarya", "Samsun", "Siirt", "Sinop", "Sivas", "Tekirdağ", "Tokat",
          "Trabzon", "Tunceli", "Şanlıurfa", "Uşak", "Van", "Yozgat", "Zonguldak", "Aksaray", "Bayburt",
          "Karaman", "Kırıkkale", "Batman", "Şırnak", "Bartın", "Ardahan", "Iğdır", "Yalova", "Karabük",
          "Kilis", "Osmaniye", "Düzce"]


def telnumsifir(numara):
    if numara[0] == '0':
        numara = numara[1:11]
        return numara
    else:
        return numara

def sehirbul(numara):

    a, b = 0,2
    c = 10
    while a < c:
        kat1 = numara[a:b]

        if int(kat1) == 00 :
            print('0 numarali il yok')
        elif int(kat1) > 81 :
            print(kat1+ ': 81 ilden buyuk numara:')

        for sayiil,il in (enumerate(sehirler,1)):
            if sayiil == int(kat1):
                print(kat1 +': '+ il)

        a += 2
        b += 2


while True:
    izinli = '1234567890'
    numara = input('\nnumaraniz,isterseniz 0 yazmayin: ')

    if not numara:
        print('bos birakmayin\n')
        continue

    for i in numara:
        if i not in izinli:
            print('sadece sayi girin\n')
            break

    if len(numara) < 10 or len(numara) > 11 :
        print('nabiosun dayi,10 11 haneli\n')

    else:
        numara = telnumsifir(numara)
        sehirbul1 = sehirbul(numara)

Merhaba 0asdasdasd olarak girdigimde for gorevini yapiyor ama bu sefer else geciyor.Hata aliyorum nasil yapabilirim sizce cok tesekkur ederim.

Tabii else geçecek o break komutu ‘for’ döngüsünü kırıyor. Onun da bir döngü olduğunu unutma.

1 Beğeni

Biliyorum ama nasil hata almadan bunu guzel bir forma sokabilirim.

while döngüsünü şöyle düzenleyebilirisiniz:

while True:
    numara = input('\nnumaraniz,isterseniz 0 yazmayin: ')

    if not numara:
        print('bos birakmayin\n')
        continue

    if not all(i.isnumeric() for i in numara):
        print('sadece sayi girin\n')
        continue

    if len(numara) != 10 :
        print('10 haneli bir sayi yazin\n')
        continue

    numara = telnumsifir(numara)
    sehirbul1 = sehirbul(numara)
1 Beğeni

aynen while true:
şeklinde olabilir,bu şekilde döngü devam edebilir.

1 Beğeni