Micropython Quicky: Unterschied zwischen den Versionen

Aus Attraktor Wiki

Wechseln zu: Navigation, Suche
(bool)
(Tuple)
Zeile 79: Zeile 79:
 
<pre>
 
<pre>
 
tuple = (1, 2, 3, 'attraktor')
 
tuple = (1, 2, 3, 'attraktor')
 +
</pre>
 +
Wenn nur ein Element im Tuple vorhanden ist, ist ein Komma am Ende erforderlich:
 +
<pre>
 +
>>> tup = (23)
 +
>>> type(tup)
 +
<class 'int'>
 +
>>> tup = (23,)
 +
>>> type(tup)
 +
<class 'tuple'>
 
</pre>
 
</pre>
  

Version vom 30. Mai 2024, 18:20 Uhr

Diese Seite dient zur Vorbereitung des Team Event MP am 11.06.2024

Löten

Was ist ein Microcontroller im Gegensatz zum PC?

Was bietet das Demoboard?

Die IDE Thonny

Python

Python ist objektorentiert entwickelt worden. Alles in Python ist ein Objekt. Demnach hat auch Alles Methoden.
In Micropython sind diese häufig nur sehr rudimentär implementiert.

Micropython

Python vs. Micropython

Micropython ist eine an den geringeren Speicher und die Besonderheiten von Microcontrolern angepasste Python Version.
D.h. dass die grundlegenden Konzepte von Python in Micropython vorhanden sind. Allerdings sind nicht alle Methoden der Klassen von Python vorhanden. Andererseits gibt es in Micropython Klassen die in Python nicht existieren. Manches verhält sich in Micropython anders als in Python. Informationen dazu findet man in der Dokumentation zu Micropython: https://docs.micropython.org/en/latest/
Alles in Allem kann man aber sagen, dass man die Anleitungen von Python zum Lernen von Micropython verwenden kann. Wenn mal etwas nicht so funktioniert wie erwartet, dann sollte man in der Micropython Doku nachsehen.

Was unterscheidet Python von anderen Programmiersprachen?

Der auffälligste Unterschied zu anderen Programmiersprachen ist wohl, das Blöcke nicht in {} eingefasst werden, sondern eingerückt werden:

if a > b:
    tue etwas
a = b

Die Einrückung beträgt 4 Spaces - !kein Tab!
Es funktioniert auch mit mehr oder weniger Spaces aber das ist schlechter Stil. Wichtig ist das die Einrückungen immer gleich sind.

Datentypen und Datenstrukturen in Python

Die Datentypen von Python sind recht übersichtlich:

int

Integer sind in ihrer Größe nur durch den Speicherplatz begrenzt.

float

Floats werden mit maximal 7-stelliger Mantisse ausgegeben.
Intern wird mit deutlich mehr Stellen gearbeitet, denn die üblichen float-Rundungs-Fehler treten nicht auf.

str

String ist sowohl Datentyp als auch Datenstruktur.
Chr gibt es nicht.

bool

False
Leere Datenstrukturen und 0.
True
Alles Andere.

None

None ist nichts. Entspricht einer nicht initialisierter Variablen.
Es ist nicht 0!

complex

Python kann auch mit komplexen Zahlen arbeiten.

einfache Variablen

Listen

liste = [1, 2, 3, 'Hallo', 3.14]
>>> liste
[1, 2, 3, 'Hallo', 3.14]

Die Elemente einer Liste sind indexiert.

>>> liste[0]
1
>>> liste[3]
'Hallo'

Tuple

Tuple sind wie Listen aber unveränderbar.

tuple = (1, 2, 3, 'attraktor')

Wenn nur ein Element im Tuple vorhanden ist, ist ein Komma am Ende erforderlich:

>>> tup = (23)
>>> type(tup)
<class 'int'>
>>> tup = (23,)
>>> type(tup)
<class 'tuple'>

Dictionarys

Dictionaries enthalten key:value Paare (item).

dikt = {'eins': 1, 'zwei': 2}

Der Zugriff erfolgt durch den Key:

>>> dikt['eins']
1

Strings

Strings werden in Anführungszeichen eingeschlossen. Es können einzelne ' und doppelte " Anführungszeichen benutzt werden. Das schließende Anführungszeichen muss dem öffnenden Anführungszeichen entsprechen.

Operatoren

Die Operatoren von Python unterscheiden sich eigentlich nicht von den üblichen Operatoren.
Die einzige Ausnahme ist die Division!

/
liefert einen float zurück
>>> 5 / 3
1.666667
//
liefert einen int zurück
>>> 5 // 3
1

Entscheidungen

Für Entscheidungen gibt es:

if x > 0:
    print("Positive")
elif x == 0:
    print("Zero")
else:
    print("Negative")

Schleifen

Es gibt in Python nur 2 Schleifen. Die for- und die while-Schleife.
Die for Schleife entspricht nicht der üblichen for-next-Schleife. Sie ist speziell für die Verarbeitung von Iterables ausgelegt.

for item in my_list:
    print(item)

Eine klassische for-Schleife lässt sich so realisieren:

for index, item in enumerate(my_list):
    print(index, item)

Die while-Schleife entspricht dem Üblichen:

while condition:
    # code

Module / Bibliotheken

Wie für andere Programmiersprachen, gibt es auch für Python Bibliotheken. Wenn es sich um ein einzelnes File handelt heißen sie hier Module. Wenn es eine Sammlung von mehreren Dateien ist werden sie Libraries genannt.
Das Erstellen von Modulen ist in Python ganz einfach. Im Prinzip kann jedes Pythonscript als Modul verwendet werden.
Module werden mit import eingebunden.
Es gibt 4 Möglichkeiten Module einzubinden:

import modul
import modul as mo
from modul import function
from modul import function as func

Beim Einbinden eines Modules wird dieses ausgeführt. Es können also nicht nur Funktionen oder Klassen importiert werden, sondern auch Variablen initiiert oder z.B. eine Wlan-Verbindung aufgebaut werden.
Da es sehr einfach ist ein Modul für Python zu erstellen, gibt für Python eine Unmenge Module für die verschiedensten Anwendungen.
Für Micropython gibt es nicht so viele Module, aber für die meisten Sachen findet man welche:
Es gibt verschiedene Quellen für Module, die nicht direkt Microphyton enthalten sind. Alle sind über das Internet zu erreichen:

Programmieren mit Micropython

Links

https://deasadiqbal.medium.com/python-cheatsheet-5474e14853cb