Вдлъбнатина в Python с примери

Обикновено е добра практика да не смесвате раздели и интервали, когато кодирате в Python. Правейки това, може да причини a TabErrorи програмата ви ще се срине. Бъдете последователни, когато кодирате - изберете или да отстъпвате с помощта на раздели или интервали и да следвате избраната от вас конвенция в цялата програма.

Кодови блокове и отстъпи

Една от най-отличителните черти на Python е използването на отстъп за маркиране на блокове код. Помислете за извлечението от нашата проста програма за проверка на пароли:

if pwd == 'apple': print('Logging on ...') else: print('Incorrect password.') print('All done!')

Редовете print ('Logging on ...') и print ('Неправилна парола.') Са два отделни кодови блока. Те се случват само с един ред, но Python ви позволява да пишете кодови блокове, състоящи се от произволен брой изрази.

За да посочите блок от код в Python, трябва да отстъпите всеки ред от блока със същото количество. Двата блока код в нашия пример if-statement са отстъпени четири интервала, което е типично количество отстъпи за Python.

В повечето други езици за програмиране отстъпът се използва само за да помогне на кода да изглежда красиво. Но в Python се изисква за посочване на кой блок код принадлежи даден оператор. Например окончателният печат („Всичко готово!“) Не е с отстъп и следователно не е част от блока else.

Програмистите, запознати с други езици, често настръхват при мисълта, че вдлъбнатината има значение: Много програмисти харесват свободата да форматират своя код, както им харесва. Правилата за отстъпване на Python обаче са доста прости и повечето програмисти вече използват отстъп, за да направят кода си четлив. Python просто прави тази идея още една стъпка напред и осмисля вдлъбнатината.

Ако / elif-изявления

Изявлението if / elif е обобщено изявление if с повече от едно условие. Използва се за вземане на сложни решения. Да предположим например, че авиокомпания има следните тарифи за „деца“: Деца на 2 години или по-млади летят безплатно, деца на възраст над 2 години, но по-млади от 13 плащат тарифа за деца с отстъпка, а всеки, навършил 13 години, плаща редовна тарифа за възрастни . Следващата програма определя колко трябва да плати пътникът:

# airfare.py age = int(input('How old are you? ')) if age <= 2: print(' free') elif 2 < age < 13: print(' child fare) else: print('adult fare')

След като Python получи възраст от потребителя, той въвежда оператора if / elif и проверява всяко условие едно след друго в реда, в който са дадени. Така че първо проверява дали възрастта е по-малка от 2 и ако е така, това показва, че полетът е свободен и изскача от условието elif. Ако възрастта не е по-малка от 2, тогава тя проверява следващото условие elif, за да види дали възрастта е между 2 и 13. Ако е така, тя отпечатва съответното съобщение и изскача от if / elif-изявлението. Ако нито условието if, нито условието elif е True, то той изпълнява кода в блока else.

Условни изрази

Python има още един логичен оператор, който някои програмисти харесват (а някои не!). По същество това е стенографична нотация за if-statement, която може да се използва директно в изразите. Помислете за този код:

food = input("What's your favorite food? ") reply = 'yuck' if food == 'lamb' else 'yum'

Изразът от дясната страна на = във втория ред се нарича условен израз и той изчислява или „yuck“, или „yum“. Това е еквивалентно на следното:

food = input("What's your favorite food? ") if food == 'lamb': reply = 'yuck' else: reply = 'yum'

Условните изрази обикновено са по-кратки от съответните твърдения if / else, макар и не толкова гъвкави или лесни за четене. По принцип трябва да ги използвате, когато улесняват кода ви.

Документация на Python - отстъп