Блок else при перехвате исключений в Python

try-except конструкциисига else блокани ҳам қўшish мумкин. Мухим нуқта şуңки, else блокада жойлашган код try-except да унинг олдида heç қандай istisno тутилмаган тақдирда ишлайди.

Бизда рўйхат мавжуд деб фараз қилайлик:

pythonlst = [1, 2, 3]

try-except конструкциисида рўйхатнинг мавжуд бўлмаган элементи учун istisnoни тутишни ёзайлик:

pythontry:
  print(lst[4])
except IndexError:
  print('error: elem is not exist')

Энди else блокада рўйхатнинг барча элементларининг йиғиндисини чиқаришни белгилаймиз:

pythontry:
  print(lst[4])
except IndexError:
  print('error: elem is not exist')
else:
  print(sum(lst))

Aгар try блокаги код рўйхатда мавжуд бўлмаган элементга мурожаат қилса, у ҳолда консолда хатолик хақида хабар чиқади:

error'error: elem is not exist'

Энди try блокада рўйхатда аниқ мавжуд бўлган элементни чиқаришни белгилаймиз:

pythontry:
  print(lst[0])
except IndexError:
  print('error: elem is not exist')
else:
  print(sum(lst))

Кодни бажарилганидан сўнг консолда иккита сон чиқади: try да белгиланган элемент ва рўйхатнинг барча элементларининг йиғиндиси:

python1
6
Задание 1

Рўйхат берилган:

pythonlst = [1, 2, 3]

Нолга бўлиш билан боглик istisnoни тутиш учун код ёзинг. Агар бу istisno пайдо бўлмаса, рўйхатнинг узунлиги чиқсин.