Materjalid koostas ja kursuse viib läbi
Tartu Ülikooli arvutiteaduse instituudi programmeerimise õpetamise töörühm
5.4 SyntaxError: expected an indented block
Veateade SyntaxError: expected an indented block tekib siis, kui Pythonis pole pärast tsükli, tingimuslause, funktsiooni või klassi esimest rida lisatud taandega programmiplokki.
Tuleb jälgida, et tingimuslause sees kasutatakse igal real taanet, mis oleks sama pikkusega.
Näide 1:
print("Sisestage arv: ") arv = int(input()) if arv > 0: print("Sisestatud arv on positiivne") else: print("Sisestatud arv on mittepositiivne")
Veateade kuvatakse, sest esimene print
käsk peaks alustama tingimuslause sees taandega koodiplokki, kuid on sama taandega, mis tingimuslause esimene rida:
>>> %Run Test.py File "C:\Users\Kursus\Test.py", line 5 print("Sisestatud arv on positiivne") ^ SyntaxError: expected an indented block >>>
Võimalik parandus:
Käsk print
tuleks asendada õige taandega, et ta asuks tingimuslause sees.
Näide parandatud programmist:
print("Sisestage arv: ") arv = int(input()) if arv > 0: print("Sisestatud arv on positiivne") else: print("Sisestatud arv on mittepositiivne")
Tuleb jälgida, et tsüklile eelnev rida ja tsüklit alustav rida kasutaks sama pikkusega taanet, samuti peab tsükli sees kasutama ühtlast taanet.
Näide 2:
print("Sisestage positiivne arv: ") arv = int(input()) i = 0 while i < arv: i = i + 1 print("loendur: " + str(i)) if arv % 2 == 0: print("Sisestatud arv on paarisarv") else: print("Sisestatud arv on paaritu arv")
Veateade kuvatakse, sest while
-tsükli sees ei ole tingimuslause sama pikkuse taandega:
>>> %Run Test.py File "C:\Users\Kursus\Test.py", line 11 print("Sisestatud arv on paaritu arv") ^ SyntaxError: expected an indented block >>>
Võimalik parandus:
Käsk print
tuleks asendada õige taandega, et ta asuks tsükli sees.
Näide parandatud programmist:
print("Sisestage positiivne arv: ") arv = int(input()) i = 0 while i < arv: i = i + 1 print("loendur: " + str(i)) if arv % 2 == 0: print("Sisestatud arv on paarisarv") else: print("Sisestatud arv on paaritu arv")