Python from Scratch - Functies en modules

Welkom bij de Python uit de Scratch-serie. In de vorige les hebben we geleerd hoe we variabelen en controlestructuren kunnen gebruiken om gegevens op te slaan en te manipuleren. Zorg ervoor dat u deze bekijkt als u een opfriscursus nodig hebt!


Video-instructies


Vertaling

In de tutorial van vandaag gaan we kijken naar functies - wat ze zijn, hoe ze werken en hoe je ze kunt maken. We gaan ook enkele van de ingebouwde functies bekijken en effectief gebruiken. Ten slotte gaan we kijken naar het maken en importeren van modules.


Functies - Je eigen schrijven

Functies zijn een belangrijke stap om te dekken, bij het introduceren van extra complexiteit in uw programmering. Als een variabele een container met naam voor gegevens is, is een functie een container met de naam voor een codeblok dat op verzoek kan worden uitgevoerd. Dit is handig als u een programma hebt dat een bepaalde bewerking vaak uitvoert. In plaats van de code te kopiëren en te plakken om die bewerking uit te voeren in elke sectie waar het nodig is, kunt u eenvoudig één enkele functie schrijven om het voor u te doen.

Een functie is een benoemde container voor een codeblok.

Er zijn twee soorten functies: degene die u zelf schrijft en in uw code opneemt, en degene die standaard in Python zijn opgenomen, die algemene procedures uitvoeren, zoals het converteren van een geheel getal naar een tekenreeks, of het vinden van de lengte van een draad.

We gaan nu kijken naar het schrijven van een eenvoudige functie en laten zien hoe dit nuttig kan zijn in de echte wereldcode. Daarna zullen we enkele van de belangrijkste ingebouwde functies bekijken.

Een eenvoudig voorbeeld

Laten we ons voorstellen dat we een script voor een winkelwagentje willen maken dat de kosten van alle artikelen in uw winkelwagentje op zich neemt en vervolgens samenvoegt om de totale kosten te retourneren. Om een ​​functie te schrijven die twee kosten zou kosten, optellen en vervolgens de output zou afdrukken, zouden we misschien iets doen als:

 # onze twee kosten om de kosten op te tellen1 = 15 cost2 = 20 def sumCart (): totalCost = cost1 + cost2 print totalCost sumCart ()

Om de functie te definiëren, moeten we de 'def'sleutelwoord en vervolgens de naam van de functie. Vervolgens typen we twee haakjes (daar komen we later op terug) en vervolgens een dubbele punt. Daarna moet alle code die we in de functie willen insluiten worden ingesprongen, net als bij als, terwijl en voor loops.

Om de code in de functie uit te voeren, typen we de naam van de functie, gevolgd door de twee haakjes opnieuw. Als u deze code uitvoert, wordt '35' afgedrukt, wat de juiste uitvoer is.

argumenten

Dat is geweldig, maar op dit moment zijn onze functies een beetje rigide - alles over de functie is hard gecodeerd. Laten we bijvoorbeeld zeggen dat we de sumCart functioneer ergens anders, in een ander deel van het programma, maar in plaats van cost1 en cost2 samen toe te voegen, willen we twee andere kosten bij elkaar optellen die in verschillende variabelen werden gehouden. We zouden een geheel nieuwe functie moeten schrijven, ook al zou die nieuwe functie precies hetzelfde zijn als de huidige, met de namen van de variabelen die geruild worden - dat lijkt nauwelijks een efficiënte oplossing.

Om dit probleem op te lossen, gebruiken we 'argumenten', en daar zijn de haakjes voor. Een argument is een manier om gegevens door te geven in een functie wanneer we niet weten in welke variabele of variabelen die gegevens zich bevinden. Als dat verwarrend is, nemen we het voorbeeld dat ik zojuist heb genoemd. We voegen twee extra kosten toe: cost3 en cost4.

Nu gaan we twee argumenten toevoegen voor de twee items die we willen optellen. Argumenten worden gedefinieerd tussen haakjes en elk argument krijgt een naam, met een komma die elk van elkaar scheidt. Een argument fungeert als een tijdelijke verwijzing naar de gegevens die u hebt doorgegeven terwijl de functie actief is.

 cost1 = 15 cost2 = 20 cost3 = 5 cost4 = 10 def sumCart (item1, item2): totalCost = item1 + item2 print totalCost sumCart (cost1, cost2)

Wanneer we de sumCart functie, de twee variabelen die we hebben ingevoerd (cost1 en cost2) worden in de argumenten item1 en item2 geplaatst. Dit gebeurt altijd in dezelfde volgorde waarin u de argumenten definieert - met andere woorden, de eerste variabele die u invoert, wordt toegewezen aan het eerste argument, het tweede aan het tweede argument, enzovoort, voor zoveel argumenten als uw functie nodig heeft.

Wat er feitelijk gebeurt wanneer de functie wordt uitgevoerd, is dat die twee argumenten worden geconverteerd naar lokale variabelen en de waarden worden toegewezen van de variabelen die u in de functie doorgeeft wanneer u deze roept, in dit geval de waarde van pensioenkosten1 wordt in de lokale variabele gezet item 1, en de waarde van kosten2 wordt in de lokale variabele gezet item2. Dit betekent dat u ze gemakkelijk in de functie kunt gebruiken.

Een andere manier waarop u ernaar kunt kijken, is dat wanneer u een variabele als argument doorgeeft, overal waar de naam van dat argument in de functie voorkomt, deze wordt vervangen door de variabele die u hebt ingevoerd. Dus, in dit voorbeeld, overal waar item 1 is geschreven in de functie, het is vervangen door pensioenkosten1, en hetzelfde met item2 en kosten2.

Om te bewijzen dat u alle gewenste nummers kunt doorgeven, moet u nu de som van ontvangen als u deze code uitvoert cost3 en cost4:

 cost1 = 15 cost2 = 20 cost3 = 5 cost4 = 10 def sumCart (item1, item2): totalCost = item1 + item2 print totalCost sumCart (cost3, cost4)

Standaardinstellingen van argumenten

Merk op dat een functie elk aantal argumenten kan accepteren, maar onthoud: wanneer u de functie aanroept, moet u het hetzelfde aantal argumenten doorgeven als u hebt gedefinieerd, anders ontvangt u een foutmelding. Er is een manier om dit te doen: u kunt een standaardwaarde definiëren voor elk argument, dat wordt gebruikt in de gevallen waarin u geen waarde opgeeft.

Kijkend naar onze huidige code, laten we ons voorstellen dat we het tweede item 5 willen kosten als we de functie geen andere waarde geven. Het is geen waarschijnlijk scenario, maar het zal het concept demonstreren.

 cost1 = 15 cost2 = 20 cost3 = 5 cost4 = 10 def sumCart (item1, item2 = 5): totalCost = item1 + item2 print totalCost sumCart (cost1) sumCart (cost3, cost4)

Als we deze code uitvoeren, ziet u dat de uitvoer in de eerste aanroep 20 is, wat inderdaad (kost1 + 5) is. Dit heeft echter geen invloed op het gedrag wanneer beide argumenten worden verstrekt.

Terugkerende waarden

Er is nog een laatste kenmerk van functies die we vandaag gaan bekijken: terugkerende waarden. We hebben geleerd hoe je een functie kunt maken die niet erg vindt om welke invoer het gaat, maar wat als we het antwoord op 'totalCost' in een variabele willen opslaan in plaats van het af te drukken? Misschien willen we de kosten van de eerste twee items berekenen, opslaan in één variabele, dan hetzelfde doen met de tweede twee items en dat antwoord opslaan in een tweede variabele. Met de huidige lay-out van onze functie konden we dat niet op een leesbare en gemakkelijk te begrijpen manier doen.

Net zoals de manier waarop we argumenten in een functie kunnen doorgeven, zodat we niet hoeven te coderen waar de gegevens vandaan komen, kunnen we hetzelfde doen met de uitvoer. Ik zal je laten zien met een voorbeeld - in onze vorige functie, ga ik het woord 'print' vervangen door het woord 'return':

 cost1 = 15 cost2 = 20 cost3 = 5 cost4 = 10 def sumCart (item1, item2): totalCost = item1 + item2 return totalCost cart1 = sumCart (cost1, cost2) cart2 = sumCart (cost3, cost4) print cart1 print cart2

Het is duidelijk dat de functie niet langer het antwoord voor ons zal uitprinten. Wat het in plaats daarvan gaat doen is de waarde van de variabele totalCost terugsturen naar waar we de functie ook hebben genoemd. Op die manier kunnen we het antwoord gebruiken in elke context die we nodig hebben. Nu, in ons vorige programma, zou dat niet erg handig zijn, omdat we nergens hebben gespecificeerd om het op te slaan, dus ik heb ook de manier veranderd waarop we de functie noemen.

We moeten Python een variabele geven om het antwoord op te slaan, en dan gaan we die variabele simpelweg gelijk stellen aan onze stelling die de functie aanroept. Wanneer de functie een waarde retourneert, wordt die waarde nu opgeslagen in de variabele die we hebben opgegeven.


Functies - Ingebouwd

We hebben geleerd hoe we onze eigen functies kunnen maken en hoe we ze kunnen gebruiken, maar er zijn sommige bewerkingen die vaak genoeg worden uitgevoerd dat Python ze heeft opgenomen voor gebruik in elk programma. De manier waarop u ze belt, is precies hetzelfde als uw eigen oproep, maar u hoeft ze niet eerst te definiëren. We gaan nu een korte blik werpen op de belangrijkste, maar vergeet zeker niet de documentatie van Python te bekijken, want er zijn heel veel nuttige functies die beschikbaar zijn voor gebruik, waarvoor we geen tijd hebben om naar rechts te kijken nu.

Raadpleeg de Python-documentatie voor een lijst met alle ingebouwde functies.

str ()

Laten we eerst eens kijken naar een van de handigste functies in Python: de stringconversiefunctie. Scripting is vaak het geval wanneer u een variabele heeft die een getal of een ander type gegevens bevat, maar u moet die waarde converteren naar een tekenreeks om er iets mee te doen - normaal gesproken om het op het scherm af te drukken.

Laten we zeggen dat we een getal in een variabele hebben en dat we het willen afdrukken met het bericht 'Het nummer is' en dan het nummer. Als we schrijven:

 nummer = 10 print 'Het nummer is' + nummer

? dan zullen we een fout tegenkomen, want wat je Python vraagt ​​is om een ​​nummer en een string bij elkaar te voegen - wat niet echt heel logisch is. Wat we moeten doen is het getal 10 omzetten in de string 10. Als we dat doen, zal Python begrijpen dat wat we proberen te doen, geen som is, maar in plaats daarvan de twee strings samenvoegen.

Dit is waar de str functie komt binnen. Het accepteert een waarde en retourneert een tekenreeks om het weer te geven. In het geval dat u een getal doorgeeft, zal het eenvoudig het getal teruggeven, maar in het string-formaat.

 nummer = 10 print 'Het nummer is' + str (getal)

Nu we het nummer in een stringconversiefunctie hebben ingepakt, loopt de code perfect. De str functie hoeft echter geen nummer te nemen - het kan ook andere waarden aannemen, zoals a Boolean:

 bool = True print 'De waarde is' + str (bool)

De str () functie vindt de dichtstbijzijnde reeks die overeenkomt met de waarde van 'waaren retourneert het, wat betekent dat we het mooi kunnen uitvoeren.

len ()

Een andere veel voorkomende taak voor strings is om de lengte ervan te kunnen vinden, en nogmaals, Python heeft hiervoor een ingebouwde functie. Laten we de string 'Hallo wereld' nemen en proberen de lengte ervan te vinden. Om dit te doen, hebben we de ingebouwde functie nodig len () functie, wat staat voor lengte. Alles wat we moeten doen is het doorgeven van de string die we willen gebruiken, en het zal het aantal karakters erin terugbrengen:

 string = 'Hello World' print len ​​(string)

De len () functie is echter meer dan dat. Wat het eigenlijk doet, is het aantal items in het object dat je het geeft tellen - als je het een string geeft, dan is dat het aantal tekens, maar je kunt het ook een lijst of een tuple geven, bijvoorbeeld, en het zal de aantal items in dat specifieke object.

int ()

Als je verder gaat, krijg je vaak een cijfer van 10.6 of 3.896, wat geen geheel getal is, maar je hebt een geheel getal van hen nodig. De ingebouwde functie om naar een geheel getal te converteren wordt aangeroepen int (), en het werkt redelijk voorspelbaar. De functie retourneert de gehele conversie van dat getal. Merk op dat deze functie de ingang NIET naar het dichtstbijzijnde gehele getal afrondt - het werpt heel eenvoudig alles weg na de komma en geeft het getal aan u terug. Dus de invoer van 10.6 retourneert 10, NIET 11. Op dezelfde manier zou 3.25 3 retourneren.

 nummer = 10.6 print int (nummer)

De int functie kan ook een string naar een converteren int data type. Bijvoorbeeld, gezien dit, zou de output nog steeds 10 zijn:

 nummer = '10' print int (nummer)

Wees echter voorzichtig, want als het van een string naar een geheel getal converteert, int () zal NIET omgaan met decimale plaatsen. Als u het verstrekt:

 getal = '10 .6 'print int (nummer)

Dan zal het een foutmelding geven, omdat de invoer geen geheel getal was, dus het wist niet hoe ermee om te gaan.

range ()

Ten slotte gaan we snel naar de range () functie; het komt verrassend vaak naar voren als je begint met het uitvoeren van meer complexe taken in Python en hoewel het op dit moment misschien niet erg nuttig lijkt, is het de moeite waard om eens te kijken en te leren hoe het werkt. Bereik is een functie die u gebruikt om een ​​lijst met nummers te maken volgens een bepaald patroon. Het eenvoudigste voorbeeld is dat je misschien een lijst met alle cijfers van 0 tot 10 nodig hebt. In plaats van ze handmatig uit te typen, kun je de reeks functie om het op één regel te doen.

Bereik accepteert een geheel getal als parameter, en in dit geval zullen we het doorgeven 11. De functie begint bij nul en maakt een lijst omhoog totdat deze één minder raakt dan het getal dat je erin steekt. Dus hier, als we zetten er 11 in, het slaat de nummers 0 - 10 op in de lijstnummers:

 nummers = bereik (11) afdrukken (cijfers)

Wat als we in plaats daarvan de nummers vijf tot tien wilden afdrukken? Wel, optioneel kunnen we een ander argument voor het startnummer toevoegen, dus dit zal de nummers vijf tot tien afdrukken:

 nummers = bereik (5, 11) afdrukken (cijfers)

Ten slotte, wat als we alleen de oneven nummers onder de 10 wilden afdrukken? Welnu, bereik accepteert een derde waarde, wat het bedrag is dat elke stap omhoog gaat. Dus als we bij 1 beginnen, stel de stap in op twee en de bovenlimiet op 11, dan moeten we eindigen met alle oneven getallen onder de tien:

 nummers = bereik (1, 11, 2) afdrukken (cijfers)

Als laatste opmerking kan elk van deze getallen ook negatief zijn, dus als we DOWN van 10 naar 1 zouden willen tellen in plaats van naar boven, kunnen we de stap instellen als negatief 1, de startwaarde tot 10 en de limiet tot 0 , zoals zo:

 aantal = bereik (10, 0, -1) afdrukken (cijfers)

Houd er rekening mee dat bereik alleen betrekking heeft op gehele getallen, dus zorg ervoor dat u geen waarden opgeeft die geen gehele getallen zijn, anders genereert u een fout.


Modules - Uw eigen maken

Oke, we hebben nu functies behandeld; laten we verder gaan naar het tweede onderwerp van de les van vandaag: modules. Als functies codegroepen zijn, zijn modules functiegroepen. Er is meer voor hen, maar dat is een goede manier om er nu over te denken.

Zoals we eerder hebben besproken, kun je geen complex programma maken zonder code te sorteren in functies. Naarmate je programma verder groeit, worden ze zelfs onhandelbaar. Je moet ze op een ander hiërarchisch niveau sorteren. Dit zijn modules. We kunnen ze dus samenvatten als een structureel en organisatorisch hulpmiddel voor onze code.

Modules zijn vrij eenvoudig te maken. Het zijn eenvoudigweg Python-bestanden, zoals uw reguliere scripts. Als u een module wilt maken, schrijft u een of meer functies in een tekstbestand en slaat u deze op met een .py uitbreiding. Laten we dat nu doen met een voorbeeld. Open een nieuw bestand met je teksteditor of IDE en maak een functie. Ik ga door met het voorbeeld van een winkelwagentje van vroeger en maak een functie om de belasting op de producten te berekenen.

Maak een nieuw bestand in uw IDE- of teksteditor en laten we een functie maken voor het berekenen van belasting op een product.

 def addTax (prijs, belasting): newPrice = price / 100 * (100 + tax) return newPrice

Als we dit bestand opslaan met een .py extensie in dezelfde map als ons andere script, we kunnen het als een module gebruiken! Het is belangrijk om het een beschrijvende naam te geven zodat je weet wat het doet als je later terugkomt, dus noem deze finance.py


Modules importeren

Om modules te gebruiken, kunnen we de importeren of de van trefwoord. importeren is de eenvoudigste en meest voorkomende, dus laten we dat eerst proberen. Vervolgens geeft u de naam van de module op, dat is gewoon de bestandsnaam, zonder de .py uitbreiding. Bijvoorbeeld met onze financiën module in dezelfde map als ons script kunnen we schrijven:

importfinanciering

? en we zouden toegang hebben tot alle functies in het script. We kunnen ze dan net zo bellen als voorheen. U kunt ook de van sleutelwoord, waarmee u specifieke functies uit de bibliotheek kunt selecteren, als u van tevoren weet welke u nodig hebt. Voor een module met honderden functies wordt dit aanbevolen - het bespaart laadtijd op functies die niet eens worden gebruikt.

van financiën import addTax

U kunt verschillende importeren door hun namen te scheiden met komma's.

van financiën import addTax, rekenenKorting

En je kunt zelfs de asterisk-wildcard gebruiken om alles te importeren.

van financiële import *

Nadat u de module hebt geïmporteerd, gebruikt u de modulenaam, gevolgd door een punt en vervolgens de functienaam om de functies te gebruiken die erin voorkomen.

 import finance print finance.addTax (100, 5)

Dit zou moeten resulteren in 105 wanneer het script wordt uitgevoerd. Een eenvoudig resultaat, maar het betekent dat je een werkende functie hebt!


Ingebouwde modules

Er zijn veel ingebouwde modules, net zoals er zijn met ingebouwde functies. Dit is waar Python echt uitblinkt! Het neemt wat de batterijen worden genoemd inbegrepen? nadering.

Omdat Python zo'n uitgebreid assortiment ingebouwde modules heeft, is er geen manier om ze allemaal in één les te behandelen. Sommige zijn nogal obscuur en het heeft geen zin om een ​​lading informatie te leren waar je misschien nooit een gebruik voor hebt. Laten we in plaats daarvan enkele van de nuttigste bespreken.

  • willekeurig
  • wiskunde
  • os
  • datum Tijd
  • urllib2

willekeurig

Een goede om mee te beginnen is willekeurig , omdat het gemakkelijk te begrijpen en nuttig is in de meeste scripts die u zult schrijven. Zoals je zou verwachten, laat deze module je willekeurige getallen genereren. Als u bijvoorbeeld Python gebruikt om een ​​website te maken, kunnen deze worden gebruikt om uw wachtwoorddatabase veiliger te maken of om een ​​willekeurige paginafunctie in te schakelen. Als we een willekeurig geheel getal willen, kunnen we het randint functie, zoals zo:

 import willekeurige print random.randint (0, 5)

Dit levert ofwel 1, 2, 3, 4 of 5 op. Randint accepteert precies twee parameters: een laagste en een hoogste getal. Zoals u kunt zien, bevat het het hoogste nummer maar gaat het van 1 boven het laagste nummer. Als u een willekeurig drijvende-kommagetal wilt, kunt u de willekeurig functie:

 import random random.random ()

? die een willekeurig getal tussen 0 en 1 uitvoert, naar een reeks decimalen. Als u een groter aantal wilt, kunt u het vermenigvuldigen. Bijvoorbeeld een willekeurig getal tussen 0 en 100:

 import random random.random () * 100

De willekeurig module heeft ook een functie voor het kiezen van een willekeurig element uit een set zoals een lijst, genaamd keuze.

 import random myList = [1, 8, True, 77, "Lorem", 482, "Ipsum"] random.choice (myList)

wiskunde

De wiskunde module biedt toegang tot wiskundige constanten en functies.

 import wiskunde math.pi #Pi, 3.14? math.e # Euler's nummer, 2.71? math. degrees (2) # 2 radialen = 114.59 graden math.radians (60) # 60 graden = 1.04 radians math.sin (2) #Sine van 2 radialen math.cos (0.5) #Cosine van 0.5 radialen math.tan ( 0,23) #Tangent van 0,23 radialen math.factorial (5) # 1 * 2 * 3 * 4 * 5 = 120 math.sqrt (49) #Square root of 49 = 7

Er zijn veel meer functies in de module, maar deze zijn enkele van de meest bruikbare. Je kunt hier een volledige lijst vinden.

datum Tijd

Als u met datums en tijden moet werken, dan is de datum Tijd module is je vriend. Deze is erg handig om te weten voor webontwikkeling. Als u een website maakt met opmerkingen of een blog, geeft u waarschijnlijk hun leeftijd weer of de tijd waarop ze zijn gemaakt.

Laten we de module zoals gewoonlijk importeren:

 import datetime

Gemakshalve kunt u de datum- en tijdcomponenten ook afzonderlijk importeren, zodat u niet zo veel later hoeft te typen.

 importeer datetime van datetime import datum import tijd

Laten we eens kijken naar enkele van de functies die het biedt:

 time.time () #Return het aantal seconden sinds de Unix Epoch, 1 januari 1970 date.fromtimestamp (123456789) #Converteert een aantal seconden naar een datumobject date.fromtimestamp (time.time ()) #We kunnen de twee om een ​​object te krijgen dat de huidige datum van de datum weergeeft.fromordinal (10000) #Return de datum een ​​bepaald aantal dagen sinds 1 januari in het jaar 1 - 28 mei 0018 in dit geval

Er zijn enkele handige functies voor het converteren van datums naar bruikbare reeksen. strftime kunt u een reeks opmaken op basis van speciale tekens voorafgegaan door een percentagesymbool. % d vertegenwoordigt bijvoorbeeld de dag.

 currentDate = date.fromtimestamp (time.time ()) #Creëer een variabele die nu de tijd currentDate.strftime ("% d /% m /% y") vertegenwoordigt #Format de datum zoals DD / MM / YY - in dit geval 09 / 07/11 currentDate.isoformat () #Format als een ISO-standaarddatum - in dit geval 2011-07-09

os

De volgende module waar we naar kijken, is os, die functies biedt waarmee je kunt communiceren met het onderliggende besturingssysteem waarop Python draait, of dat nu Windows, Mac of Linux is. We zullen ons concentreren op de pad submodule. Hiermee kunt u de eigenschappen van bestanden en mappen op het systeem manipuleren en vinden, dus het is het nuttigst voor webontwikkeling. U zult vaak bestanden moeten beheren, bijvoorbeeld gebruikersuploads.

 van os import pad path.exists ("/ Users / Giles") #Checks als de map bestaat, in mijn geval is het True path.exists ("/ Users / Bob") #False deze keer
 van os import pad path.getatime ("/ Users") #Get de laatste keer dat de gegeven map benaderd werd als een tijdstempel path.getmtime ("/ Users") #Get de laatste keer dat de gegeven map werd aangepast als een tijdstempel

Deze tijdstempels kunnen worden geconverteerd naar bruikbare reeksen met behulp van de datum Tijd module - u kunt zien hoe u modules kunt combineren.

 from os import path path.getsize ("/ Users / Giles / Desktop / boot") #Return het formaat van een bestand in bytes - voor dit bestand was het 314400 bytes, of 314kb

De laatste functie in de os-module waar we naar gaan kijken is toetreden. Het combineert twee paden tot één. Je denkt misschien: "Waarom kan ik niet gewoon de snaren aaneenschakelen?", Maar het is niet zo eenvoudig als dat. In Windows is het padscheidingsteken een backslash, op Mac en Linux is dit een schuine streep naar voren. Deze module verlicht dit soort problemen en zorgt ervoor dat je Pythons-scripts op elk systeem werken.

 path.join ("C:", "Users") #Returns "C: / Users"

urllib2

Om onze rondleiding door de standaardbibliotheek van Python af te sluiten, gaan we even kijken urllib2. Met deze module kun je communiceren met internet, dus het is duidelijk relevant voor ons. De nuttigste functie die het biedt is urlopen, welke een pagina downloadt.

Je gebruikt het als volgt:

 import urllib2 urllib2.urlopen ("http://net.tutsplus.com")

U kunt uiteraard de URL-reeks voor elke site omwisselen. Hiermee wordt de HTML-inhoud van de pagina gedownload. Dit levert echter geen string op, dus we moeten de gegevens lezen om dat te krijgen:

 import urllib2 urllib2.urlopen ("http://net.tutsplus.com") .lees (100)

Hiermee worden de eerste 100 tekens van de HTML-bron van Nettuts + geretourneerd. Zodra u deze gegevens hebt, kunt u deze doorzoeken en de benodigde bits uitpakken die u nodig hebt.


Laatste tips

Als uw module zich in een andere directory bevindt dan uw script, is het een beetje lastiger om ze te importeren. U moet een bestand maken dat Python vertelt dat de map een pakket is. Als u bijvoorbeeld een map met de naam submap in dezelfde map als uw script hebt en vervolgens uw module in die submap, moet u een bestand maken met de naam __init__.py in dezelfde map als de module. Dit bestand kan leeg zijn. Vervolgens importeert u het vanuit uw script:

% herzie het als je een opfriscursus nodig hebt!


Video-instructies


Vertaling

In de tutorial van vandaag gaan we kijken naar functies - wat ze zijn, hoe ze werken en hoe je ze kunt maken. We gaan ook enkele van de ingebouwde functies bekijken en effectief gebruiken. Ten slotte gaan we kijken naar het maken en importeren van modules.


Functies - Je eigen schrijven

Functies zijn een belangrijke stap om te dekken, bij het introduceren van extra complexiteit in uw programmering. Als een variabele een container met naam voor gegevens is, is een functie een container met de naam voor een codeblok dat op verzoek kan worden uitgevoerd. Dit is handig als u een programma hebt dat een bepaalde bewerking vaak uitvoert. In plaats van de code te kopiëren en te plakken om die bewerking uit te voeren in elke sectie waar het nodig is, kunt u eenvoudig één enkele functie schrijven om het voor u te doen.

Een functie is een benoemde container voor een codeblok.

Er zijn twee soorten functies: degene die u zelf schrijft en in uw code opneemt, en degene die standaard in Python zijn opgenomen, die algemene procedures uitvoeren, zoals het converteren van een geheel getal naar een tekenreeks, of het vinden van de lengte van een draad.

We gaan nu kijken naar het schrijven van een eenvoudige functie en laten zien hoe dit nuttig kan zijn in de echte wereldcode. Daarna zullen we enkele van de belangrijkste ingebouwde functies bekijken.

Een eenvoudig voorbeeld

Laten we ons voorstellen dat we een script voor een winkelwagentje willen maken dat de kosten van alle artikelen in uw winkelwagentje op zich neemt en vervolgens samenvoegt om de totale kosten te retourneren. Om een ​​functie te schrijven die twee kosten zou kosten, optellen en vervolgens de output zou afdrukken, zouden we misschien iets doen als:

 # onze twee kosten om de kosten op te tellen1 = 15 cost2 = 20 def sumCart (): totalCost = cost1 + cost2 print totalCost sumCart ()

Om de functie te definiëren, moeten we de 'def'sleutelwoord en vervolgens de naam van de functie. Vervolgens typen we twee haakjes (daar komen we later op terug) en vervolgens een dubbele punt. Daarna alle code die we w