zurück Home

Python

Allgemeines

Python ist eine Interpreter-Sprache. Die Befehle werden erst zum Zeitpunkt der Ausführung compiliert. Daher ist die Ausführung relativ langsam. Fehler werden meistens erst bei der Ausführung des Codes erkannt

Homepage

http://python.org Enthält auch Download-Links für Windows und Linux

Installation

Viele Linux- und Unix-Installationen bringen Python mit.

MicroPython

Läuft auf ESP8266, ESP32, Raspberry Pi Pico Hat nur eine begrenzte Standardbibliothek
Syntax Zeilenwechsel = Befehlsende Unterstrukturen müssen eingerückt werden.
Immer gleiche Einrückung verwenden (Leerzeichen oder Tab.
if temp < 21:
  print("Zu kalt!")
elif temp > 25:
  print("Zu warm!")
else
   print("Angenehm!")
Datentypen atomare Typen
  • float
  • int
  • bool
  • str
Abfrage
type(a)
...class 'int'
dynamische Typisierung a = 42 -> legt eine neue Integer-Variable namens a an und weist ihr den ganzzahligen Wert 42 zu.
a = 2.17 ->  a wird ein float-Objekt, selbst wenn es zuvor ein int-Objekt war.
Explizite Deklaration
 
Implizite Deklaration
a = 32  integer
b = 3.14  float
c = True  bool
d = "Txt" string
e = 42 / 5  float
f = 42 //5 integer
Listen Liste erzeugen und abfragen
numbers = [1, 2, 3]
numbers  [0] -> 1
numbers  [-1] -> 3
numbers  [1:] -> [2,3]
Länge der Liste abfragen
len(numbers)  -> 3
Liste erweitern
numbers.append (4)
numbers -> [1,2,3,4]
numbers[-1] = 42
numbers -> [1,2,3,42] 
extend .extend()
Eine Liste kann um eine 2. Liste erweitert werden.
x = [1, 2, 3]
y = [4, 5]
x.extend(y)
print(x)
[Out]: [1, 2, 3, 4, 5]
Verschachtelte Listen employees = [['Homer', 42], ['Jane', 37], ['Peter', 53]] Abfrage
employees = [1] -> ['Jane', 37]
employees = [1][0]  -> 'Jane'
employees = [1][1]  -> 37
Wertzuweisung
employees [1][0] = 'Susi'
employees = [1][0]  -> 'Susi'

Tupel

speichern ebenfalls Objekte unterschiedlichen Typs
Deklaration mit runden Klammern anstelle eckiger Klammern:
employees = (('Homer', 42), ('Jane', 37), ('Peter', 53))
unveränderlich
keine append-Funktion
keine Schreibzugriffe
Dictionaries assoziative Arrays, Hash-Maps bilden Schlüssel-Objekte auf Werte ab. john = {
'name': 'John Doe',
'age': 42,
'address': {
  'street': 'Main Street',
  'postal-code': 12345,
  'city': 'Springfield' }
}
E/A print("Zu kalt!")
Ablaufsteuerung IF
if Logische Bedingung: ...
elif Alternative Bedingung: ... Beliebig oft
else: ... Nur einmal
while for
Module Speicherung in ASCII-Text-Dateien: Modul.py Hauptprogramm:
 __name__ == “__main__”
Wird das gleiche Programm von einem anderen Programm aufrufen, so ersetzt der Interpreter den Programmnamen __main__ durch den Aufrufnamen. if __name__ == "__main__":
print ("Ausführung nur bei direktem Aufruf als Hauptprogramm")
else:
print ("Ausführung nur, bei Aufruf durch ein anderes Modul")
Funktionen Definition ohne Parameter
def hello():
  print("Hello, world!")
Definition mit Parameter
def greet(name):
  print("Hallo,", name + "!")
Aufruf
hello()
greet("jens")
Rückgabewert

def sum(a, b):
  return a + b

x = sum(3, 5)  -> x = 8
Mehrfache Rückgabewerte

def mult_sum(a, b):
  return a + b, a * b

Das Ergebnis ist ein Tupel
Keyword-Argumente

mult_sum(b = 5, a = 3)
Default-Argumente
def mult_sum(a, b = 0):
  return a + b, a * b

Ruft man diese Funktion nur mit einem Argument auf, wird der Parameter b automatisch auf 0 gesetzt.
Bibliothek Einbindung von Fremdmodulen Einbinden der Bibliothek time

import time
time.sleep()
Teilweise Einbindung

from time import sleep -> Es wird nur die Funktion sleep eingebunden
sleep(1) -> Der Name der Bibliothek kann beim Aufruf weggelassen werden.
yield The yield statement sends a value back to the caller, but maintains the function’s state def gen_yield():
yield "hel"
yield "lo "
yield "wor"
yield "ld!"def func_return():
return "hel"
return "lo "
return "wor"
return "ld!"
for value in generator_yield(): print(value, end="") [Out]: "hello world!"
for value in generator_return(): print(value, end="") [Out]: "hel" print(start, end)

Teil von

Programmier - Sprachen Software EDV und DFÜ

Impressum                         Zuletzt geändert am 26.07.2020 11:39