Python, практиченпримери, информация за хоста

От теорията на езика да преминем към практиката – реални примери за работата на Python и бърз поглед върху неговите възможности.

практиченпримери

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

>>> образец = [1, ["друг", "списък"], ("а", "кортеж")] #Списъкът се състои от цяло число, друг списък и кортеж >>> mylist = ["Елемент от списък 1", 2, 3.14] #Този списък съдържа низ, цяло число и плаващо число >>> mylist[0] = "Отново списък 1" #Промяна на първия (нулев) елемент от списъка mylist >>> mylist[-1] = 3.14 #Промяна на последния елемент от списъка >>> mydict = #Създаване на речник с числови и цели индекси >>> mydict["pi"] = 3.15 #Промяна на записа в речника при индекс "pi". >>> mytuple = (1, 2, 3) #Задаване на кортеж >>> myfunction = len #Python ви позволява да декларирате синоними на функции по този начин >>> печат myfunction(list) 3

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

>>> mylist = ["Елемент от списък 1", 2, 3.14] >>> print mylist[:] #Четене на всички елементи от масива ['Списък елемент 1', 2, 3.1400000000000001] >>> print mylist[0:2] #Нулевият и първият елемент на масива се четат. ['Елемент от списък 1', 2] >>> print mylist[-3:-1] #Четене на елементи от нула (-3) до секунда (-1) (не е включено) ['Списък елемент 1', 2] >>> print mylist[1:] #Четене на елементи от първия до последния [2, 3.14]

>>>print "Име: %s\nНомер: %s\nНиз: %s" % (myclass.name, 3, 3 * "-") Име: Poromenos Номер: 3 Низ: ---

strString = """Този текст обхваща няколко реда"""

Изявления на PythonИзразитеwhile, if, forпредставляват изявленията за преместване. Няма аналог на оператораselect, така че самоifще трябва да бъде прескочен. Операторътforсравнява променлива и списък. За да получите списък от цифри до number , трябва да използвате функциятаrange( ). Например:

rangelist = range(10) #Вземете списък от десет цифри (от 0 до 9) >>> print rangelist [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] за число в rangelist: #Докато числото (което се увеличава с единица всеки път) е в списъка. # Проверете дали променливата # числа е в кортежа от числа (3, 4, 7, 9) ако числото е в (3, 4, 7, 9): #Ако променливата номер е в кортежа (3, 4, 7, 9). # операция"break" # излиза от цикъла във всеки момент break else: # "continue" "scrolls" # от цикъла. Тук това не се изисква, тъй като след тази # операция във всеки случай програмата се връща към обработката на цикъла continue else: # "else" не е задължително. Условието е изпълнено # ако цикълът не е прекъснат с "break". пас # Не правете нищо

if rangelist[1] == 2: print "Вторият елемент (списъците са базирани на 0) е 2" elif rangelist[1] == 3: print "Вторият елемент (списъците са базирани на 0) е 3" else: print "Не знам"

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

# Следното е еквивалентно на def f(x): return x + 1 functionvar = lambda x: x + 1 >>> print functionvar(1) 2

Класове на PythonPython е ограничен в множественото наследяване в класовете. Вътрешните променливи и методите на вътрешния клас започват с две долни черти:__(например:__myprivatedefault). Можете също да присвоите стойност на променлива на клас отвън, като това:

class Myclass: common = 10 def __init__(self): self.myvariable =3 def myfunction(self, arg1, arg2): return self.myvariable

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

# Следният клас наследява класа Myclass, # наследява неговите свойства и методи, освен това класът може # да бъде наследен от няколко класа, в този случай записът # е: class Otherclass(Myclass1, Myclass2, MyclassN) class Otherclass(Myclass): def __init__(self, arg1): sel f.myvariable = 3 print arg1

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

Изключения на PythonИзключенията имат структура try-except [exceptionname], например:

def somefunction(): try: # Делението на нула води до грешка 10 / 0 с изключение на ZeroDivisionError: # Но програмата не "извършва незаконна операция", # но обработва блока за изключение, съответстващ на грешката "ZeroDivisionError" print "Oops, invalid."

Импортиране в PythonВъншните библиотеки на Python могат да бъдат включени чрез процедуратаimport [libname], където[libname]е името на включената библиотека. Можете също така да използвате командатаfrom [libname] import [funcname], за да можете да използвате самостоятелната функция[funcname]от библиотеката[libname]. Пример:

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

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

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

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

myfile = file(r"C:\text.txt") >>> print myfile.read() 'Това е примерен низ' myfile.close()

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

Езикови функции на Python—Условията могат да се комбинират. 1>> lst1 = [1, 2, 3] >>> lst2 = [3, 4, 5] >>> печат [x * y за x в lst1 за y в lst2] [3, 4, 5, 6, 8, 10, 9, 12, 15] >>> печат [x за x в lst1 if 4 > x > 1] [2, 3] # Операторът "any" връща вярно, ако дори # едно от неговите условия е вярно >>> any(i % 3 for i in [3, 3, 4, 4, 3]) Вярно # Следната рутина брои # съвпадащи елемента в списъка >>> сума(1 за i в [3, 3, 4, 4, 3] ако i == 3) 3 >>> del lst1[0] >>> печат lst1 [2, 3] >>> дел lst1

def myfunc(): # Отпечатва 5 номер за печат

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

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

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

Също така си струва да се отбележи, че Python се използва активно в компании като вече споменатитеGoogle, NASA, Yandex, Apple, Института за космически телескопи (STSCI),DreamWorks Pictures. А корпорациятаAppleизползва Python и Twisted, за да разработи сървъра за календарiCal.

Оттук нататък ще преминем към Django, една от най-популярните рамки днес, написана директно на Python.