Python programmeringsspråk för nybörjare. Python programmeringsspråk för nybörjare


Sedan jag började undervisa i Python 2011 har jag hittat flera resurser som jag använder regelbundet. När jag först började lära mig språket blev jag förvånad över hur vänligt Python-gemenskapen visade sig vara. Beviset för detta är stor mängd gratis material av hög kvalitet. Nedan kommer jag att ge exempel på de resurser som helt enkelt inte skulle existera utan stöd från samhället.

1. Uppfinn dina egna datorspel med Python

Du kanske redan har din favoritbok i Python, men jag uppmuntrar dig att läsa den här. Du kan köpa den, läsa den online eller ladda ner den gratis som PDF. Jag gillar samma struktur i kapitlen: först ställs problemet, och sedan finns det exempel på att lösa problem med detaljerade förklaringar. Samma författare skrev ytterligare 3 underbara böcker.

2. Skulptur

Jag har arbetat i skolor där Python av en eller annan anledning (oftast av säkerhetsskäl) inte var tillgänglig. Skulpt kör Python-skript i webbläsaren och innehåller flera exempel. Den första använder Turtle-modulen för att skriva ut geometriska former. Jag använder det ofta för att testa elevernas kunskaper.

3. Gissa antalet

8.Slumpmässigt

Python har några användbara inbyggda funktioner som utskrift och inmatning . Slumpmodulen, å andra sidan, måste importeras innan den kan användas. Det låter eleverna lägga till lite oförutsägbarhet till sina projekt.

Importera slumpmässigt mynt = ['heads','tails'] flip = random.choice(coin) print(flip)

9 Anti Gravity

Jag använder sällan antigravitationsmodulen. Men när jag ska göra det här frågar jag eleverna vad som händer när de importerar det. Vanligtvis får jag många olika svar, ibland föreslår de till och med att den verkliga effekten av tyngdlöshet kommer att börja – de tycker att Python är så kraftfullt 🙂 Du kan prova själv och föreslå för dina elever.

importera antigravitation

10 Sabotage

Den största utmaningen för mig som lärare var att hitta syntaxfel på studentprogrammen. Lyckligtvis, innan jag helt brände ut av trötthet, kom jag på

Hur många programmeringsspråk finns det egentligen? Det finns flera dussin av dem. De är designade under olika uppgifter, för varje smak, storlek och färg. Varför valde jag just detta språk? Python kan utföra ett mycket brett utbud av uppgifter, allt från ett enkelt skript till att skapa hela webbplatser. Python för nybörjare är ganska enkelt, kortfattat och lätt att lära sig.

Från den här artikeln kommer du att lära dig:

Hej hej! Gridin Semyon är i kontakt. Äntligen kom jag till huvudämnet för den här bloggen, programmering intelligenta system använder Python-språket. Jag har förberett mig för detta länge. Och nu är jag redo att skriva till dig intressanta artiklar och studera detta ämne på djupet.

Varför behöver jag det? Till att börja med satte jag mig en sådan uppgift om utveckling, maskininlärning och datorseende.

Kanske om jag har tur, kommer jag att vara bland utvecklarna av komplexa robotprojekt, kanske blir jag arrangör själv och öppnar produktionen av personliga robotar, eller kanske... Om inget händer, och Gud välsigne honom, jag njut av processen, inte resultatet.

Då börjar jag min historia...

Funktioner i programmeringsspråket Python

Som jag skrev ovan presterar detta språk väldigt stor sfär funktioner. Det är helt enkelt omöjligt att täcka allt. Därför, innan du studerar, ställ dig själv frågan, varför behöver jag det? Vilka uppgifter kommer jag att lösa med detta språk? Om du svarade ja, gå vidare.

Hur kan Python vara användbart?

  1. Arbeta med xml/html-filer
  2. Arbeta med http-förfrågningar
  3. GUI (grafiskt användargränssnitt)
  4. Skapa webbskript
  5. Arbeta med FTP
  6. Arbeta med bilder, ljud och videofiler
  7. Robotik (tillämpning av enkortsdatorer)
  8. Programmering av matematiska och vetenskapliga beräkningar

Etc. Python kan utföra lejonparten av rutinuppgifter.

I Python kan du samla och säkerhetskopiering, och arbeta med e-postmeddelanden, och enkel miniräknare, och ett skript för webbplatsen. Språket är inte begränsat. Vad som är mest intressant, det används i sådana IT-jättar som Google och Yandex.

I den här artikeln tar vi dig genom Python-programmering från början.

För att ditt program ska fungera på specifik enhet, oavsett vilket operativsystem - windows, linux, RaspbianOS, MacOS. Det är viktigt att du har en tolk som förstår kommandon och utför dem.

Vi gör det enligt följande, ladda ner IDE python c officiell källa.

Att lära känna tolken

Så tolken bearbetar textkod program. Det finns ett interaktivt läge för utvecklingsmiljön. Det kan lanseras på flera sätt:

  1. Från en normal cmd-prompt, skriv kommandot python ;
  2. Från skrivbordet (genväg);
  3. Använda Start-menyn - Python IDLE;

Detta fönster öppnas för dig:

Skalet kan förresten även användas som en vanlig miniräknare. Jag ser den här programvaran som en möjlighet att frigöra den fulla potentialen hos enkortsdatorer.

Arduino har också sin egen skal. Läsa.

Var ska man starta lära sig python? Låt oss försöka skriva det första programmet?

Skapande av det första programmet

Program för Python språkär en vanlig textfil med skriven kod. Filtillägget är .py. Du kan köra programmet genom att ange lämpligt namn på kommandoraden. Låt oss skriva en enkel standardprogram Hej världen!

Uppgiften är att visa "Hej värld!" på skärmen. Starta NotePad.

Vi skriver följande kod:

Pytonorm

print("Hej världen!!!")

print("Hej världen!!!" )

Och spara i en mapp som respekterar sökvägen C:\MyScripts . Jag rekommenderar att alla projekt slängs i den här mappen.

För att vi ska kunna köra skriptet, välj kommandorad och ange sökvägen till din fil:

Om böcker. Faktum är att även om språket är enkelt när det gäller att skapa kod, finns det många nyanser och olika bibliotek för att implementera ett stort antal uppgifter.

Den bästa pythonboken för nybörjare är Mike McGraths handledning. Omfattande guide om att skriva kod i Python.

Ursäkta kvaliteten på bilden, annars fungerar det inte. Jag rekommenderar inte att köpa resten av böckerna ännu, eftersom de faktiskt är skrymmande och voluminösa. Till grunden räcker det med McGrath.

Killar, det var allt för mig, om ni har några frågor kan ni alltid skriva till mig. Prenumerera på bloggnyheter. Skicka till vänner. Tack för din uppmärksamhet.

Med vänlig hälsning, Gridin Semyon

(Översättning)

En artikel publicerades på Poromenos "Stuff-webbplatsen, där de i kortfattad form pratar om grunderna i Python-språket. Jag erbjuder dig en översättning av den här artikeln. Översättningen är inte bokstavlig. Jag försökte förklara mer beskriv några punkter som kanske inte är tydliga.

Om du funderar på att lära dig Python, men inte kan hitta en lämplig handledning, kommer den här artikeln att vara till stor hjälp för dig! På kort tid kommer du att kunna bekanta dig med grunderna i Python-språket. Även om den här artikeln ofta förlitar sig på det faktum att du redan har programmeringserfarenhet, men jag hoppas att även nybörjare kommer att finna detta material användbart. Läs varje stycke noggrant. På grund av materialets koncisitet övervägs vissa ämnen ytligt, men innehåller allt nödvändigt material.

Grundläggande egenskaper

Python kräver inte explicit deklaration av variabler, är ett skiftlägeskänsligt (variabel var motsvarar inte Var eller VAR är tre olika variabler) objektorienterat språk.

Syntax

Först är det värt att notera en intressant egenskap hos Python. Den innehåller inte operatorparenteser (börjar..slutar på pascal eller (..) på C), istället blocken är indragna: mellanslag eller tabbar, och inmatningen i satsblocket utförs av ett kolon. Enradiga kommentarer börjar med pundtecknet "#", flerradskommentarer börjar och slutar med tre dubbla citattecken «"""».

För att tilldela ett värde till en variabel används tecknet "=", och för jämförelse - "==". För att öka värdet på en variabel, eller lägga till en sträng, används operatorn "+=" och för att minska - "-=". Alla dessa operationer kan interagera med de flesta typer, inklusive strängar. Till exempel

>>>myvar=3

>>> myvar += 2

>>> myvar -= 1

"""Detta är en kommentar med flera rader

Strängar omslutna av tre citattecken ignoreras"""

>>> mystring = "Hej"

>>> mystring += "värld."

>>> skriv ut mystring

Hej världen.

# Nästa radändringar

Värden av variabler på platser. (Bara en rad!)

>>> myvar, mystring = mystring, myvar

Data struktur

Python innehåller datastrukturer som t.ex listor (listor), tupler (tupler) och ordböcker (ordböcker). Listor liknar endimensionella arrayer (men du kan använda en List som innehåller listor - en flerdimensionell array), tupler är oföränderliga listor, ordböcker är också listor, men index kan vara av vilken typ som helst, inte bara numeriska. "Arrayer" i Python kan innehålla data av vilken typ som helst, det vill säga en array kan innehålla numeriska, strängar och andra typer av data. Matriser börjar vid index 0 och det sista elementet kan nås vid index -1 Du kan tilldela funktionsvariabler och använda dem därefter.

>>> sample = , ("a", "tuple")] #En lista består av ett heltal, en annan lista och en tupel

>>> mylist = ["Listobjekt 1", 2, 3.14] #Denna lista innehåller en sträng, ett heltal och ett bråktal

>>> mylist = "Lista objekt 1 igen" #Ändra det första (noll) elementet i listans mylist

>>> mylist[-1] = 3.14 #Ändra det sista elementet i listan

>>> mydict = ("Key 1": "Värde 1", 2: 3, "pi": 3.14) #Skapa en ordbok med numeriska och heltalsindex

>>> mydict["pi"] = 3.15 #Ändra ordboksposten vid index "pi".

>>> mytuple = (1, 2, 3) #Ställ in tupeln

>>> myfunction = len #Python låter dig deklarera funktionssynonymer på detta sätt

>>> print myfunction(mylist)

Du kan använda en del av en array genom att ange det första och sista indexet åtskilda av ett kolon ":". I det här fallet får du en del av arrayen, från det första indexet till det andra, inklusive. Om det första elementet inte är specificerat börjar räkningen från början av arrayen, och om det sista elementet inte är specificerat läses arrayen upp till det sista elementet. Negativa värden bestämmer elementets position från slutet. Till exempel:

>>> mylist = ["Listobjekt 1", 2, 3.14]

>>> skriv ut min lista[:] #Läs alla arrayelement

["Listapost 1", 2, 3.14000000000000001]

>>> skriv ut min lista #Läs nollan och det första elementet i arrayen.

["Lista objekt 1", 2]

>>> skriv ut min lista[-3:-1] #Läselement från noll (-3) till sekund (-1) (ingår ej)

["Lista objekt 1", 2]

>>> skriv ut min lista #Läsa element från första till sista

Strängar

Strängar i Python åtskilda av dubbla citattecken """ eller enkla citattecken """. Enstaka citattecken kan finnas i dubbla citattecken eller vice versa. Till exempel raden "Han sa "hej"!" kommer att visas som "Han sa hej!". Om du behöver använda en sträng med flera rader, måste denna sträng börja och sluta med tre dubbla citattecken """". Du kan ersätta element från en tuppel eller ordbok i strängmallen. Procenttecknet "%" mellan strängen och tuppeln ersätter tecknen i strängen "%s" per element i en tuppel. Ordböcker låter dig infoga ett element vid ett givet index i en sträng. För att göra detta, använd konstruktionen "%(index)s" i I det här fallet, istället för "%(index)s" kommer värdet på ordboken under det givna indexet att ersättas med index.

>>>skriv ut "Namn: %s\nNummer: %s\nSträng: %s" % (minklass.namn, 3, 3 * "-")

Namn: Poromenos

Nummer 3

sträng: ---

strString = """Denna text finns

på flera rader

>>> print "Detta %(verb) är ett %(substantiv)s." %("substantiv": "test", "verb": "är")

Detta är ett prov.

Operatörer

While, if , för uttalanden utgör flyttsatserna. Det finns ingen analog här välj uttalande, så du måste kringgå if . For-satsen jämför variabel och lista. För att få en lista med siffror före ett nummer - använd intervallet ( ). Här är ett exempel med operatorer

rangelist = range(10) #Få en lista med tio siffror (från 0 till 9)

>>> skriv ut intervalllista

för nummer i intervalllistan: #Så länge variabelnumret (som ökar med en varje gång) finns i listan...

# Kontrollera om variabeln ingår

# siffror i en tupel av siffror (3, 4, 7, 9)

Om nummer i (3, 4, 7, 9): #Om nummer är i (3, 4, 7, 9)...

# Operationen "paus" ger

# lämna slingan när som helst

Ha sönder

annan:

# "fortsätt" "rullar"

# slinga. Detta krävs inte här, eftersom efter denna operation

# i alla fall går programmet tillbaka till att bearbeta slingan

Fortsätta

annan:

# "annat" är valfritt. Villkor uppfyllt

# om inte slingan bröts med "break".

Godkänt # Gör ingenting

om intervalllista == 2:

Skriv ut "Det andra objektet (listorna är 0-baserade) är 2"

elif rangelist == 3:

Skriv ut "Det andra objektet (listorna är 0-baserade) är 3"

annan:

Skriv ut "Vet inte"

medan intervalllista == 1:

Passera

Funktioner

Används för att deklarera en funktion nyckelord "def". Funktionsargument anges inom parentes efter funktionsnamnet. Kan ställas in valfria argument, vilket ger dem ett standardvärde. Funktioner kan returnera tupler, i vilket fall returvärden måste separeras med kommatecken. Nyckelordet lambda används för att deklarera elementära funktioner.

# arg2 och arg3 är valfria argument, de tar det värde som deklarerats som standard,

# om du inte ger dem ett annat värde när du anropar funktionen.

def myfunction(arg1, arg2 = 100, arg3 = "test"):

Returnera arg3, arg2, arg1

#Funktionen anropas med värdet av det första argumentet - "Argument 1", det andra - som standard och det tredje - "Namnlagt argument".

>>>ret1, ret2, ret3 = myfunction("Argument 1", arg3 = "Namnlagt argument")

# ret1, ret2 och ret3 tar värdena "Named argument", 100, "Argument 1" respektive

>>> skriv ut ret1, ret2, ret3

Namngivna argument 100 Argument 1

# Följande motsvarar def f(x): return x + 1

funktionsvar = lambda x: x + 1

>>> print functionvar(1)

Klasser

Python-språket är begränsat i multipla arv i klasser. Interna variabler och interna klassmetoder börjar med två tecken understryka"__" (t.ex. "__myprivatevar"). Vi kan också tilldela ett värde klassvariabel från utsidan. Exempel:

klassMin klass:

Vanligt = 10

Def __init__(själv):

Self.myvariable = 3

Def myfunction(self, arg1, arg2):

Returnera self.myvariable

# Här förklarade vi klassen Myclass. Funktionen __init__ anropas automatiskt när klasser initieras.

>>> classinstance = Myclass() # Vi har initierat klassen och myvariable är satt till 3 som deklarerats i initialiseringsmetoden

>>> classinstance.myfunction(1, 2) #Method myfunction of class Myclass returnerar värdet av variabeln myvariable

# Den gemensamma variabeln deklareras i alla klasser

>>> classinstance2 = Myclass()

>>> classinstance.common

>>> classinstance2.common

# Därför, om vi ändrar dess värde i klassen kommer Myclass att ändras

# och dess värden i objekt initierade av klassen Myclass

>>>Myclass.common = 30

>>> classinstance.common

>>> classinstance2.common

# Här ändrar vi inte klassvariabeln. Istället för det här

# vi deklarerar det i objektet och tilldelar det ett nytt värde

>>> classinstance.common = 10

>>> classinstance.common

>>> classinstance2.common

>>>Myclass.common = 50

# Att ändra klassvariabeln kommer inte att påverka

# variabla objekt av denna klass

>>> classinstance.common

>>> classinstance2.common

# Följande klass är en underklass till Myclass

# ärver dess egenskaper och metoder, vem klassen än kan

# ärvs från flera klasser, i detta fall posten

# så här: class Otherclass(Myclass1, Myclass2, MyclassN)

klass Annanklass(Min klass):

Def __init__(själv, arg1):

Self.myvariable = 3

Skriv ut arg1

>>> classinstance = Otherclass("hej")

Hallå

>>> classinstance.myfunction(1, 2)

# Den här klassen har inte testegenskapen, men vi kan

# deklarera en sådan variabel för objektet. Och

# denna variabel kommer bara att vara medlem i klassinstansen.

>>> classinstance.test = 10

>>>classinstance.test

Undantag

Undantag i Python har en try-except-struktur:

defsomefunction():

Prova:

# Division med noll ger upphov till ett fel

10 / 0

Förutom ZeroDivisionError:

# Men programmet "Utför en olaglig operation"

# A hanterar undantagsblocket som motsvarar felet "ZeroDivisionError".

Skriv ut "Hoppsan, ogiltig."

>>> fnexcept()

Hoppsan, ogiltig.

Importera

Externa bibliotek kan inkluderas med hjälp av importproceduren, där är namnet på det inkluderade biblioteket. Du kan också använda kommandot "från import" så att du kan använda funktionen från biblioteket:

importera slumpmässigt #Importera det "slumpmässiga" biblioteket

från tid import klocka #Och samtidigt "klocka" funktionen från "tid" biblioteket

randomint = random.randint(1, 100)

>>> skriv ut slumpmässigt

Arbeta med filsystemet

Python har många inbyggda bibliotek. I det här exemplet kommer vi att försöka lagra en liststruktur i en binär fil, läsa den och lagra strängen i textfil. För att transformera datastrukturen kommer vi att använda standardbiblioteket "pickle":

importera saltgurka

mylist = ["Detta", "är", 4, 13327]

# Öppna filen C:\binary.dat för att skriva. Symbol "r"

# förhindrar att specialtecken ersätts (som \n, \t, \b, etc.).

minfil = fil(r"C:\binär.dat", "w")

pickle.dump(mylist, myfile)

myfile.close()

minfil = fil(r"C:\text.txt", "w")

myfile.write("Detta är en exempelsträng")

myfile.close()

minfil = fil(r"C:\text.txt")

>>> skriv ut minfil.läs()

"Detta är en exempelsträng"

myfile.close()

# Öppna filen för läsning

minfil = fil(r"C:\binär.dat")

loadedlist = pickle.load(minfil)

myfile.close()

>>>skriv ut laddad lista

["Detta", "är", 4, 13327]

Egenheter

  • Villkor kan kombineras. 1 < a < 3 выполняется тогда, когда а больше 1, но меньше 3.
  • Använd "del"-operationen för att rensa variabler eller arrayelement.
  • Python erbjuder stora möjligheter för arbeta med listor. Du kan använda liststrukturdeklarationer. For-satsen låter dig ställa in elementen i listan i en viss sekvens, och if - låter dig välja element efter villkor.

>>> lst1 =

>>> lst2=

>>> skriva ut

>>> skriva ut

# Operatören "valfri" returnerar sant om trots

# om något av villkoren som ingår i det är uppfyllt.

>>> någon(i % 3 för i in )

Sann

# Följande procedur räknar antalet

# matchande objekt i listan

>>> summa(1 för i i om i == 3)

>>> del lst1

>>> skriv ut lst1

>>> del lst1

  • Globala variabler deklareras utanför funktioner och kan läsas utan några deklarationer. Men om du behöver ändra värdet på en global variabel från en funktion, måste du deklarera det i början av funktionen nyckelord"global", om du inte gör det, kommer Python att deklarera en variabel som endast är tillgänglig för den funktionen.

nummer = 5

def myfunc():

# Utgångar 5

trycknummer

definiera anotherfunc():

# Detta ger ett undantag eftersom den globala en variabel

# anropades inte från en funktion. Python skapar i det här fallet

# variabel med samma namn i den här funktionen och tillgänglig

# endast för operatörer av denna funktion.

trycknummer

Antal = 3

def yetanotherfunc():

globalt nummer

# Och endast från denna funktion ändras variabelns värde.

Antal = 3

Epilog

Naturligtvis täcker den här artikeln inte alla funktioner i Python. Jag hoppas att den här artikeln kommer att hjälpa dig om du vill fortsätta lära dig detta programmeringsspråk.

Fördelar med Python

  • Exekveringshastigheten för program skrivna i Python är mycket hög. Detta beror på att de viktigaste Python-biblioteken
    är skrivna i C++ och uppgifter tar mindre tid att slutföra än på andra högnivåspråk.
  • I detta avseende kan du skriva dina egna moduler för Python i C eller C++
  • I Python-standardbiblioteken kan du hitta verktyg att arbeta med e-post, protokoll
    Internet, FTP, HTTP, databaser, etc.
  • Skript skrivna med Python körs på de flesta moderna operativsystem. Denna portabilitet gör att Python kan användas i en mängd olika applikationer.
  • Python är lämplig för alla programmeringslösningar, oavsett om kontorsprogram, webbapplikationer, GUI-applikationer, etc.
  • Tusentals entusiaster från hela världen arbetade med utvecklingen av Python. Stöd modern teknik i standardbiblioteken kan vi vara tacksamma till själva det faktum att Python var öppet för allmänheten.

Introduktion


På grund av den för närvarande observerade snabb utveckling persondatorer sker en gradvis förändring av kraven på programmeringsspråk. Tolkade språk börjar spela en allt viktigare roll som den ökande makten personliga datorer börjar ge tillräcklig hastighet för exekvering av tolkade program. Och den enda betydande fördelen med kompilerade programmeringsspråk är höghastighetskoden de skapar. När programexekveringshastigheten inte är kritisk, den mest det rätta valet det kommer att finnas ett tolkat språk, som ett enklare och mer flexibelt programmeringsverktyg.

I detta avseende är det av särskilt intresse att överväga det relativt nya programmeringsspråket Python (python), som skapades av dess författare Guido van Rossum i början av 90-talet.

Allmän information om Python. Fördelar och nackdelar


Python är ett tolkat, inbyggt objektorienterat programmeringsspråk. Det är extremt enkelt och innehåller ett litet antal nyckelord, men ändå väldigt flexibelt och uttrycksfullt. Det är ett språk på högre nivå än Pascal, C++ och, naturligtvis, C, vilket uppnås främst på grund av inbyggda datastrukturer på hög nivå (listor, ordböcker, tupler).

Fördelar med språket.
Den otvivelaktiga fördelen är att Python-tolken är implementerad på nästan alla plattformar och operativsystem. Det första språket var C, men dess datatyper kunde ta upp olika mängder minne på olika maskiner, och detta fungerade som ett hinder för att skriva ett riktigt bärbart program. Python har inte denna nackdel.

Nästa viktiga drag är språkets töjbarhet, vilket är av stor betydelse, och som författaren själv skriver, var språket tänkt just som töjbart. Detta innebär att det finns utrymme för förbättring av språket av alla intresserade programmerare. Tolken är skriven i C och källa tillgänglig för all manipulation. Om det behövs kan du infoga det i ditt program och använda det som ett inbyggt skal. Eller genom att skriva dina tillägg till Python i C och kompilera programmet får du en "utökad" tolk med nya funktioner.

Nästa fördel är närvaron ett stort antal moduler anslutna till programmet, tillhandahåller olika ytterligare egenskaper. Sådana moduler är skrivna i C och i själva Python och kan utvecklas av alla tillräckligt skickliga programmerare. Följande moduler är exempel:

  • Numerisk Python - avancerade matematiska funktioner som manipulationer med heltalsvektorer och matriser;
  • Tkinter - bygger applikationer med ett grafiskt användargränssnitt (GUI) baserat på det mycket använda Tk-gränssnittet på X-Windows;
  • OpenGL - använder ett omfattande bibliotek grafisk modellering 2D- och 3D-objekt Öppna Graphics Library från Silicon Graphics Inc. Denna standard stöds bland annat i sådana vanliga operativsystem som Microsoft Windows 95 OSR 2, 98 och Windows NT 4.0.
Språkbrister.
Den enda nackdelen som författaren noterat är den relativt låga körhastigheten för Python-programmet, vilket beror på dess tolkningsbarhet. Men enligt vår uppfattning betalas detta mer än väl ut av språkets fördelar när man skriver program som inte är särskilt kritiska för exekveringshastigheten.

Funktionsöversikt


1. Python, till skillnad från många språk (Pascal, C++, Java, etc.), kräver inga variabeldeklarationer. De skapas på platsen för deras initiering, dvs. första gången en variabel tilldelas ett värde. Detta innebär att typen av variabel bestäms av typen av det tilldelade värdet. I detta avseende påminner Python om Basic.
Variabeltypen är inte oföränderlig. Varje tilldelning till den är korrekt, och detta leder bara till att typen av variabel blir typen av det nya tilldelade värdet.

2. På sådana språk som Pascal, C, C++ uppvisade organisationen av listor vissa svårigheter. För att implementera dem var man tvungen att studera väl principerna för att arbeta med pekare och dynamiskt minne. Och även med en bra kvalifikation kan en programmerare, varje gång omimplementera mekanismerna för att skapa, arbeta och förstöra listor, lätt göra subtila misstag. Med tanke på detta skapades några verktyg för att arbeta med listor. Till exempel har Delphi Pascal en TList-klass som implementerar listor; STL (Standard Template Library) har utvecklats för C++ och innehåller sådana strukturer som vektorer, listor, uppsättningar, ordböcker, stackar och köer. Sådana faciliteter är dock inte tillgängliga på alla språk och deras implementeringar.

En av utmärkande egenskaper Python är närvaron av sådana strukturer inbyggda i själva språket som tupler(tuppel) listor(lista) och ordböcker(ordbok), som ibland kallas kort(Karta). Låt oss överväga dem mer i detalj.

  1. Tuple . Den påminner lite om en array: den består av element och har en strikt definierad längd. Element kan vara vilket värde som helst - enkla konstanter eller objekt. Till skillnad från en array är elementen i en tupel inte nödvändigtvis homogena. Och det som skiljer en tuppel från en lista är att tuppeln inte kan modifieras, d.v.s. vi kan inte tilldela något nytt till det i-te tupelelementet och vi kan inte lägga till nya element. Således kan en tupel kallas en listkonstant. Syntaktiskt specificeras en tupel genom kommaseparerad lista över alla element, alla omgivna inom parentes:

  2. (1, 2, 5, 8)
    (3.14, 'sträng', -4)
    Alla element indexeras från början. För att få det i-te elementet måste du ange namnet på tupeln och sedan indexet i in hakparentes. Exempel:
    t = (0, 1, 2, 3, 4)
    skriv ut t, t[-1], t[-3]
    Resultat: 0 4 2
    Således skulle en tupel kunna kallas en konstant vektor om dess element alltid var homogena.
  3. Lista . Ett bra, speciellt exempel på en lista är en Turbo Pascal-sträng. Elementen i en sträng är enstaka tecken, dess längd är inte fast, det är möjligt att ta bort element eller tvärtom infoga dem var som helst i strängen. Elementen i listan kan vara godtyckliga objekt, inte nödvändigtvis av samma typ. För att skapa en lista räcker det att lista dess element separerade med kommatecken, och omge allt detta inom hakparenteser:


  4. ['sträng', (0,1,8), ]
    Till skillnad från en tuppel kan listor ändras efter behag. Element nås på samma sätt som i tupler. Exempel:
    l = ]
    skriv ut l, l, l[-2], l[-1]
    Resultat: 1 s (2,8) 0
  5. Ordförråd . Påminner om typposten (rekord) i Pascal eller strukturer (struktur) i C. Men istället för schemat "postfält" - "värde" används här "nyckel" - "värde". En ordbok är en uppsättning "nyckel"-"värde"-par. Här är "nyckeln" en konstant av vilken typ som helst (men strängar används huvudsakligen), den tjänar till att namnge (indexera) något värde som motsvarar den (som kan ändras).

  6. En ordbok skapas genom att lista dess element (kolonseparerade nyckel-värdepar), separerade med kommatecken och omsluta det hela med klammerparenteser. För att få tillgång till ett visst värde är det nödvändigt att skriva motsvarande nyckel inom hakparenteser efter ordboksnamnet. Exempel:
    d = ("a": 1, "b": 3, 5: 3,14, "namn": "John")
    d["b"] = d
    skriv ut d["a"], d["b"], d, d["namn"]
    Resultat: 1 3,14 3,14 John
    För att lägga till ett nytt "nyckel"-"värde"-par räcker det att tilldela motsvarande värde till elementet med den nya nyckeln:
    d["new"] = "nytt värde"
    tryck d
    Resultat: ("a":1, "b":3, 5:3.14, "name":"John", "new":"nytt värde")

3. Till skillnad från Pascal, C, C++ stöder Python inte pekare, dynamiskt minne och adressaritmetik. I detta liknar det Java. Som du vet är pekare en källa till subtila fel och att arbeta med dem är mer relaterat till programmering på en låg nivå. För större tillförlitlighet och enkelhet har de inte inkluderats i Python.

4. En av funktioner i Pythonär hur en variabel tilldelas en annan, dvs. när på vardera sidan av operatören" = " är variabler.

Efter Timothy Budd (), kommer vi att ringa pekare semantik fallet då uppdraget endast leder till tilldelning av en referens (pekare), d.v.s. den nya variabeln blir bara ett annat namn som anger samma minnesplats som den gamla variabeln. I det här fallet kommer en förändring av värdet som anges av den nya variabeln att leda till en förändring av värdet på den gamla, eftersom de betyder faktiskt samma sak.

När tilldelningen leder till skapandet av ett nytt objekt (här ett objekt i betydelsen ett minne för att lagra ett värde av någon typ) och kopiering av innehållet i den tilldelade variabeln till det, kommer vi att kalla detta fall kopiera semantik. Således, om kopieringssemantik är i kraft, kommer variablerna på vardera sidan av "="-tecknet att betyda två oberoende objekt med samma innehåll. Och här kommer en efterföljande förändring av en variabel inte att påverka den andra på något sätt.

Tilldelning i Python fungerar så här: if hänförlig objektet är en instans av sådana typer som siffror eller strängar, då gäller kopieringsemantik, men om den högra sidan är en instans av en klass, lista, ordbok eller tupel, så gäller pekarsemantik. Exempel:
a = 2; b = a; b = 3
skriv ut " kopiera semantik: a=", a, "b=", b
a = ; b = a; b = 3
skriv ut "pekaresemantik: a=", a, "b=", b
Resultat:
kopia semantik: a= 2 b= 3
pekare semantik: a= b=

För er som vill veta vad det handlar om ger jag er en annan inställning till uppdrag i Python. Om vi ​​på sådana språk som Basic, Pascal, C / C ++ hanterade "kapacitets"-variabler och konstanter lagrade i dem (numeriska, tecken, sträng - det spelar ingen roll), och tilldelningsoperationen innebar att "skriva in" konstant till den tilldelade variabeln , då måste vi redan i Python arbeta med variabel-"namn" och objekten som namnges av dem. (Notera någon analogi med Prologspråk?) Vad är ett objekt i Python? Det här är allt som kan ges ett namn: siffror, strängar, listor, ordböcker, klassinstanser (som kallas objekt i Object Pascal), själva klasserna (!), funktioner, moduler osv. Så när man tilldelar ett objekt till en variabel, blir variabeln dess "namn", och objektet kan ha hur många sådana "namn" som helst och de är alla inte beroende av varandra.

Nu är objekt indelade i modifierbara (föränderliga) och oföränderliga. Föränderliga - de som kan ändra sitt "interna innehåll", till exempel listor, ordböcker, klassinstanser. Och oföränderliga sådana - som siffror, tupler, strängar (ja, strängar också; du kan tilldela en variabel en ny sträng som erhålls från den gamla, men du kan inte modifiera den gamla strängen själv).

Så om vi skriver a = ; b = a; b = 3 tolkar Python detta som:

  • ge objektet en "lista" " namn a ;
  • ge detta objekt ett annat namn - b ;
  • ändra null-elementet för objektet.

  • Det är pekarnas "pseudo" semantik.

    Och det sista att säga om detta: även om det inte är möjligt att ändra strukturen på tupeln, är de föränderliga komponenterna i den fortfarande tillgängliga för modifiering:

    T = (1, 2, , "sträng") t = 6 # inte tillåtet del t # också ett fel t = 0 # giltigt, nu är den tredje komponenten en lista t = "S" # fel: strängar är inte föränderliga

    5. Ganska originellt är sättet som operatorer är grupperade i Python. Pascal använder parenteser för detta. början-slut, i C, C++, Java - lockiga klammerparenteser (), i Basic, används slutändelser av språkkonstruktioner (NEXT, WEND, END IF, END SUB).
    I Python-språket är allt mycket enklare: valet av ett block med uttalanden görs genom att flytta den valda gruppen med ett eller flera mellanslag eller tabbtecken till höger i förhållande till rubriken på strukturen som detta block kommer att hänvisa till. Till exempel:

    om x > 0: skriv ut ' x > 0 ' x = x - 8 annars: skriv ut ' x<= 0 ’ x = 0 Således förvärvas en bra stil för skrivprogram, som efterfrågas av lärare i Pascal, C ++, Java, etc., här från första början, eftersom det helt enkelt inte fungerar annorlunda.

    Beskrivning av språket. Kontrollstrukturer



    Hantering av undantag


    Prova:
    <оператор1>
    [bortsett från[<исключение> [, <переменная>] ]:
    <оператор2>]
    [annan <оператор3>]
    Genomförde<оператор1>om ett undantag inträffar<исключение>, då<оператор2>. Om<исключение>har ett värde, tilldelas det<переменной>.
    Vid framgångsrikt slutförande<оператора1>, genomförde<оператор3>.
    Prova:
    <оператор1>
    till sist:
    <оператор2>
    Genomförde<оператор1>. Om inga undantag kastades, då<оператор2>. Annat,<оператор2>och ett undantag kastas omedelbart.
    höja <исключение> [<значение>] Kastar ett undantag<исключение>med parameter<значение>.

    Undantag är bara strängar. Exempel:

    My_ex = 'dåligt index' försök: om dåligt: ​​höj mitt_ex, dåligt utom mitt_ex, värde: skriv ut ' Error ', värde

    Funktionsdeklaration



    Klassdeklaration



    Klass 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 = " sträng nu" obj.printVal () !} Resultat:
    värde = 3,14
    värde = sträng nu

    Operatorer för alla typer av sekvenser (listor, tupler, strängar)


    Operatörer för listor (lista)


    s[i] = x Det i:te elementet i s ersätts med x.
    s = t en del av elementen i s från i till j-1 ersätts med t (t kan också vara en lista).
    del s tar bort s-delen (samma som s = ).
    s.append(x) lägger till element x i slutet av s.
    s.count(x) returnerar antalet element i s lika med x.
    s.index(x) returnerar det minsta i:et så att s[i]==x.
    s.insert(i,j) delen av s, som börjar vid det i:te elementet, förskjuts åt höger och s[i] tilldelas x.
    s.remove(x) samma som del s[ s.index(x) ] - tar bort det första elementet i s lika med x.
    s.reverse() skriver strängen i omvänd ordning
    sortera() sorterar listan i stigande ordning.

    Operatörer för ordböcker


    Arkivera objekt


    Skapad av inbyggd funktion öppet()(se beskrivning nedan). Till exempel: f = open('mydan.dat','r').
    Metoder:

    Andra språkelement och inbyggda funktioner


    = uppdrag.
    skriva ut [ < c1 > [, < c2 >]* [, ] ] matar ut värden< c1 >, < c2 >till standardutgång. Sätter ett mellanslag mellan argument. Om det inte finns något kommatecken i slutet av listan med argument, hoppar den till en ny rad.
    abs(x) returnerar absolutvärde x.
    tillämpa( f , <аргументы>) anropar funktion (eller metod) f med< аргументами >.
    chr(i) returnerar en enstaka teckensträng med ASCII-kod i.
    cmp(x, y) returnerar ett negativt, noll eller positivt värde om x<, ==, или >än y.
    divmod(a,b) returnerar en tupel (a/b, a%b), där a/b är en div b (heltalsdelen av divisionsresultatet), a%b är en mod b (återstoden av divisionen).
    eval(er)
    returnerar objektet som anges i s som en sträng. S kan innehålla vilken språkstruktur som helst. S kan också vara ett kodobjekt, till exempel: x = 1 ; incr_x = eval("x+1") .
    flyta(x) returnerar ett reellt värde lika med talet x.
    hex(x) returnerar en sträng som innehåller den hexadecimala representationen av talet x.
    inmatning(<строка>) visas<строку>, läser och returnerar ett värde från standardinmatning.
    int(x) returnerar heltalsvärdet för x.
    lins) returnerar objektets längd (antal element).
    lång (x) returnerar ett värde av typen långt heltal x.
    max(ar), min(er) returnera den största och minsta av elementen i en sekvens s (dvs. s är en sträng, lista eller tupel).
    okt(x) returnerar en sträng som innehåller en representation av talet x.
    öppet(<имя файла>, <режим>='r' ) returnerar filobjekt, öppen för läsning.<режим>= 'w' - öppen för skrivning.
    ord(c) returnerar ASCII-teckenkod (sträng med längd 1) c.
    pow (x, y) returnerar x till potensen av y.
    intervall (<начало>, <конец>, <шаг>) returnerar en lista med heltal större än eller lika<начало>och mindre än<конец>genereras med en given<шагом>.
    rå_ingång( [ <текст> ] ) visas<текст>till standardutgång och läser en sträng från standardinmatning.
    rund (x, n=0) returnerar ett riktigt x avrundat till n:e decimalen.
    str (<объект>) returnerar en strängrepresentation<объекта>.
    typ(<объект>) returnerar typen av objekt.
    Till exempel: om typ(x) == typ(''): skriv ut ' detta är en sträng '
    xrange (<начало>, <конец>, <шаг>) liknar intervall, men simulerar bara en lista utan att skapa en. Används i en for-loop.

    Specialfunktioner för att arbeta med listor


    filtrera(<функция>, <список>) returnerar en lista över dessa element<спиcка>, för vilka<функция>tar värdet "true".
    Karta(<функция>, <список>) gäller<функцию>till varje element<списка>och returnerar en lista med resultat.
    minska( f , <список>,
    [, <начальное значение> ] )
    returnerar värdet som erhållits genom att "minska"<списка>funktion f. Det betyder att det finns någon intern variabel p, som initieras<начальным значением>, sedan för varje element<списка>, funktionen f anropas med två parametrar: p och elementet<списка>. Resultatet som returneras av f tilldelas p. Efter att ha itererat över allt<списка>minska avkastningen sid.
    Med den här funktionen kan du till exempel beräkna summan av elementen i en lista: def func (röd, el): returnera röd+el summa = reducera (func, , 0) # nu summa == 15
    lambda [<список параметров>] : <выражение> En "anonym" funktion som inte har ett eget namn och skrivs på platsen för anropet. Accepterar parametrarna som anges i<списке параметров>, och returnerar ett värde<выражения>. Används för att filtrera, reducera, kartlägga. Till exempel: >>>skriv ut filter (lambda x: x>3, ) >>>skriv ut karta (lambda x: x*2, ) >>>p=reducera (lambda r, x: r*x, , 1) >>> skriv ut sid 24

    Importera moduler



    Standard matematikmodul


    Variabler: pi, e.
    Funktioner(liknar C-språkfunktioner):

    acos(x) kontanter (x) ldexp(x,y) sqrt(x)
    asin(x) exp(x) log(x) brun(x)
    atan(x) fabs (x) sinh(x) frexp(x)
    atan2(x,y) golv(x) pow(x,y) modf(x)
    tak (x) fmod(x,y) sin(x)
    cos(x) log10(x) tanh(x)

    strängmodul


    Funktioner:

    Slutsats


    På grund av Python-språkets enkelhet och flexibilitet kan det rekommenderas till användare (matematiker, fysiker, ekonomer, etc.) som inte är programmerare, utan använder datateknik och programmering på jobbet.
    Program i Python utvecklas i genomsnitt en och en halv till två (och ibland två till tre) gånger snabbare än i kompilerade språk (C, C ++, Pascal). Därför kan språket vara av inte litet intresse för professionella programmerare som utvecklar applikationer som inte är kritiska för körhastigheten, samt program som använder komplexa datastrukturer. I synnerhet har Python visat sig väl i utvecklingen av program för att arbeta med grafer, generera träd.

    Litteratur


    1. Budd T. Objektorienterad programmering. - St. Petersburg: Peter, 1997.
    2. Guido van Rossum. Python handledning. (www.python.org)
    3. Chris Hoffman. En snabbreferens för Python. (www.python.org)
    4. Guido van Rossum. Python Library Reference. (www.python.org)
    5. Guido van Rossum. Python referensmanual. (www.python.org)
    6. Guido van Rossum. Workshop om programmering i Python. (http://sultan.da.ru)

    En steg-för-steg-guide för alla som vill lära sig Python-programmering (eller programmering i allmänhet) men inte vet var de ska ta första steget.

    Vad ska man göra?

    Vi har gått igenom många tutorials och bara bra artiklar och gjorde en lista över vad du behöver lära dig för att behärska detta programmeringsspråk och utvecklas i det.

    1. Lär dig grunderna först. Lär dig vad som är variabler, kontrollstrukturer, datastrukturer. Denna kunskap är nödvändig utan att vara bunden till ett specifikt språk.

    2. Ta upp litteraturstudiet. Börja med klassikern - Dyk in i Python. Den här boken kan bli en skrivbordsbok. Du kan också läsa Michael Dawson "Programming in Python" och Alexey Vasiliev "Python med exempel. Praktisk kurs i programmering". Dawson är en erfaren programmerare och lärare, och i boken lär han ut programmering genom att skapa enkla spel. Vasilievs bok fokuserar å andra sidan mer på grunder och teori.

    4. Gå kursen "Introduktion till Datorteknologier och Python-programmering från MIT.

    5. Ta reda på vilka bibliotek och för vilka ändamål andra pytonister använder. Hitta något intressant för dig själv.

    6. Om du är intresserad av webbteknik, var uppmärksam på ramarna för Flask och Django. Ta reda på vilket syfte som är bäst, börja utforska den som passar dig.

    7. Lär dig hur du hämtar och analyserar datamängder från enskilda webbplatser, från hela Internet och var som helst - försök bara hålla dig inom lagen.

    8. Leta efter information om metoder för maskininlärning.

    9. Optimera arbetet med verktyg, automatisera rutin och allt som ännu inte är automatiserat.

    Vart ska man gå?

    Vissa Användbara länkar till resurser som hjälper dig att googla lite mindre och bestämma åt vilket håll du ska arbeta.

    Användbara resurser

    Python handledare

    Det här verktyget hjälper dig att passera en grundläggande barriär för att förstå programmeringsspråket du lär dig: genom att visualisera koden kommer den här resursen att ge dig en förståelse för vad som händer när datorn exekverar varje rad kod.

    Bucky Roberts på YouTube

    Om du inte är bekant med programmering kommer dessa tutorials att hjälpa dig mycket. De är lätta att förstå och täcker allt som kan komma till användning till en början, till att börja med att ställa in språket.

    Derek Banas på Python på YouTube

    Derek är en självlärd programmerare och har sitt eget sätt att närma sig att lära sig programmeringsspråk. Han gör små videorecensioner av olika språk, 40-60 minuter långa, där han berättar allt som behövs för att förstå syftet med språket i allmänna termer.

    Corey Schafer på YouTube

    Corey bra videos om strängformatering, generatorer, programmeringstermer (kombinationer och permutationer, DRY, closures) och mycket mer för att hjälpa dig att förstå de grundläggande begreppen.

    Django Komma igång

    Den officiella dokumentationen för Django webbramverk. Täcker allt du behöver veta för att komma igång, från installation till första applikation.

    Introduktion till Flask

    YouTube-videokurs för dig som vill bekanta dig med Flask, förstå några av dess finesser och ta reda på varför det överhuvudtaget behövs.

    Användbara länkar

    Nybörjare

    Python 3 för nybörjare
    "Python Bite" (eng. "A Byte of Python")





    

    2023 gtavrl.ru.