Как работи влагането на код в оператори Pro Preview

Python изисква кодът да бъде подреден по строго определен начин, за да работи и както можете да си представите, това става сложно, когато започнем да влагаме оператори един в друг. Тук ще ви покажем няколко неща, за които да внимавате когато пишете код, както и добри практики за отбягване на често срещани грешки.

Необходимо е да се абонирате за FLLCasts.com, за да достъпите това видео

Абонирай се

  • #1633
  • 12 Jun 2020

Отместен код показва на Python, че той е вложен в оператор. Ето един пример за вложен код в оператор "while":

while (условие):
    (вложен код в оператор "while")
    (вложен код в оператор "while")
    (вложен код в оператор "while")
    ...

Няма изискване за това колко трябва да бъде отместен вложеният код от началото на реда, но е важно всеки ред да бъде отместен на едно и също разстояние, за да работи.

while (условие): 
    (вложен код в оператор "while")
   (вложен код в оператор "while")
     (вложен код в оператор "while")
     ...

За да не се допуска тази грешка, много програмисти използват бутона "Tab", който подравнява кода на определени редове, разположени на 4 символа разстояние.

При влагане на оператори един в друг, кода на всеки един от тях се отмества с още едно ниво по-надясно:

while (условие):
    (вложен код в оператор "while")
    (вложен код в оператор "while")
    if (условие):
        (вложен код в оператор "if")
        (вложен код в оператор "if")
  ...

Наличието на вложен оператор не поставя край на кода, за оператора, в който е вложен. Пример:

while (условие): 
    (вложен код в оператор "while") 
    (вложен код в оператор "while") 
    if (условие):
        (вложен код в оператор "if")
        (вложен код в оператор "if")
    (вложен код в оператор "while")
    (вложен код в оператор "while") 
...

Забележете, че последните два реда от вложения код в оператора "while" са отместени само на един "tab" разстояние, което ги прави част от кода на цикъла "while", но не и част от оператора "if". Тези два реда код ще се изпълняват при всяко повторение на цикъла, независимо от оператора "if" и неговото условие. 

Влагането на оператори и отместване на код не е ограничено до влагане само на един оператор и за да можем по-лесно да го следим, VS-Code поставя линии в кода ни, които ни показват началото и края на всеки вложен код:

while (условие):
|   (вложен код в оператор "while")
|   (вложен код в оператор "while")
|   
|   if (условие):
|   |   (вложен код в оператор "if") 
|   |   (вложен код в оператор "if")
|   |
|   |   while (условие):
|   |   |   (вложен код в оператор "while")
|   |   |   (вложен код в оператор "while")
|   |   
|   |   (вложен код в оператор "if")
|
|   else:
|   |   (вложен код в оператор "else")
|   |   (вложен код в оператор "else")
|
|   if (условие):
|   |   (вложен код в оператор "if") 
|   |   (вложен код в оператор "if")
|
|   (вложен код в оператор "while")
|   (вложен код в оператор "while")

(код извън оператор)
(код извън оператор)
...

Както виждате, наличието на празни редове в началото и края на всеки оператор, прави кода ни значително по-четлив.

Курсове и занятия включващи този Урок

Този Урок е използван в следните курсове и занятия.

Image for Python за EV3 LEGO Mindstorms - ниво 2
  • 39
  • 19:58
  • 93
Image for Занятие 3 - Tабло за управление на движението на кран
  • 3
  • 4
  • 6
  • 3d_rotation 2