Python команди с обяснения. Какво е Python? Език за програмиране на високо ниво. Типове данни, използвани в Python

В който, в сбита форма,
говорим за основите на езика Python. Предлагам ви превод на тази статия. Преводът не е буквален. Опитах се да обясня по-подробно някои моменти, които може да са неразбираеми.

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

Основни свойства

Python не изисква изрично деклариране на променливи, той е чувствителен към малки и големи букви (var не е еквивалентен на Var или VAR са три различни променливи) обектно-ориентиран език.

Синтаксис

Първо, заслужава да се отбележи интересна характеристика Python. Вместо това не съдържа операторни скоби (начало..край на паскал или (..) на C). блоковете са с отстъп: чрез интервали или табулатори, а въвеждането на блок от изрази се извършва с двоеточие. Едноредовите коментари започват със знак "#", многоредовите коментари започват и завършват с три двойни кавички "" "" ".
За да присвоите стойност на променлива, използвайте знака "=", а за сравнение -
"==". За да увеличите стойността на променлива или да добавите към ред, използвайте оператора "+ =", а за намаляване - "- =". Всички тези операции могат да взаимодействат с повечето типове, включително низове. Например


>>> myvar = 3
>>> myvar + = 2
>>> myvar - = 1
"" "Това е многоредов коментар
Редове, затворени в три двойни кавички, се игнорират "" "

>>> mystring = "Здравей"
>>> mystring + = "свят."
>>> печат mystring
Здравей свят.
# Следващ редпромени
променливи стойности на места. (Само един ред!)

>>> myvar, mystring = mystring, myvar

Структури от данни

Python съдържа структури от данни като списъци, кортежи и речници). Списъците са подобни на едномерните масиви (но можете да използвате списък, включително списъци - многоизмерен масив), кортежите са неизменни списъци, речниците също са списъци, но индексите могат да бъдат от всякакъв тип, а не само числови. „Масивите“ в Python могат да съдържат данни от всякакъв тип, тоест един масив може да съдържа числови, низови и други типове данни. Масивите започват от индекс 0 и последният елемент може да бъде извлечен при индекс -1 Можете да зададете функционални променливии ги използвайте съответно.


>>> проба =, ("a", "кортечка")] # Списъкът се състои от цяло число, друг списък и кортеж
>>> # Този списък съдържа низ, цяло число и дробно число
>>> mylist = "Отново елемент от списъка 1" # Променете първия (нулев) елемент от листа mylist
>>> mylist [-1] = 3 .14 # Променете последния елемент на листа
>>> mydict = ("Ключ 1": "Стойност 1", 2: 3, "pi": 3 .14) # Създайте речник с числови и целочислени индекси
>>> mydict ["pi"] = 3 .15 # Променете елемента на речника под индекса "pi".
>>> mytuple = (1, 2, 3) # Задайте кортеж
>>> myfunction = len #Python ви позволява да декларирате синоними на функции по този начин
>>> печатмоята функция (списък)
3

Можете да използвате част от масив, като посочите първия и последния индекс, разделени с двоеточие ":". В този случай ще получите част от масива, от първия индекс до втория, не включително. Ако първият елемент не е посочен, тогава броенето започва от началото на масива, а ако последният не е посочен, тогава масивът се чете до последния елемент. Отрицателните стойности определят крайната позиция на елемента. Например:


>>> mylist = ["Списък елемент 1", 2, 3 .14]
>>> печат mylist [:] # Всички елементи на масива се четат
["Елемент от списъка 1", 2, 3 .1400000000000001]
>>> печат mylist # Нулата и първият елемент от масива се четат.
["Елемент от списъка 1", 2]
>>> печат mylist [-3: -1] # Прочетете елементи от нула (-3) до секунда (-1) (не включително)
["Елемент от списъка 1", 2]
>>> печат mylist # Елементите се четат от първия до последния

Струни

Стрингове в Python разделени с двойни кавички "" "или единични" ""... Единични кавички могат да присъстват в двойни кавички или обратно. Например репликата "Той каза здравей!" ще се покаже като "Той каза здравей!" Ако трябва да използвате низ от няколко реда, тогава този ред трябва да започва и да завършва с три двойни кавички "" "" ". Можете да замените елементи от кортеж или речник в шаблона за низ. Знакът за процент"% "между низът и кортежът, замества символите в низа "% S" на елемент от кортеж. Речниците ви позволяват да вмъкнете в низ елемент с даден индекс.


>>>печат "Име:% s \ nНомер:% s \ nНиз:% s"% (моят клас.name, 3, 3 * "-")
Име: Пороменос
Номер: 3
низ: -
strString = "" "Този текст се намира
на няколко реда "" "

>>> печат„Този% (глагол) s a% (съществително) s.“ % („Съществително“: „тест“, „глагол“: „е“)
Това е тест.

Оператори

Докато изявленията, ако, засъставете операторите на движение. Няма аналог на оператора select, така че трябва да заобиколите ако... В оператора засе извършва сравнение променлива и списък... За да получите списък с цифри до число - използвайте обхвата на функциите ( ). Ето пример за използване на операторите


списък с диапазони = диапазон (10) # Вземете списък от десет цифри (от 0 до 9)
>>> печатсписък на обхвата
заномер в списъка с диапазони: # Докато номерът на променливата (който се увеличава всеки път) е включен в списъка ...
# Проверете дали променливата е включена
# числа към набор от числа(3 , 4 , 7 , 9 )
акономер в (3, 4, 7, 9): # Ако номерът на променливата е в кортежа (3, 4, 7, 9) ...
# Операция " прекъсване»Осигурява
# Излезте от цикъла по всяко време
прекъсване
друго :
# « продължи"Извършва "превъртане"
# цикъл. Това не се изисква тук, тъй като след тази операция
# във всеки случай програмата се връща към обработката на цикъла
продължи
друго :
# « друго»Не е задължително. Условието е изпълнено
# ако цикълът не е прекъснат с " прекъсване».
пас # Да не прави нищо

акосписък с диапазони == 2:
печат "Вторият елемент (списъците са базирани на 0) е 2"
елифсписък на диапазоните == 3:
печат "Вторият елемент (списъците са базирани на 0) е 3"
друго :
печат"Не знам"

докатосписък на диапазоните == 1:
пас

Функции

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


# arg2 и arg3 са незадължителни аргументи, вземете стойността по подразбиране,
# освен ако не им дадете различна стойност при извикване на функцията.
дефмоя функция (arg1, arg2 = 100, arg3 = "тест"):
връщане arg3, arg2, arg1
# Функцията се извиква със стойността на първия аргумент - "Аргумент 1", втория - по подразбиране, а третия - "Именуван аргумент".
>>> ret1, ret2, ret3 = моя функция ("Аргумент 1", arg3 = "Именуван аргумент")
# ret1, ret2 и ret3 приемат стойностите "Именуван аргумент", 100, "Аргумент 1" съответно
>>> печат ret1, ret2, ret3
Именуван аргумент 100 Аргумент 1

# Следваща публикацияеквивалентно на деф f (x): връщанех + 1
functionvar = ламбдах: х + 1
>>> печат functionvar (1)
2

Класове

Езикът на Python е ограничен в множествено наследяванев класните стаи. Вътрешните променливи и вътрешните методи на клас започват с две долни черти "__" (например "__myprivatevar"). Можем също да присвоим стойността на променлива на клас външно. пример:


класмоята клас:
общ = 10
деф __init __ (само):
self .myvariable = 3
дефмоята функция (self, arg1, arg2):
връщане self .myvariable

# Тук сме декларирали класа My клас... Функцията __init__ се извиква автоматично, когато класовете се инициализират.
>>> classinstance = My клас() # Инициализирахме класа и моята променлива е зададена на 3, както е посочено в метода за инициализация
>>> # Метод myfunction на клас My класвръща стойността на променливата myvariable
3
# Общата променлива е декларирана във всички класове
>>> classinstance2 = Моят клас()
>>> classinstance.common
10
>>> classinstance2.common
10
# Следователно, ако променим стойността му в класа My клас ще се промени
# и неговите стойности в обекти, инициализирани от клас My клас
>>> Myclass.common = 30
>>> classinstance.common
30
>>> classinstance2.common
30
# И тук не променяме променливата на класа. Вместо това
# декларираме го в обекта и му присвояваме нова стойност
>>> classinstance.common = 10
>>> classinstance.common
10
>>> classinstance2.common
30
>>> Myclass.common = 50
# Сега промяната на променливата на класа няма да докосне
# променливи на обекти от този клас
>>> classinstance.common
10
>>> classinstance2.common
50

# Следният клас наследява класа My клас
# наследяване на неговите свойства и методи, освен класа може
# наследи от няколко класа, в този случай пише
# като този: класДруг клас (Myclass1, Myclass2, MyclassN)
класДруг клас (Myclass):
деф __init __ (self, arg1):
self .myvariable = 3
печат arg1

>>> classinstance = Друг клас ("здравей")
Здравейте
>>> classinstance.myfunction (1, 2)
3
# Този клас няма тестово свойство, но ние можем
# декларира такава променлива за обект. И
# тази променлива ще бъде само член класекземпляр.
>>> classinstance.test = 10
>>> classinstance.test
10

Изключения

Изключенията на Python са структурирани опитвам-с изключение [с изключениейонно име]:


дефнякаква функция ():
опитвам :
# Деление на нула води до грешка
10 / 0
с изключение ZeroDivisionError:
# Но програмата не "Извършва незаконна операция"
# A обработва блока за изключение, съответстващ на "ZeroDivisionError"
печат„Ами, невалидно“.

>>> fn с изключение()
Ами, невалидно.

Импортиране

Външните библиотеки могат да бъдат свързани с помощта на процедурата " внос", Къде е името на свързаната библиотека. Можете също да използвате командата " от внос„За да можете да използвате функцията от библиотеката


вноспроизволен # Импортиране на "случайна" библиотека
отвреме вносчасовник # И в същото време функцията "часовник" от библиотеката "време".

Randomint = произволен .randint (1, 100)
>>> печатпроизволен
64

Работа с файловата система

Python има много вградени библиотеки. В този пример ще се опитаме да запишем структурата на списъка в двоичен файл, да я прочетем и да запишем низа в текстов файл. За да трансформираме структурата на данните, ще използваме стандартната библиотека "pickle"


вностуршия
mylist = ["Това", "е", 4, 13327]
# Отворете файл C: \ binary.dat за запис. Символът "r".
# предотвратява подмяната на специални символи (като \ n, \ t, \ b и т.н.).
myfile = файл (r "C: \ binary.dat", "w")
pickle .dump (mylist, myfile)
myfile.close ()

Myfile = файл (r "C: \ text.txt", "w")
myfile.write ("Това е примерен низ")
myfile.close ()

Myfile = файл (r "C: \ text.txt")
>>> печат myfile.read ()
"Това е примерен низ"
myfile.close ()

# Отворете файла за четене
myfile = файл (r "C: \ binary.dat")
loadedlist = pickle .load (myfile)
myfile.close ()
>>> печатзареден списък
[„Това“, „е“, 4, 13327]

Особености

  • Условията могат да се комбинират. 1 < a < 3 выполняется тогда, когда а больше 1, но меньше 3.
  • Използвайте операцията " дел" да се изчистване на променливи или елементи на масив.
  • Python предлага страхотни възможности за работа със списъци... Можете да използвате оператори, за да декларирате структура на списък. Оператор зави позволява да посочите елементите на списъка в определена последователност и ако- ви позволява да избирате елементи по състояние.
>>> lst1 =
>>> lst2 =
>>> печат
>>> печат
# Операторът "any" връща true, ако е поне
# дали е изпълнено някое от условията, включени в него.
>>> всяко (i% 3 зааз в)
Вярно
# Следната процедура изчислява броя на
# съответстващи елемента в списъка
>>> сума (1 зааз в акоаз == 3)
3
>>> дел lst1
>>> печат lst1
>>> дел lst1
  • Глобални променливиса декларирани извън функциите и могат да се четат без никакви декларации. Но ако трябва да промените стойността на глобална променлива от функция, тогава трябва да я декларирате в началото на функцията с ключовата дума „ глобален", Ако не го направите, тогава Python ще декларира променлива, която е достъпна само за тази функция.
число = 5

деф myfunc ():
# Разпечатки 5
печатномер

дефдруга функция ():
# Това хвърля изключение, защото глобалната променлива
# не е извикан от функция. Python в този случай създава
# променлива със същото име вътре в тази функция и е налична
# само за оператори на тази функция.
печатномер
число = 3

деф yetanotherfunc ():
глобаленномер
# И само от тази функция стойността на променливата се променя.
число = 3

Епилог

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

Предимства на Python

  • Скоростта на изпълнение на програмите, написани на Python, е много висока. Това се дължи на факта, че основните библиотеки на Python
    са написани на C ++ и отнемат по-малко време за изпълнение на задачите в сравнение с други езици от високо ниво.
  • В тази връзка можете да напишете своя собствени модулиза Python в C или C ++
  • В стандарта Python библиотекиможете да намерите средствата, с които да работите чрез имейл, протоколи
    Интернет, FTP, HTTP, бази данни и др.
  • Python скриптовете работят на повечето съвременни операционни системи. Тази преносимост позволява на Python да се използва в голямо разнообразие от области.
  • Python е подходящ за всяко програмно решение, било то офис програми, уеб приложения, GUI приложения и др.
  • По-горе Разработка на Pythonработиха хиляди ентусиасти от цял ​​свят. поддържа съвременни технологиив стандартните библиотеки може да дължим точно това, че Python беше отворен за обществеността.

Етикети:

  • Python
  • програмиране
  • урок
Добави тагове

(Превод)

Poromenos „Stuff публикува статия, в която в кратък начин се говори за основите на езика Python. Предлагам ви превод на тази статия. Преводът не е буквален. Опитах се да обясня по-подробно някои точки, които може да не е ясно.

Ако искате да научите езика Python, но не можете да намерите подходящо ръководство, тогава тази статия ще ви бъде много полезна! След кратко време ще можете да се запознаете с основите на езика Python. Въпреки че тази статия често разчита на факта, че вече имате опит в програмирането, надявам се, че дори начинаещите ще намерят този материал за полезен. Прочетете внимателно всеки параграф. Поради компактността на материала някои теми се разглеждат повърхностно, но съдържат всички необходими показатели.

Основни свойства

Python не изисква изрично деклариране на променливи, той е чувствителен към малки и големи букви (var не е еквивалентен на Var или VAR са три различни променливи) обектно-ориентиран език.

Синтаксис

Първо, заслужава да се отбележи една интересна характеристика на Python. Вместо това не съдържа операторни скоби (начало..край на паскал или (..) на C). блоковете са с отстъп: чрез интервали или табулатори, а въвеждането на блок от изрази се извършва с двоеточие. Едноредовите коментари започват със знак "#", многоредовите коментари започват и завършват с три двойни кавички "" "" ".

Знакът "=" се използва за присвояване на стойност на променлива, а "==" се използва за сравнение. За да увеличите стойността на променлива или да добавите към ред, използвайте оператора "+ =", а за намаляване - "- =". Всички тези операции могат да взаимодействат с повечето типове, включително низове. Например

>>> myvar = 3

>>> myvar + = 2

>>> myvar - = 1

"" "Това е многоредов коментар

Редове, затворени в три двойни кавички, се игнорират "" "

>>> mystring = "Здравей"

>>> mystring + = "свят."

>>> отпечатай mystring

Здравей свят.

# Следващият ред се променя

Променливи стойности на места. (Само един ред!)

>>> myvar, mystring = mystring, myvar

Структури от данни

Python съдържа структури от данни като списъци, кортежи и речници). Списъците са като едномерни масиви (но можете да използвате Включване на списъци - многоизмерен масив), кортежите са неизменяеми списъци, речниците също са списъци, но индексите могат да бъдат от всякакъв тип, не само числови. „Масивите“ в Python могат да съдържат данни от всякакъв тип, тоест един масив може да съдържа числови, низови и други типове данни. Масивите започват с индекс 0, а последният елемент може да бъде получен с индекс -1. Можете да присвоите функции на променливи и да ги използвате съответно.

>>> sample =, ("a", "tuple")] # Списъкът се състои от цяло число, друг списък и кортеж

>>> mylist = ["Списък елемент 1", 2, 3.14] # Този списък съдържа низ, цяло число и дроб

>>> mylist = "Отново елемент от списъка 1" # Променете първия (нулев) елемент от списъка mylist

>>> mylist [-1] = 3.14 # Променете последния елемент на листа

>>> mydict = ("Ключ 1": "Стойност 1", 2: 3, "pi": 3.14) # Създаване на речник с числови и целочислени индекси

>>> mydict ["pi"] = 3.15 # Променете елемента на речника с индекс "pi".

>>> mytuple = (1, 2, 3) # Задайте кортеж

>>> myfunction = len #Python ви позволява да декларирате синоними на функции по този начин

>>> отпечатай моята функция (mylist)

Можете да използвате част от масив, като посочите първия и последния индекс, разделени с двоеточие ":". В този случай ще получите част от масива, от първия индекс до втория, не включително. Ако първият елемент не е посочен, тогава броенето започва от началото на масива, а ако последният не е посочен, тогава масивът се чете до последния елемент. Отрицателните стойности определят крайната позиция на елемента. Например:

>>> mylist = ["Списък 1", 2, 3.14]

>>> print mylist [:] # Всички елементи на масива се четат

[„Елемент от списъка 1“, 2, 3.1400000000000001]

>>> print mylist # Нулата и първият елемент от масива се четат.

["Елемент от списъка 1", 2]

>>> print mylist [-3: -1] # Прочетете елементи от нула (-3) до секунда (-1) (не включително)

["Елемент от списъка 1", 2]

>>> print mylist # Елементите се четат от първия до последния

Струни

Стрингове в Python разделени с двойни кавички "" "или единични" ""... Единични кавички могат да присъстват в двойни кавички или обратно. Например репликата "Той каза здравей!" ще се покаже като "Той каза здравей!" Ако трябва да използвате низ от няколко реда, тогава този ред трябва да започва и да завършва с три двойни кавички "" "" ". Можете да замените елементи от кортеж или речник в шаблона за низ. Знакът за процент"% "между низът и кортежът, замества символите в низа "% S" на елемент от кортеж. Речниците ви позволяват да вмъкнете в низ елемент с даден индекс.

>>> отпечатай "Име:% s \ nНомер:% s \ nСтринг:% s"% (myclass.name, 3, 3 * "-")

Име: Пороменос

Номер: 3

низ: ---

strString = "" "Този текст се намира

на няколко реда "" "

>>> print "This% (глагол) s a% (съществително) s." % ("съществително": "тест", "глагол": "е")

Това е тест.

Оператори

Изявленията while, if, for съставляват операторите за движение. Няма аналог на оператора select, така че трябва да заобиколите if. Сравнението се извършва в изявлението for променлива и списък... За да получите списък с цифри до число - използвайте обхвата на функциите ( ). Ето пример за използване на операторите

rangelist = диапазон (10) # Вземете списък от десет цифри (0 до 9)

>>> отпечатайте списък с диапазони

за число в списъка с диапазони: # Докато номерът на променливата (който се увеличава всеки път) влиза в списъка ...

# Проверете дали променливата е включена

# числа към набор от числа (3, 4, 7, 9)

Ако числото е в (3, 4, 7, 9): # Ако номерът на променливата е в кортежа (3, 4, 7, 9) ...

# Операцията "прекъсване" осигурява

# Излезте от цикъла по всяко време

Пауза

друго:

# "Продължи" превърта

# цикъл. Това не се изисква тук, тъй като след тази операция

# във всеки случай програмата се връща към обработката на цикъла

продължи

друго:

# "Else" е по избор. Условието е изпълнено

# освен ако цикълът не е прекъснат с "break".

Pass # Не правете нищо

ако списък с диапазони == 2:

Печат "Вторият елемент (списъците са базирани на 0) е 2"

elif rangelist == 3:

Печат "Вторият елемент (списъците са базирани на 0) е 3"

друго:

Печат "Не знам"

докато списък на диапазоните == 1:

пас

Функции

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

# arg2 и arg3 са незадължителни аргументи, вземете стойността по подразбиране,

# освен ако не им дадете различна стойност при извикване на функцията.

def myfunction (arg1, arg2 = 100, arg3 = "тест"):

Връщане на arg3, arg2, arg1

# Функцията се извиква със стойността на първия аргумент - "Аргумент 1", втория - по подразбиране, а третия - "Named argument".

>>> ret1, ret2, ret3 = моя функция ("Аргумент 1", arg3 = "Именуван аргумент")

# ret1, ret2 и ret3 приемат стойностите "Именуван аргумент", 100, "Аргумент 1" съответно

>>> отпечатай ret1, ret2, ret3

Именуван аргумент 100 Аргумент 1

# Следното е еквивалентно на def f (x): връщане на x + 1

functionvar = ламбда x: x + 1

>>> print functionvar (1)

Класове

Езикът Python е ограничен в множествено наследяване в класове. Вътрешните променливи и вътрешните методи на клас започват с две долни черти "__" (например "__myprivatevar"). Можем също да присвоим стойността на променлива на клас външно. пример:

клас Myclass:

Общо = 10

Def __init __ (само):

Self.myvariable = 3

Def myfunction (self, arg1, arg2):

Върнете self.myvariable

# Тук сме декларирали класа Myclass. Функцията __init__ се извиква автоматично, когато класовете се инициализират.

>>> classinstance = Myclass () # Инициализирахме класа и моята променлива е зададена на 3, както е декларирано в метода за инициализация

>>> classinstance.myfunction (1, 2) # Методът myfunction на класа Myclass връща стойността на променливата myvariable

# Общата променлива е декларирана във всички класове

>>> classinstance2 = Myclass ()

>>> classinstance.common

>>> classinstance2.common

# Следователно, ако променим стойността му в класа Myclass ще се промени

# и неговите стойности в обекти, инициализирани от Myclass

>>> Myclass.common = 30

>>> classinstance.common

>>> classinstance2.common

# И тук не променяме променливата на класа. Вместо това

# декларираме го в обекта и му присвояваме нова стойност

>>> classinstance.common = 10

>>> classinstance.common

>>> classinstance2.common

>>> Myclass.common = 50

# Сега промяната на променливата на класа няма да докосне

# променливи на обекти от този клас

>>> classinstance.common

>>> classinstance2.common

# Следният клас наследява класа Myclass

# наследяване на неговите свойства и методи, освен класа може

# наследи от няколко класа, в този случай пише

# като този: клас Otherclass (Myclass1, Myclass2, MyclassN)

клас Друг клас (Myclass):

Def __init __ (self, arg1):

Self.myvariable = 3

Отпечатайте arg1

>>> classinstance = Друг клас ("здравей")

Здравейте

>>> classinstance.myfunction (1, 2)

# Този клас няма тестово свойство, но ние можем

# декларира такава променлива за обект. И

# тази променлива ще бъде член само на classinstance.

>>> classinstance.test = 10

>>> classinstance.test

Изключения

Изключенията в Python имат структура try-except:

def somefunction ():

Опитвам:

# Деление на нула води до грешка

10 / 0

С изключение на ZeroDivisionError:

# Но програмата не "Извършва незаконна операция"

# A обработва блока за изключение, съответстващ на "ZeroDivisionError"

Отпечатайте „Ами сега, невалидно“.

>>> fneexcept ()

Ами, невалидно.

Импортиране

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

import random # Импортирайте "случайна" библиотека

from time import clock # И в същото време функцията "clock" от библиотеката "time".

randomint = random.randint (1, 100)

>>> печат на случаен принцип

Работа с файловата система

Python има много вградени библиотеки. В този пример ще се опитаме да запишем структурата на списъка в двоичен файл, да го прочетем и да запишем низа в текстов файл. За да трансформираме структурата на данните, ще използваме стандартната библиотека "pickle":

вносна туршия

mylist = ["Това", "е", 4, 13327]

# Отворете файл C: \ binary.dat за запис. Символът "r".

# предотвратява подмяната на специални символи (като \ n, \ t, \ b и т.н.).

myfile = файл (r "C: \ binary.dat", "w")

pickle.dump (mylist, myfile)

myfile.close ()

myfile = файл (r "C: \ text.txt", "w")

myfile.write ("Това е примерен низ")

myfile.close ()

myfile = файл (r "C: \ text.txt")

>>> отпечатай myfile.read ()

"Това е примерен низ"

myfile.close ()

# Отворете файла за четене

myfile = файл (r "C: \ binary.dat")

loadedlist = pickle.load (myfile)

myfile.close ()

>>> отпечатайте зареден списък

[„Това“, „е“, 4, 13327]

Особености

  • Условията могат да се комбинират. 1 < a < 3 выполняется тогда, когда а больше 1, но меньше 3.
  • Използвайте операцията "del", за да изчистване на променливи или елементи на масив.
  • Python предлага страхотни възможности за работа със списъци... Можете да използвате оператори, за да декларирате структура на списък. Операторът for ви позволява да посочите елементите на списък в определена последователност, а if - ви позволява да избирате елементи по условие.

>>> lst1 =

>>> lst2 =

>>> отпечатай

>>> отпечатай

# Операторът "any" връща true, ако е поне

# дали е изпълнено някое от условията, включени в него.

>>> всяко (i% 3 за i in)

Вярно

# Следната процедура изчислява броя на

# съответстващи елемента в списъка

>>> сума (1 за i в, ако i == 3)

>>> del lst1

>>> отпечатай lst1

>>> del lst1

  • Глобални променливиса декларирани извън функциите и могат да се четат без никакви декларации. Но ако трябва да промените стойността на глобална променлива от функция, тогава трябва да я декларирате в началото на функцията с ключовата дума "global", ако не го направите, тогава Python ще декларира променлива, достъпна само за това функция.

число = 5

def myfunc ():

# Разпечатки 5

Отпечатайте номер

def anotherfunc ():

# Това хвърля изключение, защото глобалната променлива

# не е извикан от функция. Python в този случай създава

# променлива със същото име вътре в тази функция и е налична

# само за оператори на тази функция.

Отпечатайте номер

Число = 3

def yetanotherfunc ():

Глобален номер

# И само от тази функция стойността на променливата се променя.

Число = 3

Епилог

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

Предимства на Python

  • Скоростта на изпълнение на програмите, написани на Python, е много висока. Това се дължи на факта, че основните библиотеки на Python
    са написани на C ++ и отнемат по-малко време за изпълнение на задачите в сравнение с други езици от високо ниво.
  • Благодарение на това можете да напишете свои собствени модули за Python на C или C ++
  • В стандартните библиотеки на Python можете да намерите инструменти за работа с имейл, протоколи
    Интернет, FTP, HTTP, бази данни и др.
  • Python скриптовете работят на повечето съвременни операционни системи. Тази преносимост позволява на Python да се използва в голямо разнообразие от области.
  • Python е подходящ за всяко програмно решение, било то офис програми, уеб приложения, GUI приложения и т.н.
  • Хиляди ентусиасти от цял ​​свят са работили върху разработката на Python. Поддръжката на съвременните технологии в стандартните библиотеки може да се дължи на факта, че Python беше отворен за всички.

Нека да преминем към теоретичната и практическата част и да започнем с това какво е преводачът.

Преводач

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

В зависимост от използваната версия на Python, самият интерпретатор може да бъде реализиран като C програма, като набор от Java класове или под някаква друга форма, но повече за това по-късно.

Изпълнение на скрипт в конзолата

Нека стартираме интерпретатора в конзолата:

Сега чака въвеждането на команди, въведете следната инструкция там:

Отпечатайте "здравей свят!"

наздраве, първата ни програма! : Д

Изпълнение на скрипт от файл

Създайте файл "test.py" със съдържание:

# print "hello world" print "hello world" # print 2 до 10-та степен печат 2 ** 10

и изпълнете този файл:

# python /път/до/test.py

Динамична компилация и байткод

След като стартирате скрипта, той първо се компилира изходен текстскрипт към байткод за виртуалната машина. Компилацияе само стъпка за превод, а байткодът е ниско ниво, независимо от платформата представяне на изходния код на програма. Python превежда всяка инструкция в изходния код на скрипта в групи от инструкции за байт код, за да подобри скоростта на изпълнение на програмата, тъй като байткодът е много по-бърз. След компилиране в байткод, файл с разширението ".pyc"в непосредствена близост до източника на скрипта.

Следващия път, когато стартирате програмата си, интерпретаторът ще пропусне етапа на компилация и ще върне компилирания файл с разширението ".pyc" за изпълнение. Въпреки това, ако промените изходния код на вашата програма, стъпката за компилиране в байткод ще се случи отново, тъй като Python автоматично следи датата на модификация на файла с изходния код.

Ако Python не може да запише файла с байт-кода, например поради липса на достъп за запис до диска, програмата няма да пострада, тя просто ще събере байт-кода в паметта и ще го премахне от там, когато програмата приключи.

Виртуална машина на Python (PVM)

След ще премине през процесакомпилация, байткодът се предава на механизъм, наречен виртуална машина, който ще изпълни инструкциите от байт кода. Виртуална машинае механизъм по време на изпълнение, той винаги присъства в системата на Python и е екстремен компонент на системата, наречен "Python Interpreter".

За да консолидираме миналото, нека отново изясним ситуацията, компилацията в байткод се извършва автоматично, а PVM е само част от системата на Python, която сте инсталирали с интерпретатора и компилатора. Всичко се случва прозрачно за програмиста и не е необходимо да извършвате тези операции ръчно.

производителност

Програмисти с опит с езици като C и C ++ може да забележат някои разлики в модела на изпълнение на Python. Първият е липсата на стъпка за изграждане или извикване на помощната програма "make"; програмите на Python могат да се изпълняват веднага след написването на изходния код. Втората разлика е, че байткодът не е двоичен машинен код (например инструкции за микропроцесор на Intel), той е вътрешно представяне на програма на Python.

Поради тези причини програмите на Python не могат да работят толкова бързо, колкото C / C ++. Заобикалянето на инструкциите прави виртуална системаа не микропроцесор и за да се изпълни байт-кодът е необходима допълнителна интерпретация, чиито инструкции отнемат повече време от машинните инструкции на микропроцесора.

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

В резултат на това Python се намира между традиционното компилиране и традиционните интерпретативни езици за програмиране по отношение на производителността.

Алтернативни реализации на Python

Казаното по-горе за компилатора и виртуалната машина е типично за стандартната реализация на Python, така наречената CPython (ANSI C реализация). Има обаче и алтернативни реализации като Jython и IronPython, за които ще говоря сега.

Това е стандартната и оригинална реализация на Python, наречена така, защото е написана на ANSI C. Това е, което инсталирахме, когато избрахме пакета ActivePythonили инсталиран от FreeBSDпристанища. Тъй като това е референтна реализация, обикновено е така работи по-бързо, по-стабилно и по-добреотколкото алтернативни реализации.

Jython

Първоначално наречен JPython, основната цел е тясна интеграция с езика Java програмиране ... Реализацията на Jython се състои от Java класове, които компилират програмен кодв Python в байткод на Java и след това прехвърлете получения байткод Java виртуална машина (JVM).

Целта на Jython е да даде възможност на програмите на Python да манипулират Java приложенията по същия начин, по който CPython може да управлява C / C ++ компоненти. Тази реализация има безпроблемна Java интеграция. Тъй като кодът на Python се превежда в байт код на Java, той се държи по време на изпълнение точно като истинска програма в Java език... Програмите на Jython могат да действат като аплети и сървлети, да създават графичен интерфейс, използвайки механизми на Java и др. Освен това Jython осигурява поддръжка за възможността за импортиране и използване на Java класове в код на Python.

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

Внедряването е предназначено да осигури интеграция на програми на Python с приложения, създадени за работа в средата на Microsoft. NET Frameworkоперационната система Windows, както и Mono, еквивалентът на Linux с отворен код. Платформата .NET и C# среда за изпълнение са проектирани да осигурят оперативна съвместимост между програмни обекти- независимо от използвания език за програмиране, в духа на по-ранния COM модел на Microsoft.

IronPython позволява на програмите на Python да действат както като клиентски, така и като сървърни компоненти, достъпни от други .NET програмни езици. Дотолкова доколкото развитието е в ход от Microsoft , от IronPython, наред с други неща, човек би очаквал значителни оптимизации на производителността.

Инструменти за оптимизиране на скоростта на изпълнение

Има и други реализации, включително динамичен компилатор Псикои Shedskin C ++ преводач, които се опитват да оптимизират основния модел на изпълнение.

Динамичен компилатор Psyco

Псико системае компонент, който разширява модела за изпълнение на байт код, за да позволи на програмите да работят по-бързо. Псикое разширение PVMкойто събира и използва информация за типа, за да преведе части от байт кода на програмата в истински двоичен файл машинен кодкоето е много по-бързо. Такъв превод не изисква промени в изходния код или допълнителна компилация по време на разработката.

По време на изпълнение на програмата Psyco събира информация за типовете обекти и след това тази информация се използва за генериране на високоефективен машинен код, оптимизиран за обекти от този тип. След това генерираният машинен код замества съответните секции на байт-кода, като по този начин увеличава скоростта на изпълнение.

В идеалния случай някои части от програмния код са под контрола на Psyco може да се изпълнява толкова бързо, колкото компилиран C код.

Psyco осигурява увеличение на скоростта от 2x до 100x, но обикновено 4x, когато се използва немодифициран интерпретатор на Python. Единственият недостатък на Psyco е фактът, че в момента той може да генерира машинен код само за архитектура Intel x86.

Psyco не е включен в стандартната дистрибуция, той трябва да бъде изтеглен и инсталиран отделно. Все още има проект PyPyкоето представлява опит за пренаписване PVMза да оптимизирате кода, както в Псико, проект PyPyще поеме повече от проекта Псико.

Shedskin C ++ преводач

Шедскине система, която преобразува изходния код на Python в изходен код на C ++, който след това може да бъде компилиран в машинен код. В допълнение, системата прилага независим от платформата подход за изпълнение на програмния код на Python.

Замразени двоични файлове

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

Фиксирана двоични файловекомбинирайте в един пакет файл програми с байт код, PVM и поддържащи файлове, изисквани от програмите. Резултатът е един-единствен изпълним файл, като например ".exe" файл за Windows.

Днес има три основни инструмента за създаване на "замразени двоични файлове":

  • py2exe- може да създава самостоятелни Windows програми, използвайки библиотеки Tkinter, PMW, wxPython и PyGTK за изграждане графичен интерфейс, програми, използващи софтуерсъздаване на PyGame игри, win32com клиентски програми и много други;
  • PyInstaller- наподобява py2exe, но също така работи на Linux и UNIX и е в състояние да произвежда самоинсталиращи се изпълними файлове.
  • замръзвам- оригинална версия.

Трябва да изтеглите тези инструменти отделно от Python, те са безплатни.

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

Резюме

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

Въведение


Във връзка с наблюдаваното в момента бурно развитие на персоналните изчислителни технологии се наблюдава постепенна промяна в изискванията към езиците за програмиране. Интерпретираните езици започват да играят все по-голяма роля с нарастващата сила персонални компютризапочва да осигурява достатъчна скорост на изпълнение на интерпретираните програми. И единственото значително предимство на компилираните езици за програмиране е високоскоростният код, който създават. Когато скоростта на изпълнение на програмата не е критична, най-много правилният изборще бъде интерпретиран език като по-опростен и по-гъвкав инструмент за програмиране.

В тази връзка е от известен интерес да се разгледа един сравнително нов език за програмиране Python (Python), който е създаден от неговия автор Гуидо ван Росум в началото на 90-те години.

Обща информация за Python. Предимства и недостатъци


Python е интерпретиран, естествено обектно-ориентиран език за програмиране. Той е изключително прост и съдържа малък брой ключови думи, в същото време е много гъвкав и изразителен. Това е език на по-високо ниво от Pascal, C ++ и, разбира се, C, което се постига главно благодарение на вградените структури от данни на високо ниво (списъци, речници, кортежи).

Добродетелите на езика.
Безспорното предимство е, че интерпретаторът на Python е внедрен на почти всички платформи и операционна система... Първият такъв език беше C, но неговите типове данни са различни колиможе да заеме различно количество памет и това послужи като някаква пречка при писането на наистина преносима програма. Python няма този недостатък.

Следващата важна характеристика е разширимостта на езика, на това се отдава голямо значение и, както пише самият автор, езикът е замислен именно като разширяем. Това означава, че има възможност за подобряване на езика от всички заинтересовани програмисти. Интерпретаторът е написан на C и изходният код е достъпен за всякакви манипулации. Ако е необходимо, можете да го вмъкнете в програмата си и да го използвате като вградена обвивка. Или, като напишете вашите добавки за Python на C и компилирате програмата, можете да получите "разширен" интерпретатор с нови функции.

Следващото предимство е наличието на голям брой plug-in модули, които осигуряват различни допълнителни функции... Такива модули са написани на C и на самия Python и могат да бъдат разработени от всеки достатъчно квалифициран програмист. Следните модули могат да бъдат цитирани като примери:

  • Числовен Python - Разширени математически възможности като целочислен вектор и манипулация с матрици.
  • Tkinter - изграждане на приложения с помощта на графичен потребителски интерфейс (GUI), базиран на широко използвания Tk интерфейс в X-Windows;
  • OpenGL - Използва обширната библиотека за 2D и 3D графично моделиране на Silicon Graphics Inc. Open Graphics Library. Този стандарт се поддържа, наред с други неща, в такива общи операционни системи като Microsoft Windows 95 OSR 2, 98 и Windows NT 4.0.
Недостатъци на езика.
Единственият недостатък, отбелязан от автора, е относително ниската скорост на изпълнение на програмата Python, което се дължи на нейната интерпретируемост. Това обаче според нас е повече от компенсирано от предимствата на езика при писане на програми, които не са много критични за скоростта на изпълнение.

Преглед на функциите


1. Python, за разлика от много езици (Pascal, C ++, Java и др.), не изисква декларации на променливи. Те се създават на мястото на тяхната инициализация, т.е. първия път, когато присвоите стойност на променлива. Това означава, че типът на променливата се определя от типа на присвоената стойност. Python прилича на Basic в това отношение.
Типът на променливата не е неизменен. Всяко присвояване за нея е правилно и това води само до факта, че типът на променливата става тип на новата присвоена стойност.

2. В езици като Pascal, C, C++, организацията на списъците представляваше известни трудности. За да ги приложите, трябваше да се проучат добре принципите на работа с указатели и динамична памет. И дори да има добра квалификация, програмист, всеки път, когато внедрява отново механизмите за създаване, работа и унищожаване на списъци, лесно може да направи фини грешки. С оглед на това са създадени някои инструменти за работа със списъци. Например, Delphi Pascal има клас TList, който имплементира списъци; за C ++ е разработена библиотеката STL (Standard Template Library), съдържаща такива структури като вектори, списъци, набори, речници, стекове и опашки. Такива средства обаче не са налични на всички езици и техните реализации.

Един от отличителни черти Python е наличието на такива структури, вградени в самия език като кортежи(кортежа), списъците(списък) и речници(речник) понякога се нарича карти(карта). Нека ги разгледаме по-подробно.

  1. Кортеж ... Донякъде напомня масив: състои се от елементи и има строго определена дължина. Елементите могат да бъдат всякакви стойности - прости константи или обекти. За разлика от масива, елементите на Tuple не са непременно еднакви. И това, което отличава кортеж от списък е, че кортежът не може да бъде променен, т.е. не можем да присвоим нещо ново на i-тия елемент от кортежа и не можем да добавяме нови елементи. По този начин Tuple може да се нарече константен списък. Синтактично, кортежът се посочва чрез изброяване на всички елементи, разделени със запетаи, и всичко това е затворено в скоби:

  2. (1, 2, 5, 8)
    (3.14, 'низ', -4)
    Всички елементи се индексират от нулата. За да получите i-тия елемент, трябва да посочите името на кортежа и след това индекса i в квадратни скоби. пример:
    t = (0, 1, 2, 3, 4)
    отпечатай t, t [-1], t [-3]
    Резултат: 0 4 2
    По този начин кортежът може да се нарече константен вектор, ако неговите елементи винаги са еднакви.
  3. Списък ... Добър пример за списък е низ на Turbo Pascal. Елементите на низ са единични символи, дължината му не е фиксирана, възможно е да се изтрият елементи или, напротив, да се вмъкнат навсякъде в низа. Елементите на списъка могат да бъдат произволни обекти, не непременно от същия тип. За да създадете списък, достатъчно е да изброите неговите елементи, разделени със запетаи, като оградите всичко това в квадратни скоби:


  4. [„Стринг“, (0,1,8),]
    За разлика от Tuple, списъците могат да се променят по желание. Достъпът до елементите се осъществява по същия начин, както в кортежите. пример:
    л =]
    отпечатай l, l, l [-2], l [-1]
    Резултат: 1 с (2,8) 0
  5. Речник ... Той наподобява тип запис в Pascal или структурен тип в C. Въпреки това, вместо схемата "поле на запис" - "стойност", използва "ключ" - "стойност". Речникът е набор от двойки "ключ" - "стойност". Тук "ключ" е константа от всякакъв тип (но най-често се използват низове), той служи за именуване (индексиране) на определена стойност, съответстваща на нея (която може да се променя).

  6. Речникът се създава чрез изброяване на неговите елементи (двойки "ключ" - "стойност", разделени с двоеточие), разделени със запетаи и ограждане на всички в къдрави скоби. За да получите достъп до определена стойност, е необходимо да напишете съответния ключ в квадратни скоби след името на речника. пример:
    d = („a“: 1, „b“: 3, 5: 3.14, „name“: „John“)
    d ["b"] = d
    отпечатай d ["a"], d ["b"], d, d ["име"]
    Резултат: 1 3,14 3,14 Йоан
    За да добавите нова двойка "ключ" - "стойност", достатъчно е да присвоите елемент с нов ключ съответната стойност:
    d ["new"] = "нова стойност"
    печат d
    Резултат: („a“: 1, „b“: 3, 5: 3.14, „name“: „John“, „new“: „нова стойност“)

3. Python за разлика от Pascal, C, C ++ не поддържа работа с указатели, динамична памет и адресна аритметика. В това е подобно на Java. Както знаете, указателите са източник на фини грешки и работата с тях е свързана повече с програмиране на ниско ниво. За по-голяма надеждност и простота те не са включени в Python.

4. Един от Характеристики на Pythonе как става присвояването на една променлива към друга, т.е. когато от двете страни на оператора " = „има променливи.

Следвайки Тимъти Бъд (), ще се обадим семантика на указателитеслучаят, когато присвояването води само до присвояване на препратка (указател), т.е. новата променлива става просто различно име, което означава същото място в паметта като старата променлива. В този случай промяната в стойността, определена от новата променлива, ще доведе до промяна в стойността на старата, тъй като всъщност означават едно и също нещо.

Когато присвояването води до създаване на нов обект (тук обектът е в смисъл на част от памет за съхранение на стойност от някакъв тип) и копиране на съдържанието на присвоената променлива в него, ще наречем този случай семантика на копиране... По този начин, ако семантиката на копиране е валидна при копиране, тогава променливите от двете страни на знака "=" ще означават два независими обекта с едно и също съдържание. И тук последващата промяна на една променлива няма да повлияе на другата по никакъв начин.

Присвояването в Python работи така: if възлагаемиобектът е екземпляр на такива типове като числа или низове, тогава семантиката на копиране се прилага, но ако от дясната страна има екземпляр на клас, списък, речник или кортеж, тогава семантиката на указателите се прилага. пример:
а = 2; b = a; b = 3
отпечатай семантика на копие: a =", a, "b =", b
а =; b = a; b = 3
отпечатайте "семантика на указателя: a =", a, "b =", b
Резултат:
семантика на копиране: a = 2 b = 3
семантика на показалец: a = b =

За тези от вас, които искат да знаят какво е това, ще разгледам по друг начин присвояването в Python. Ако в такива езици като Basic, Pascal, C / C ++ се занимавахме с променливи - "капацитети" и съхраняваните в тях константи (числови, символични, низови - не точка), и операцията за присвояване означаваше "поставяне " константата в променливата, която се присвоява, тогава в Python вече трябва да работим с променлива "имена" и обекти, наименувани от тях. (Забелязвате ли някаква аналогия с езика Prolog?) Какво е обект в Python? Това е всичко, което можете да назовете: числа, низове, списъци, речници, екземпляри на класове (които в Object Pascal се наричат ​​обекти), самите класове (!), функции, модули и т.н. Така че, когато се присвоява променлива на някакъв обект, променливата става нейно "име", а обектът може да има произволен брой такива "имена" и всички те не зависят един от друг по никакъв начин.

Сега обектите са разделени на модифицирани (променяеми) и неизменни. Променливи - тези, които могат да променят своето "вътрешно съдържание", например списъци, речници, екземпляри на класове. И неизменни такива - като числа, кортежи, низове (да, низове също; можете да присвоите променлива на нов низ, извлечен от стария, но не можете да модифицирате самия стар низ).

Така че ако пишем а =; b = a; b = 3 Python го интерпретира по следния начин:

  • дайте на обект "списък "име а ;
  • дайте на този обект друго име - б ;
  • модифицира нулевия елемент на обекта.

  • Така че получихме "псевдо" семантиката на указателите.

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

    T = (1, 2,, "string") t = 6 # това не е разрешено del t # също грешка t = 0 # разрешена, сега третият компонент е списък t = "S" # грешка: низовете не са променлив

    5. Начинът, по който операторите са групирани в Python, е доста оригинален. В Pascal за това се използват операторни скоби. начало-край, в C, C ++, Java - брекети(), в Basic се използват затварящите окончания на езиковите конструкции (NEXT, WEND, END IF, END SUB).
    В Python всичко е много по-просто: изборът на блок от изрази се извършва чрез изместване на избраната група с един или повече интервали или таблични знаци надясно спрямо заглавието на структурата, към която ще се отнася този блок. Например:

    ако x> 0: отпечатай ‘x> 0’ x = x - 8 иначе: отпечатай ‘x<= 0 ’ x = 0 По този начин, добър стилзаписите на програмите, които учителите по езиците Pascal, C++, Java и др. изискват, се придобиват тук от самото начало, защото просто няма да има друг начин.

    Описание на езика. Контролни конструкции



    Обработка на изключения


    опитвам:
    <оператор1>
    [с изключение[<исключение> [, <переменная>] ]:
    <оператор2>]
    [друго <оператор3>]
    Изпълнено<оператор1>ако се случи изключение<исключение>, след което се изпълнява<оператор2>... Ако<исключение>въпроси, тогава се възлага<переменной>.
    В случай на успешно завършване<оператора1>, изпълнено<оператор3>.
    опитвам:
    <оператор1>
    накрая:
    <оператор2>
    Изпълнено<оператор1>... Ако не се хвърлят изключения, тогава<оператор2>... В противен случай,<оператор2>и незабавно се хвърля изключение.
    повиши <исключение> [<значение>] Инициира изключителна ситуация<исключение>с параметър<значение>.

    Изключенията са само низовете. пример:

    My_ex = ‘лош индекс’ опитайте: ако е лош: повдигнете my_ex, лошо освен my_ex, стойност: отпечатайте ‘Грешка’, стойност

    Декларация на функция



    Обявяване на класове



    Клас cMyClass: def __init __ (self, val): self.value = val # def printVal (self): print 'value =', self.value # # end cMyClass obj = cMyClass (3.14) obj.printVal () obj. value = "(! LANG: низ сега" obj.printVal () !} Резултат:
    стойност = 3,14
    стойност = низ сега

    Оператори за всички видове последователности (списъци, кортежи, низове)


    Оператори за списъци (списък)


    s [i] = x i-тият елемент от s се заменя с x.
    s = t някои от елементите s от i до j-1 се заменят с t (t може да бъде и списък).
    дел с премахва s частта (както и s =).
    добавяне (x) добавя елемента x към края на s.
    s.count (x) връща броя на елементите s, равен на x.
    s.индекс (x) връща най-малкото i, така че s [i] == x.
    вмъкване (i, j) частта от s, започваща от i-тия елемент, се измества надясно, а s [i] се присвоява на x.
    s.премахване (x) същото като del s [s.index (x)] - премахва първия елемент от s, равен на x.
    s.reverse () записва низа в обратен ред
    s.sort () сортира списъка във възходящ ред.

    Оператори на речник


    Файлови обекти


    Създаден от вградена функция отворен ()(вижте описанието му по-долу). Например: f = отворен („mydan.dat“, „r“).
    методи:

    Други езикови елементи и вградени функции


    = назначение.
    печат [ < c1 > [, < c2 >]* [, ] ] извежда стойности< c1 >, < c2 >v stdout... Поставете интервал между аргументите. Ако в края на списъка с аргументи няма запетая, тогава се извършва нов ред.
    АБС (x) връща абсолютната стойност на x.
    Приложи (е , <аргументы>) извиква функция (или метод) f с< аргументами >.
    chr (i) връща едносимволен низ с ASCII код i.
    cmp (x, y) връща отрицателно, нула или положително, ако x е съответно<, ==, или >отколкото у.
    divmod (a, b) връща кортеж (a / b, a% b), където a / b е div b (цяла част от резултата от деленето), а% b е mod b (остатък от деленето).
    оценка (и)
    връща обекта, посочен в s като низ. S може да съдържа всяка структура на езика. S може да бъде и кодов обект, например: x = 1; incr_x = eval ("x + 1").
    плуване (x) връща реална стойност, равна на числото x.
    шестнадесетичен (x) връща низ, съдържащ шестнадесетичното представяне на x.
    вход (<строка>) извежда<строку>, чете и връща стойност от стандартен вход.
    int (x) връща целочислената стойност на числото x.
    лещи) връща дължината (броя елементи) на обекта.
    дълъг (x) връща дълъг целочислен тип стойност x.
    макс (s), мин (с) връща най-големия и най-малкия от елементите на последователността s (тоест s е низ, списък или кортеж).
    октомври (x) връща низ, съдържащ представянето на числото x.
    отворен (<имя файла>, <режим>= „R“ ) връща файл обект, отворен за четене.<режим>= ‘W’ - отвор за писане.
    ред (в) връща ASCII кода на знака (низ с дължина 1) c.
    мощност (x, y) връща стойността на x на степен на y.
    обхват (<начало>, <конец>, <шаг>) връща списък с цели числа, по-големи или равни на<начало>и по-малко от<конец>генерирани с дадено<шагом>.
    raw_input ( [ <текст> ] ) извежда<текст>към стандартен изход и чете низ от стандартен вход.
    кръг (x, n = 0) връща реално х, закръглено до n-ия знак след десетичната запетая.
    str (<объект>) връща низово представяне<объекта>.
    Тип (<объект>) връща типа на обекта.
    Например: ако тип (x) == тип (‘’): отпечатайте ‘това е низ’
    xrange (<начало>, <конец>, <шаг>) подобно на диапазона, но само имитира списъка, без да го създава. Използва се в цикъл for.

    Специални функции за работа със списъци


    филтър (<функция>, <список>) връща списък с тези елементи<спиcка>за което<функция>придобива стойността "true".
    карта (<функция>, <список>) се прилага<функцию>към всеки елемент<списка>и връща списък с резултати.
    намаляване (е , <список>,
    [, <начальное значение> ] )
    връща стойността, получена чрез "намаляване"<списка>функция f. Това означава, че има някаква вътрешна променлива p, която се инициализира<начальным значением>, след това за всеки елемент<списка>, функцията f се извиква с два параметъра: p и елемент<списка>... Резултатът, върнат от f, се присвоява на p. След като мина през всичко<списка>намаляване на възвръщаемостта стр.
    Използвайки тази функция, можете например да изчислите сумата от елементите на списък: def func (червено, el): връщане на червено + el sum = намаляване (func,, 0) # сега сума == 15
    ламбда [<список параметров>] : <выражение> "анонимна" функция, която няма собствено име и е написана на мястото на нейното извикване. Приема параметрите, посочени в<списке параметров>и връща стойността<выражения>... Използва се за филтриране, намаляване, карта. Например: >>> отпечатай филтър (ламбда x: x> 3,) >>> отпечатай карта (ламбда x: x * 2,) >>> p = намали (lambda r, x: r * x,, 1) >>> отпечатайте стр. 24

    Импортиране на модули



    Стандартен математически модул


    променливи: пи, д.
    Функции(подобно на функциите на езика C):

    ако (x) пари (x) ldexp (x, y) sqrt (x)
    asin (x) опит (x) дневник (x) тен (x)
    атан (x) fabs (x) синх (x) frexp (x)
    atan2 (x, y) етаж (x) мощност (x, y) modf (x)
    таван (x) fmod (x, y) грях (x)
    cos (x) log10 (x) тан (x)

    Стринг модул


    Функции:

    Заключение


    Поради простотата и гъвкавостта на езика Python, той може да бъде препоръчан на потребители (математици, физици, икономисти и др.), които не са програмисти, но използват компютърни технологии и програмиране в своята работа.
    Програмите в Python се разработват средно един и половина до два (а понякога и два до три) пъти по-бързо, отколкото в компилираните езици (C, C ++, Pascal). Следователно езикът може да представлява немалък интерес за професионални програмисти, които разработват приложения, които не са критични за скоростта на изпълнение, както и програми, използващи сложни структури от данни. По-специално, Python се е доказал добре в разработването на програми за работа с графики и генериране на дървета.

    литература


    1. Бъд Т. Обектно-ориентирано програмиране. - SPb .: Петър, 1997.
    2. Гуидо ван Росъм... Урок за Python. (www.python.org)
    3. Крис Хофман... Кратка справка за Python. (www.python.org)
    4. Гуидо ван Росъм... Справочник за библиотеката на Python. (www.python.org)
    5. Гуидо ван Росъм... Референтно ръководство за Python. (www.python.org)
    6. Гуидо ван Росъм... Семинар за програмиране на Python. (http://sultan.da.ru)

    Python е широко използван език за програмиране на високо ниво, който е кръстен на известното британско комедийно телевизионно шоу „ Летящият цирк Монти Пайтън". Python е прост по структура, но невероятно гъвкав и мощен. Като се има предвид, че кодът на Python е лесен за четене и без да е прекалено строг в синтаксиса, мнозина го смятат за най-добрия въвеждащ език за програмиране.

    Python - описанието на езика, който е даден Foundation описва Python:

    Python е интерпретиран, интерактивен, обектно-ориентиран език за програмиране. Той включва модули, изключения, динамично въвеждане, динамични типове данни от високо ниво и класове. Python съчетава отлична производителност с лесен за разбиране синтаксис. Той реализира интерфейси към много системни извиквания и библиотеки, както и различни прозоречни системи и е разширяем с C и C ++. Python се използва като език за разширение за приложения, които изискват програмен интерфейс. И накрая, Python е междуплатформен език: работи на много версии на Unix, на Mac и на компютри, работещи с MS-DOS, Windows, Windows NT и OS / 2.

    Кой език за програмиране да научите първо?

    Можете да започнете да изучавате езика за програмиране Python. За да илюстрирате как Python се различава от другите въвеждащи езици, помислете за времето, когато сте били тийнейджър.

    Изучаване на програмиране с използвайки Pythonкато шофиране на родителски миниван. След като направите няколко обиколки на паркинга върху него, ще започнете да разбирате как да карате кола.

    Опитвам се да науча програмиране с C ( или дори асемблер) Това е като да се научиш да караш, като направиш миниван на родителите си. Ще останете в гаража с години, за да сглобявате части, и когато имате пълно разбиране за това как работи колата и сте в състояние да отстранявате и предсказвате бъдещи проблеми, ще изгорите, преди изобщо да шофирате.

    Предимства на Python

    Python за начинаещи е универсален. Можете да автоматизирате работните процеси, да създавате сайтове и настолни приложенияи игра с Python. Между другото, търсенето на разработчици на Python ( PostgreSQL, OOP, Flask, Django) нарасна драстично през последните няколко години в компании като Instagram, Reddit, Tumblr, YouTube и Pinterest.

    Език от високо ниво с общо предназначение

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

    Интерпретиран език

    Езикът за програмиране Python за начинаещи се интерпретира, което означава, че не е необходимо да знаете как да компилирате кода си. Тъй като няма стъпка за компилиране, производителността се подобрява и времето за редактиране, тестване и отстраняване на грешки е значително намалено. Просто изтеглете IDE ( IDE), напишете своя код и щракнете върху „Изпълни“ ( Бягай).

    Четимостта на кода е ключова

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

    Просто е забавно

    Не можете да кръстите език за програмиране на Монти Пайтън без чувство за хумор. Освен това е направено тестване, за да се сравни времето, необходимо за написване на прост скрипт различни езици (Python, Java, C, J, BASIC):

    ... Python отнема по-малко време, по-малко редове код и по-малко концепции, за да стигне до там... И на всичкото отгоре, програмирането на Python е забавно! Забавният и чест успех изгражда увереност и интерес у учениците, които са по-добре подготвени за по-нататъшно изучаване на езика Python.

    Превод на статията „Защо да уча Python? „Подготвено е от приятелския екип на проекта.

    Добро Лошо