Курс по програмиране на Python с Linux. Част десета

Изображение от Pexels от Pixabay

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

Едно нещо, което трябва да имаме предвид, когато работим с функции, е как те взаимодействат с други програмни компоненти, като променливи, списъци, кортежи и речници.

Курс по програмиране на Python с Linux

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

Променливи

Това е разликата между глобално дефинирана променлива и локално дефинирана такава.

Променливата `distro` е дефинирана в началото на програмата и функцията `mostrar` я използва. Тя може да бъде използвана и от друга функция, създадена за добавянето ѝ към списък.

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

Тази програма присвоява Ubuntu на променливата distro и след това създава функция, която ѝ казва да модифицира глобална променлива, като промени името ѝ на Debian. След това извиква функцията, за да извърши промяната на името.

Списъци

Можем да добавяме или премахваме елементи от глобално създаден списък, използвайки функция. Тази програма, например, добавя елемент към списъка с дистрибуции.

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

Както виждаме, когато извикаме функцията, тя отпечатва списъка, дефиниран във функцията, докато извън функцията отпечатва първоначално създадения списък.

Кортежи

Кортежите са непроменими, така че можем да правим само две неща
1) Създайте локален кортеж със същото име като глобален.

2) Заменете кортеж.

Вътре във функцията добавяме глобалната инструкция, която ѝ казва, че ще заменим кортежа, който дефинирахме в началото.

речници

Речниците са променливи, следователно можем лесно да модифицираме такъв, който е дефиниран глобално.

Ако се вгледате внимателно, ще забележите, че във функцията използваме квадратни скоби, за да обозначим елемента, който се променя, и модификацията, вместо скобите, които речниците използват, за да дефинират съдържанието си.

Функции със или без параметър

Когато извикваме функция, е възможно да ѝ присвоим специфичен параметър.

Това е пример за функция без параметри

И това е пример за функция, на която казваме да действа върху специфичен параметър

Можем да зададем различни видове параметри:

  • деф функция(): Функцията не изисква никакви параметри.
  • деф функция (дистрибуция): Съдържанието на променливата distro се задава като параметър.
  • деф функция(distro=»Ubuntu»): На функцията е присвоен параметърът Ubuntu, но той може да бъде заменен с друг потребителски дефиниран параметър.
  • деф функция(*аргументи): Можем да използваме няколко параметъра.

Вече дадохме примери за първите два параграфа - нека разгледаме пример за другите два.


Тази програма по подразбиране присвоява параметъра Ubuntu на функцията. Когато извикаме функцията без да присвоим параметър, тя извършва проверка за Ubuntu. Следващото извикване извършва проверка за Debian, който е в списъка, а третото - за Arch Linux, който не е.

Ами ако искаме да тестваме няколко параметъра с едно извикване?


По този начин поставяме списъка с параметри в кортеж.
Възможно е също да се използват списъци, кортежи и речници като параметри.

Списъци

Кортежи

речник


Item е вътрешен метод на Python, който ни позволява да покажем всички двойки ключ/стойност.

Декларацията за връщане

Обикновено резултатите от изпълнението на код в рамките на дадена функция не са достъпни за други части на програмата. Това може да се коригира с оператора `return`, който също така маркира края на изпълнението на функцията и продължаването на изпълнението на програмата. Нека разгледаме следния пример:

Използване на оператора return във функция с Python 3

Използването на оператора return запазва резултата от кода за по-късна употреба и спира изпълнението му.

Тази програма изисква от потребителя да въведе името на дистрибуция и запазва резултата от сравнението в променлива за по-късна употреба.

Коментари по кода

Когато пишем обширен код и трябва да го прегледаме отново или когато е необходимо някой друг да го направи, трябва да го документираме; тоест, да включим обяснения за това какво прави всяка част от кода. Възможно е да се пишат прости коментари, предшествани от символа #.

# El comando print muestra en pantalla un texto o el contenido de una variable

Python ще разбере, че текстът след знака # не е част от кода и няма да се опита да го изпълни.

Въпреки че технически те не са коментари, а текстови низове, които не са присвоени на променлива и не се препоръчват за използване, е възможно да се запише информация между 3 кавички, която програмата ще игнорира.
«» »
Командата print отпечатва текст на екрана.
Списъците са групи от елементи,
Функциите са малки програми, които изпълняват задача и могат да бъдат използвани повторно.
Кортежите са непроменими.
«» »
Но, както казахме, препоръчителната практика е да се пише знакът за число в началото на всеки ред.

# Командата print отпечатва текст на екрана.
# Списъците са групи от елементи,
Функциите са малки програми, които изпълняват задача и могат да бъдат използвани повторно.
# Кортежите са непроменими.

Характеристиките на коментарите са:

  • Те се използват за обяснение на конкретни части от кода.
  • Те се игнорират от програмата, след като бъдат интерпретирани.
  • Те не могат да бъдат прочетени от самия код по време на изпълнение.

В случай на функции, обекти, класове, методи и модули (ще обсъдим модулите в бъдещи статии), е възможно да се използват документационни низове (docstrings). Това са текстови низове, поставени в началото на функция, които накратко обясняват какво прави функцията, какви параметри получава и какви стойности съхранява. За да може Python да го разпознае като документационен низ, текстът трябва да бъде ограден в три кавички в началото и края.

В следващата статия ще обясним как да използваме docstring-ове.