Python

Python is een prachtige en krachtige programmeertaal die gemakkelijk te gebruiken is (gemakkelijk te lezen en te schrijven) en waarmee je met Raspberry Pi je project met de echte wereld kunt verbinden.



Python logo

De syntaxis van Python is erg schoon, met de nadruk op leesbaarheid, en gebruikt standaard Engelse trefwoorden.



Thonny

De gemakkelijkste kennismaking met Python is via Thonny, een Python3-ontwikkelomgeving. Open Thonny vanuit het bureaublad of toepassingsmenu:

Thonny geeft je een REPL (Read-Evaluate-Print-Loop), een prompt waar je Python-commando's in kunt invoeren. Omdat het een REPL is, krijg je zelfs de uitvoer van opdrachten afgedrukt op het scherm zonder print te gebruiken. In de Thonny-applicatie wordt dit het Shell-Window genoemd.

Je kunt variabelen gebruiken als dat nodig is, maar je kunt het zelfs als een rekenmachine gebruiken. Bijvoorbeeld:

 

>>> 1 + 2
3
>>> name = "Sarah"
>>> "Hello " + name
'Hello Sarah'
Thonny heeft ook syntaxisaccentuering ingebouwd en enige ondersteuning voor automatisch aanvullen. Je kunt terugkijken op de geschiedenis van de opdrachten die je hebt ingevoerd in de REPL met Alt + P (vorige) en Alt + N (volgende).

Basisgebruik van Python

Hello world in Python:

print("Hello world")

Simple als dat!

Sommige talen gebruiken accolades {en} om regels code die bij elkaar horen te omwikkelen, en laat het aan de schrijver over om deze regels te laten inspringen om visueel genest te verschijnen. Python gebruikt echter geen accolades, maar vereist in plaats daarvan inspringing voor nesten. Bijvoorbeeld een for-loop in Python:

for i in range(10):
    print("Hello")
De inspringing is hier nodig. Een tweede ingesprongen lijn zou een deel van de lus zijn en een tweede niet ingesprongen lijn zou buiten de lus zijn. Bijvoorbeeld:
for i in range(2):
    print("A")
    print("B")

Zou Print:

A
B
A
B

 

for i in range(2):
    print("A")
print("B")

 

A
A
B

Variabelen

Om een ​​waarde in een variabele op te slaan, wijst u deze als volgt toe:
name = "Bob"
age = 15

 

Merk op dat gegevenstypen niet zijn gespecificeerd met deze variabelen, aangezien typen worden afgeleid, en later kunnen worden gewijzigd.
age = 15
age += 1  # increment age by 1
print(age)
Deze keer gebruikte ik opmerkingen naast het ophoogcommando.

Opmerkingen

Opmerkingen worden genegeerd in het programma, maar u kunt er aantekeningen achterlaten en worden aangegeven met het hekje #. Opmerkingen met meerdere regels gebruiken drievoudige aanhalingstekens zoals:

 

"""
This is a very simple Python program that prints "Hello".
That's all it does.
"""

print("Hello")

Lijsten

Python heeft ook lijsten (in sommige talen arrays genoemd) die verzamelingen gegevens van elk type zijn:

 

numbers = [1, 2, 3]
Lijsten worden aangegeven door het gebruik van vierkante haakjes [] en elk item wordt gescheiden door een komma.

Iteratie

Sommige gegevenstypen zijn herhaalbaar, wat betekent dat u de waarden die ze bevatten kunt herhalen. Bijvoorbeeld een lijst:

 

numbers = [1, 2, 3]

for number in numbers:
    print(number)
Dit neemt elk item in de lijstnummers en drukt het item af:
1
2
3

Opmerking Ik gebruikte het woord nummer om elk item aan te duiden. Dit is slechts het woord dat ik hiervoor heb gekozen - het wordt aanbevolen om beschrijvende woorden te kiezen voor variabelen - het gebruik van meervouden voor lijsten, en enkelvoud voor elk item is logisch. Het maakt het gemakkelijker te begrijpen tijdens het lezen.

Andere gegevenstypen zijn itereerbaar, bijvoorbeeld de string:

 

dog_name = "BINGO"

for char in dog_name:
    print(char)
Loops over elke character en print:
B
I
N
G
O
Het gegevenstype integer is niet itereerbaar en als je erover probeert te herhalen, krijg je een foutmelding. Bijvoorbeeld:

 

for i in 3:
    print(i)

Error:

TypeError: 'int' object is not iterable

Python error

U kunt echter een itereerbaar object maken met de bereikfunctie:

 

for i in range(3):
    print(i)
bereik (5) bevat de cijfers 0, 1, 2, 3 en 4 (in totaal vijf cijfers). Gebruik bereik (1, 6) om de cijfers 1 tot en met 5 te krijgen.

Lengte

Je kunt functies zoals len gebruiken om de lengte van een string of een lijst te vinden:
name = "Jamie"
print(len(name))  # 5

names = ["Bob", "Jane", "James", "Alice"]
print(len(names))  # 4

If statements

U kunt if statements gebruiken voor control flow:
name = "Joe"

if len(name) > 3:
    print("Nice name,")
    print(name)
else:
    print("That's a short name,")
    print(name)

Python files in Thonny

Om een ​​Python-bestand in Thonny te maken, klik je op Bestand> Nieuw en krijg je een venster te zien. Dit is een leeg bestand, geen Python-prompt. Je schrijft een Python-bestand in dit venster, slaat het op, voert het uit en je ziet de uitvoer in het andere venster.

Typ bijvoorbeeld in het nieuwe venster:
n = 0

for i in range(1, 101):
    n += i

print("The sum of the numbers 1 to 100 is:")
print(n)
Sla vervolgens dit bestand op File> Opslaan of Ctrl + S) en voer het uit (Run> Run Module uitvoeren of druk op F5) en je ziet de uitvoer in je originele Python-venster.

Python-bestanden uitvoeren vanaf de opdracht prompt

U kunt een Python-bestand schrijven in een standaardeditor en het uitvoeren als een Python-script vanaf de opdrachtregel. Navigeer gewoon naar de map waarin het bestand is opgeslagen (gebruik cd en ls als richtlijn) en voer het uit met python3, b.v. python3 hello.py.

Python command line

Andere manieren om Python te gebruiken.

Command Line

De standaard ingebouwde Python-shell is toegankelijk door python3 in de terminal te typen.

Deze shell is een prompt die gereed is om Python-opdrachten in te voeren. Je kunt dit op dezelfde manier gebruiken als Thonny, maar het heeft geen syntaxisaccentuering of automatische aanvulling. Je kunt terugkijken op de geschiedenis van de opdrachten die je hebt ingevoerd in de REPL met behulp van de Omhoog / Omlaag-toetsen. Gebruik Ctrl + D om af te sluiten.

IPython

IPython is een interactieve Python-shell met syntaxisaccentuering, automatische aanvulling, mooie afdrukken, ingebouwde documentatie en meer. IPython wordt niet standaard geïnstalleerd. Installeer met:
sudo pip3 install ipython

 

Voer vervolgens met ipython uit vanaf de opdrachtregel. Het werkt als de standaard python3, maar heeft meer functies. Typ Len? en druk op Enter. U krijgt informatie te zien, inclusief de docstring voor de len-functie:
Type:       builtin_function_or_method
String Form:<built-in function len>
Namespace:  Python builtin
Docstring:
len(object) -> integer

Return the number of items of a sequence or mapping.
Probeer het volgende woordenboekbegrip:
{i: i ** 3 for i in range(12)}
Dit zal het volgende mooi afdrukken:
{0: 0,
 1: 1,
 2: 8,
 3: 27,
 4: 64,
 5: 125,
 6: 216,
 7: 343,
 8: 512,
 9: 729,
 10: 1000,
 11: 1331}

 

In de standaard Python-shell zou dit op één regel zijn afgedrukt:
{0: 0, 1: 1, 2: 8, 3: 27, 4: 64, 5: 125, 6: 216, 7: 343, 8: 512, 9: 729, 10: 1000, 11: 1331}

Python vs ipython

Je kunt terugkijken op de geschiedenis van de opdrachten die je hebt ingevoerd in de REPL met behulp van de Omhoog / omlaag-toetsen zoals in python. De geschiedenis blijft ook bestaan ​​tot de volgende sessie, dus u kunt ipython afsluiten en terugkeren (of schakelen tussen v2 / 3) en de geschiedenis blijft. Gebruik Ctrl + D om af te sluiten.

Python Bibliotheken installeren

apt

Sommige Python-pakketten zijn te vinden in de Raspbian-archieven en kunnen worden geïnstalleerd met apt, bijvoorbeeld:

 

sudo apt update
sudo apt install python-picamera
Dit is een voorkeursmethode voor installatie, omdat het betekent dat de modules die u installeert gemakkelijk up-to-date kunnen worden gehouden met de gebruikelijke sudo apt update en sudo apt full-upgrade commando's.

pip

Niet alle Python-pakketten zijn beschikbaar in de Raspbian-archieven, en die kunnen soms verouderd zijn. Als u geen geschikte versie in de Raspbian-archieven kunt vinden, kunt u pakketten installeren vanuit de Python Package Index (bekend als PyPI).
 
Installeer hiervoor pip:
sudo apt install python3-pip
Installeer vervolgens Python-pakketten (bijv. Simplejson) met pip3:
sudo pip3 install simplejson

piwheels

De officiële Python Package Index (PyPI) host bestanden die zijn geüpload door pakketbeheerders. Sommige pakketten vereisen compilatie (compileren van C / C ++ of vergelijkbare code) om ze te installeren, wat een tijdrovende taak kan zijn, met name op de single-core Raspberry Pi 1 of Pi Zero.

piwheels is een service die voorgecompileerde pakketten (genaamd Python-wielen) biedt die klaar zijn voor gebruik op de Raspberry Pi. Raspbian is vooraf geconfigureerd om piwheels voor pip te gebruiken. Lees meer over het piwheels-project op www.piwheels.org.

Bron: Raspberry Pi Foundation

Search engine powered by ElasticSuite