9 Trucs met de Python REPL
Natuurlijk is de Pi in Raspberry Pi komt uit Python, een van de populairste programmeertalen ter wereld en vooral populair onder knutselaars en makers. In deze post wil ik je 9 trucs en tips geven met de Python REPL - maar maak je geen zorgen als je niet super bekend bent met Python of de REPL.
Dit artikel is bedoeld voor zowel beginners als gevorderde Python-programmeurs.
Wat is de REPL?
De REPL, of Read-Evaluate-Print Loop, is een manier om direct te communiceren met de Python interpreter. Het wordt een REPL genoemd, omdat het de invoer leest, evalueert en afdrukt en dan terugloopt naar het begin, zodat je een ander commando kunt invoeren.
Het biedt een interface via een Python Shell om code in te voeren en onmiddellijk een uitvoer te ontvangen. Dit maakt het mogelijk om code te controleren, in real-time te debuggen en interactieve tests te maken. Normaal gesproken weet je dat je te maken hebt met een Python REPL zodra je deze drie pijlen ziet:
>>>
Hier kun je je invoer plaatsen.
Het is het vermelden waard dat
De termen "Python Shell" en "Python Interpreter" worden soms door elkaar gebruikt, maar er is een subtiel verschil tussen beide. De Python-interpreter verwijst naar het eigenlijke programma of de software die Python-code uitvoert. De Python Shell is echter de interface waarmee je in real-time kunt communiceren met de interpreter.
Naast de standaard Python en Python3 Shells gebruiken veel mensen ook IPython en bpython, commandoregelprogramma's die unieke functies bieden, zoals syntax highlighting.
Je kunt zien dat IPython en bpython standaard mooier zijn (hieronder zullen we zien hoe we de standaard REPL ook mooier kunnen maken).
Het is ook de moeite waard om op te merken dat IPython's REPL invoerregels nummert "In [1]", "In [2]", etc.
In tegenstelling tot IPython behoudt bpython de >>> lay-out.
De REPL kan ook functies bieden zoals commandogeschiedenis, tabbladaanvulling en de mogelijkheid om eerder gedefinieerde variabelen en functies te openen, waardoor het een handig hulpmiddel is voor interactief programmeren en verkennen van Python.
Dit maakt de REPL een gereedschap van onschatbare waarde voor iedereen die wat wil rommelen met zijn Raspberry Pi.
Nu je op de hoogte bent van wat de REPL is, laten we eens kijken naar enkele trucs om het te gebruiken:
Truc 1: Zoek documentatie
Je kunt de documentatie voor elk Python-object of -module rechtstreeks vanuit de REPL vinden met behulp van de optie help()
functie.
Als u bijvoorbeeld help(str)
geeft de documentatie voor het stringobject weer. Je kunt ook een specifieke methode- of functienaam toevoegen om gedetailleerde informatie te krijgen, zoals
help(str.upper)
Als je dit intypt, zie je het volgende:
Truc 2: Tabbladcompletie gebruiken
Afhankelijk van welk programma je gebruikt, ondersteunt de Python REPL tab aanvulling, wat je tijd kan besparen en typefouten kan voorkomen. Door op de Tab-toets te drukken na het typen van een gedeeltelijke naam of object, worden beschikbare opties weergegeven.
Als u bijvoorbeeld int.
en druk vervolgens op Tab, dan zie je een lijst met methoden die je kunt uitvoeren met gehele getallen.
Truc 3: Meerregelige verklaringen maken
Verder staat de REPL je toe om meerregelige statements te schrijven met behulp van regelvoortzetting.
Als je een instructie wilt opsplitsen in meerdere regels voor de leesbaarheid, kun je het backslash-teken (\
) aan het einde van elke regel om door te gaan op de volgende regel (zie voorbeeld 1 hieronder).
Je kunt de verklaring ook tussen haakjes of haken zetten om deze op de volgende regel voort te zetten (zie voorbeeld 2 hieronder).
# example 1: using backslash for a multi-line statement
name = 'Fatima'
age = 46
country = 'Germany'
message = 'Hi, ' + \
name + \
'! You are ' + \
str(age) + \
' years old and from ' + \
country + '.'
print(message)
# the message will be 'Hi, Fatima! You are 46 years old and from Germany.'
# example 2: using parentheses for a multi-line statement
total = (1 + 2 + 3 +
4 + 5 + 6 +
7 + 8 + 9)
print("The total is:", total)
# the message will be 'The total is: 45'
Truc 4: Toegang tot eerder getypte code
Je kunt eerder getypte code in de REPL openen met de pijltjestoetsen omhoog en omlaag, net als in de terminal.
Als je op de pijltjestoets omhoog drukt, loop je door je opdrachtgeschiedenis, zodat je snel eerdere opdrachten kunt oproepen en wijzigen. Probeer het zelf!
Truc 5: Maak gebruik van de Underscore-variabele
De underscore-variabele (_)
bevat het resultaat van de laatste expressie die is geëvalueerd in de REPL.
Het kan handig zijn als je het resultaat moet hergebruiken in volgende bewerkingen zonder dat je de hele expressie opnieuw moet evalueren. Dus als je snel wat berekeningen moet doen of als je supersnel gegevens wilt ophalen - kun je gewoon het onderstrepingsteken intypen als een standaardvariabele van het vorige resultaat.
Truc 6: Systeemcommando's & magische commando's uitvoeren (IPython)
In IPython (kort voor "Interactive Python") kun je systeemcommando's direct uitvoeren door een regel code vooraf te laten gaan door een uitroepteken (!
).
Samen met IPython's magische commando's, like %cd to change directory, you’re able to use the Python REPL for seamless integration!
Bijvoorbeeld, !ls
op Unix-gebaseerde systemen of !dir
op Windows geeft de inhoud van de huidige map weer.
Truc 7: Experimenteer met importeren
In de Python REPL kunt u experimenteren met imports zonder dat u aparte Python-bestanden hoeft aan te maken. Met deze functie kunt u modules importeren, hun functies uitproberen en hun inhoud interactief verkennen, waardoor het handig is om snel te experimenteren en verschillende modules en hun mogelijkheden te verkennen.
Dit is hoe je de Python REPL kunt gebruiken om te experimenteren met imports:
>>> import math
>>> math.sqrt(16)
4.0
In dit voorbeeld gebruiken we de sqrt()
functie van de math
module om de vierkantswortel van 16 te berekenen.
Door de Python REPL te gebruiken om te experimenteren met imports, kunt u snel de functionaliteit van verschillende modules testen en verkennen zonder dat u aparte Python-bestanden hoeft aan te maken.
Met dit interactieve en iteratieve proces kunt u beter begrijpen hoe verschillende modules werken, verschillende functies uitproberen en hun resultaten in realtime bekijken.
Truc 8: De REPL-prompt aanpassen
Houd je niet van >>> als je primaire prompt en ... als je secundaire prompt?
Je hebt geluk, want je kunt de prompt die wordt weergegeven door de Python REPL aanpassen.
Door de sys.ps1
en sys.ps2
variabelen kunt u respectievelijk de primaire en secundaire prompts wijzigen.
Gewoon rennen:
import sys
sys.ps1 = 'primary'
sys.ps2 = 'secondary'
Nu zal de primaire prompt "primair" zijn en de secundaire prompt "secundair". Voel je vrij om te veranderen wat je maar wilt! Probeer het bijvoorbeeld eens met symbolen of emoji's!
Door het op deze manier te doen, wordt alleen de huidige REPL sessie beïnvloed. Als je dingen een beetje meer permanent wilt maken, dan moet je het ".pyrc" bestand vinden en de prompts daar bewerken.
Herinner je mijn saaie, lelijke prompters in mijn REPLs hierboven? Laten we de kleur veranderen.
Als je Linux gebruikt, kun je het volgende in je terminal invoeren:
tee ~/.pyrc <<E0F
import sys
sys.ps1='\x01\x1b[1;34;40m\x02>>>\x01\x1b[0m\x02'
sys.ps2='\x01\x1b[1;35;40m\x02...\x01\x1b[0m\x02'
E0F
Dit verandert de kleur van de primaire prompt in blauw op grijs en de secundaire prompt in paars op grijs, als je daar naar op zoek bent. Experimenteer gerust met alle ANSI kleurreeksen om een souffleur te vinden waar je tevreden mee bent.
Als je dat hebt gedaan, zorg er dan voor dat je dit exporteert:
export PYTHONSTARTUP=~/.pyrc
Nu zouden je aanwijzingen er als volgt uit moeten zien:
Nogmaals, dit is slechts tijdelijk. Als je dingen permanent wilt veranderen, zul je het configuratiebestand moeten aanpassen. Maar het geeft je een voorproefje van het plezier dat je kunt hebben!
Truc 9: Modules en objecten verkennen
Als je op zoek bent naar een aanvulling op het vinden van documentatie en het gebruik van tabbladaanvulling, dan is dit de truc die het pakket compleet maakt!
Je kunt de inhoud van een module (of een object) verkennen door de optie dir()
functie.
Door een module of object als argument mee te geven, retourneert het een lijst met namen binnen die module of dat object, zodat je de beschikbare attributen, methoden en functies kunt verkennen.
Bijvoorbeeld:
import math
print (dir(math))
Dit geeft een lijst weer van de beschikbare attributen, methodes en functies binnen de wiskunde-module.
Dit soort trucjes kunnen helpen om je workflow naadloos te laten verlopen.
Als je deze 9 trucs onder de knie hebt, zul je de REPL effectiever kunnen gebruiken.
Dit maakt het debuggen en testen van je code een stuk eenvoudiger.
Laat ons weten welke REPL-trucs jij hebt in de reacties hieronder!