Конспект от учебници за Python
Страницата е създадена на:16 юли 2019 и редактирана на:24 март 2022
Съдържание
Използвани източници: Ръководство по Питон - Гуидо ван Росум, Python tutorial, Python documentation и др. и собствени наблюдения.
Някои специфики на Python
Обектно ориентиран език за програмиране. Всяка променлива е обект.
Чувствителен към малки или големи букви.
Имат значение интервалите в началото на всеки ред. Една езикова конструкция започва на ред без отстъп, а всички редове, които са част от същата конструкция се пишат с еднакъв отстъп по-навътре.
Други специфики ще бъдат разгледани в следващите раздели.
Коментари
Едноредовите коментари започват от знак # и завършват в края на реда
Многоредови коментари могат да започват с три двойни кавички """
и да свършват с такива """
. (В същност, заградения по този начин текст, просто не се визуализира от интерпретатора, макар, че се обработва от него като стринг.)
Стартиране и излизане от интерактивната работна среда
Стартиране - с команда python
, или pythonw
, или чрез стартиране на приложението IDLE. Последното се отваря в прозорец. Работната среда показва на текущия ред знаци >>>
след които се показва мигащия маркер за въвеждане на текст.
Когато работната среда е стартирана в прозореца на командния интерпретатор на системата, може да се затвори с клавишна комбинация Ctrl+C
или Ctrl+D
.
Във всички случаи затваряне и излизане от работната среда става с изпълняване на функция quit()
или exit()
Без зареждане на работна среда
Ако в командния интерпретатор на операционната система напишете
python -с "команда на език Python"
ще се изпълни написаната в кавички команда на език Python
, без работната среда да се зареди и остане отворена. Кавичките са необходими ако командата съдържа интервали, иначе не са задължителни. Ако напишете например:
python3 -c "print(100 + 200)"
Ще се изведе числото 300.
Записан във файл имеНаФайл.py
програмен код се изпълнява с:
python имеНаФайл.py
а ако се използва:
python -i имеНаФайл.py
след изпълнение на кода от файла, работната среда се зарежда и остава отворена, в готовност да приема ръчни команди.
$PYTHONSTARTUP
Това е променлива на обкръжението, която съдържа име на файл. Този файл трябва да съдържа команди на езика Python, които се изпълняват при зареждане на интерактивната среда. С това се спестява ръчното им изпълнение след зареждане на средата.
Интерактивен режим
Когато е заредена интерактивната работна среда и в началото на текущия ред за въвеждане на текст виждате знаците >>>
, ако напишете един ред текст и натиснете Enter, интерпретаторът на Python обработва въведения ред текст и се опитва да го изпълни. Ако този текст е синтактично правилен ще се покаже резултатът от изпълнението, а ако има грешки - съобщение за грешка.
Пресмятане на изрази
Ако въведеният ред е аритметичен израз, резултатът е стойността на този израз. Можем да използваме работната среда на Python като калкулатор.
Присвояване
Можем да присвояваме стойности на една или повече променливи, например с:
a = b = 100
присвояваме стойност 100 едновременно на две променливи с имена съответно a
и b
. Операторът за присвояване завършва без показване на резултат.
Или с
a,b = 100,200
променливата a
получава стойност 100, а променливата b
- стойност 200.
На променливите може да се зададе определен тип, например:
x = str(3) # стринг
y = int(3) # цяло число
z = float(3) # число с плаваща запетая
Извеждане на резултат
Ако се напише име на променлива и се натисне Enter, в интерактивен режим се показва стойността на променливата.
Типът на променлива може да се получи с type(имеНаПроменлива)
.
Променливите, на които са присвоени стойности може да се използват в изрази, например, ако след горното присвояване (a,b = 100,200
) напишем:
a * b / 3
Ще видим резултат, числото: 6666.666666666667
Променливата с име _
съдържа, последният показан резултат.
Във файл с програмен код за извеждане на резултат се използва print(израз)
.
Числа
Аритметичните оператори са:
+ събиране
- изваждане
* умножение
/ деление с плаваща запетая
// делиние с целочислен резултат
% остатък от целочислено деление
** повдигане на степен, включително на нецелочислена степен
Целите числа са с неограничен брой цифри.
Допустими са и действия с комплексни числа, които се пишат, например, така: 1+2j
Стрингове
За отделяне на символите, съставящи стрингове се използват както единични ' ', така и двойни " " кавички. Когато използваните кавички се срещат вътре в стринга, се отделят с \.
Слепването на стрингове става с оператор +.
Има и операция многократно слепване с оператор *, последван от число, означаващо броя повтаряния в слепения стринг.
Ако, например, word
е идентификатор на стринг, word[2]
е символът с индекс 2 (индексирането започва от 0). Променянето на отделни символи не е допустимо (word[2] = 'a'
, например, предизвиква грешка).
word[2:5]
е подстринг, който включва символите от индекс 2 до индекс 4, включително; word[:5]
- началото на стринга, до символа с индекс 5; word[2:]
подстрингът започващ от символ с индекс 2 до края.
Индексите могат да бъдат отрицателни, и тогава отчитат позиция в стринга от дясно наляво. Например: word[-1]
е последният символ от стринга. (Последното може да предизвика грешка, ако стрингът е празен. За получаване на последния символ, ако има такъв е по-подходящо: word[-1:]
, което ще върне празен стринг, ако word
е празен стринг.)
Помощ
В интерактивна работна среда, извикването на функция help()
предизвиква преминаване в режим за получаване на помощ. Най-важните инструкции за ползване на режима са изписани на екрана.
Излизането от този режим става с quit
.
Модули
Модулите са файлове с програмен код, които съдържат дефиниции на обекти и функции. Справочник на модулите има на страница Python Module Index. Списък на инсталираните модули се показва с команда:
help('modules')
import имеНаМодул
След което обръщането към даден обект от импортирания модул става с посочване на името на модула и на обекта:
имеНаМодул.обект
При импортиране с:
from имеНаМодул import обект1, обект2
обръщането към обект1
или обект2
е възможно само чрез имената на обектите, но при това са импортирани само тези обекти. Зареждане на всички обекти от модул става с:
from имеНаМодул import *
Директориите, в които се търсят файлове с модули за зареждане са:
- Директорията на стартирания файл или директорията, от която е стартирана интерактивната работна среда.
- Директориите, изброени в променлива на обкръжението $PYTHONPATH, която има същия синтаксис като $PATH.
- Други, зададени по подразбиране при инсталирането на Python директории.
Всички тези директории се съхраняват в списък sys.path
, дефиниран в модул sys
. Към този списък може програмно да се добавят елементи и така изпълнявания файл може да зареди модули и от други места.
Пътят до файла на зареден модул, се съдържа в променливата __file__
от този модул и може да се покаже с команда:
print(имеНаМодул.__file__)
Вградени в езика структури
Списъци
Списъците са подобни на масивите от други езици за програмиране. Някои от спецификите на списъците в Python са:
Списък се дефинира със заграждане в квадратни скоби на други обекти. Например:
a = ['spam', 'eggs', 100, 1234]
Индексите на елементите от списъка започват от 0.
С посочване на два индекса се получават подсписъци. Например:
a[1,3]
е списък от два елемента започващ от елемента с индекс 1 и съдържащ и елемента с индекс по-малък от 3.
a[1,1]
е празен списък, а a[1,2]
съдържа само елемента с индекс 1.
Ако a
е списък, изразът: 3*a
е списък с 3 пъти повече елементи, повтарящи елементите на a
.
Подсписъкът на един списък, може да се замени с друг списък. Например, при присвояване:
a[1:3] = [1,2,3]
елементите с индекси 1 и 2 на списъка a
се заменят от три елемента - числата 1, 2 и 3, а при:
a[1:3] = []
елементите с индекси 1 и 2 се заменят от празен списък, т.е. изтриват се.
(Изтриване на елементи става и с оператор del
. Примери:
del a[2]
# - изтрива елемента с индекс 2
;
del a[2:4]
# - изтрива елементите с индекси от 2
до 3
;
del a
# - изтрива целия списък a
.)
Списъците могат да се "разопаковат". Ако имаме списък:
a = [1, 2, 3]
Стойността на всеки елемент може да се присвои на отделна променлива с:
b,c,d = a
Броят на елементите на списък се получава с функцията len(списък)
.
Функция range()
Връща аритметична прогресия от цели числа. Примери:
range(10) # числата от 0 до 9
range(2,20) # числата от 2 до 19
range(-2,20,2) # числата от -2 до 18 през 2
Горната граница, не се включва. За да се превърне в списък и да се покажат всички елементи се превръща в списък с list()
.
Комплекти (tuple)
Комплектите са подобни на списъците, но с някои разлики.
Речници
Въвеждане на програмен код на повече от един ред в интерактивната среда
На следващото изображение са показани местата за натискате на клавишите Enter и Tab за въвеждане на изобразения програмен код.
След натискане на Enter в края на първия ред, той се интерпретира като завършено присвояване, което веднага се извършва и се показва знакът >>> за въвеждане на следващи инструкции. Следва оператор за цикъл, който не завършва на първия ред, затова след натискане на Enter на следoващия ред се показва многоточие. Понеже следващият ред е част от оператора за цикъл, това се отбелязва с натискане на Tab, което предизвиква въвеждане на няколко интервала в началото на реда. На следващия ред се показва отново многоточие. Към тялото на цикъла се добавя още един ред със същия отстъп от няколко интервала, който се въвежда с Tab и се завършва с Enter. Този път отново се показва многоточие в началото на реда, но за да се отбележи край на оператора за цикъл на този ред се натиска само Enter. Последното води до изпълняване на оператора за цикъл и показване на резултат.
Функции
Функция се дефинира с:
def име(параметри):
оператори
празен ред
Предишна страница: Работна среда за програмиране с Python в macOS
Следваща страница: Програмиране с Qt