Python Syntaxbeschreibung
Hilfsfunktionen
|
type(x) |
Zeigt den Typ vom x-Wert an |
|
dir(x) |
Zeigt mögliche Funktionen vom x-Typ an |
|
help(x) |
Zeigt eine Hilfe zum x-Typ an. (Achtung: case-sensitiv) Beispiele: Help(vtcapp) Help(vtcapp.getwithsql) Help(vtcforms.CheckBox.Items) |
|
print 'text' |
Gibt den Text im Debugfenster aus. |
| int(x) | Umwandlung in Integer |
| float(x) | Umwandlung in Float |
| str(x) | Umwandlung in String |
Strings
Ein String wird in Python wie eine Liste behandelt. Die einzelnen Zeichen können iteriert werden. Es gibt folgende Möglichkeiten, Strings zu definieren:
|
Einzeilig |
'string1' oder "string1" |
|
Mehrzeilig |
"""zeile1 zeile2 zeile3""" |
Formatieren von Strings
In VB würde man einen String folgendermassen zusammensetzen:
"Hallo, mein Name ist " + "Tobias" + " und ich bin " + Cstr(18) + " Jahre alt."
In Python macht man das so:
"Hallo, mein Name ist %s und ich bin %i Jahre alt." % ("Tobias", 18)
Im String werden die Platzhalter mit einem % und dem entsprechenden Typ (String, Integer, Float) definiert. Am Schluss werden die Werte für die Platzhalter in einem Tuple nach dem %-Zeichen übergeben.
Diese Variante in Python ist sehr übersichtlich, da alle Variablen am Schluss angegeben werden. Der String wird vollständig dargestellt und wird nicht getrennt durch Sonderzeichen wie [+, &].
|
%s |
Stringwert |
|
%i |
Integerwert |
|
%f |
Floatwert |
Teilstrings
|
a[0:] |
Teilstring von a: ab 1. Zeichen... alle Zeichen |
|
a[0:2] |
Teilstring von a: ab 1. Zeichen... 2 Zeichen |
|
a[3:len(a)-1] |
Teilstring von a: ab 4. Zeichen... bis vorletztes Zeichen |
|
a[:5] |
Teilstring von a: die ersten 5 Zeichen |
|
a + " test" |
Zeichenkette anhängen |
Wichtige Stringfunktionen
|
len(a) |
Die Länge eines Strings. |
|
a.strip() |
Entfernt alle Leerzeichen links und rechts der Zeichenkette. |
|
a.lower() |
Zeichen in Kleinbuchstaben umwandeln |
|
a.upper() |
Zeichen in Grossbuchstaben umwandeln |
|
a.isdigit() |
Überprüft ob der String eine Zahl ist. Wenn True, dann ist eine Umwandlung möglich. |
|
a.replace('1', '2') |
Suchen, Ersetzen. Rückgabewert ist die geänderte Zeichenkette. |
|
a.split(',') |
Trennt die Zeichenkette mit dem angegebenen Separator und gibt eine Liste zurück. |
|
a.find('eile') |
Sucht den Teilstring in der Zeichenkette. Gibt den Index zurück, falls gefunden. Sonst –1 |
|
a.index('eile') |
Sucht den Teilstring in der Zeichenkette. Gibt den Index zurück, falls gefunden. Sonst ValueError. Sinnvoll in einem Try...except. |
|
a.translate() |
Übersetzt den String |
Alle verfügbaren Stringfunktionen erhalten Sie mit dem Befehl:
help(str)
Weitere Informationen
http://docs.python.org/library/stdtypes.html#string-methodshttp://docs.python.org/library/stdtypes.html#string-formatting-operations
Zahlen
Floatwert formatieren
|
'%06.2f'
|
0 – Präfix ist 0 6 – Länge der Zahl 2 – Anzahl Dezimalstellen f – Float |
|
Beispiel |
>>> '%010.2f' % 555.3 0000555.30 |
Initialisieren
Je nachdem, wie ein Wert initialisiert wird, erhält er einen
bestimmten Datentyp. So wird die Initialisierung a = 5 als
Integer interpretiert.
Möchten Sie die Zahl als Floatwert initialisieren, müssen Sie stattdessen a = 5.0 angeben.
|
a = 5 |
Integer |
|
a = 5.0 |
Float |
|
a = 4.35 |
Float |
Operationen mit Zahlen
|
a + 6 |
Addieren |
|
a - 2 |
Subtrahieren |
|
a * 10 |
Multiplikation |
|
a / 10 |
Division |
|
10.0 // 10 |
Division -> integer |
|
pow(a, 2) a ** 2 |
Potenz |
|
5 % 2 |
Modular |
Bei einer Operation mit Integer-Werten erhält man als Resultat einen Integer Wert:
10 / 4 = 2 (Integerwert von 2.5)
Die gleiche Operation mit einem Float-Wert gibt folgendes
Resultat:
10.0 / 4 = 2.5
oder
float(10) / 4 = 2.5
Das bedeutet: Ist einer der Werte ein Float, wird das Resultat immer als Float ausgegeben.
1.5 * 7 = 10.5
1.5 * 6 = 9.0 (Floatwert von 9)
Alle Informationen zu den verschiedenen Zahlenformaten erhalten Sie mit dem Befehl help, z.B.
- help(int)
- help(float)
Weitere Informationen
http://docs.python.org/library/stdtypes.html#numeric-types-int-float-long-complex
Sammeltypen in Python
In Python gibt es 3 verschiedene Sammeltypen.
|
Liste |
Die gewöhnliche Liste. Eine Sammlung von Elementen aus verschiedenen Typen. liste = [] liste = [1,2,3] liste = ["a", 2, obj] |
|
Tuple |
Ein Tuple ist eine Variable aus mehreren Werten. Das Tuple ist nicht veränderbar. Sozusagen eine konstante Liste. Tuples werden beispielsweise für Koordinatenzahlen verwendet, wobei ein Tuple einem Datenpunkt entspricht. Datenpunkt1 = (5,1) Datenpunkte = [(1,1),(2,2),(3,3)] # List of Tuple's Monate = ("Jan", "Feb", "Mär", "Apr", "Mai", "Jun", ...) |
|
Dictionary |
Ein Dictionary ist eine Sammlung von Daten, welche den Wert und einen eindeutigen Schlüssel speichern. Kantone = {"ZH": "Zürich", "ZG": "Zug"} Wochentage = {1: "Mo", 2: "Di", 3: "Mi", 4: "Do", 5: "Fr"} Der erste Teil ist der Key und ist eindeutig. |
Wichtige Listenfunktionen
|
append(x) |
Element [x] hinzufügen |
|
insert(idx, x) |
Element [x] an einer Position [idx] hinzufügen |
|
remove(x) |
Entferne Element [x] |
|
reverse() |
Reihenfolge der Elemente in der Liste umkehren. |
|
pop([x]) |
Gibt das Element aus der Liste zurück und entfernt es gleich. Kann zusammen in einer While-Schleife gut verwendet werden, um in einer Liste zu iterieren.
pop() ohne Parameter gibt das letzte Element in der Liste zurück. While Len(liste)>0: print pop() oder for eintrag in liste: print eintrag del eintrag # falls man das möchte |
|
* index(x) |
Gibt den Index von Element [x] zurück, falls vorhanden. Ansonsten wird eine ValueError zurückgegeben. Diese Funktion kann auch für Strings verwendet werden. >>> 'abc'.index('c') 2 |
|
* count(x) |
Gibt die Anzahl an, wie oft Element [x] in der Liste vorkommt. Diese Funktion kann auch für Strings verwendet werden. >>> 'Hallo, mein Name ist Hans und ich lerne Python.'.count(' ') 8 |
Range
range(from, to, [step])
Beispiele einer Zahlenliste:
range(1,3) -> [1,2]
range(0,10, 2) -> [0,2,4,6,8]
range(1,12, 3) -> [1,4,7,10]
http://docs.python.org/library/stdtypes.html#sequence-types-str-unicode-list-tuple-buffer-xrange
Schleifen in Python
In Python gibt es die if-Abfrage, die for-Schleife und die while-Schleife.
if-Abfrage
Syntax
if <Abfrage>:
<do>
elif <Abfrage>:
<do>
else:
<do>
Beispiel
zahlen = [1,2,3]
if 1 in zahlen:
print '1 vorhanden.'
else:
print 'nicht vorhanden.'
for-Schleife
for <variable> in <liste>
:
<do>
Die For-Schleife in Python kennt den Anfang und das Ende durch die Einrückung und braucht deshalb kein Next.
Beispiel
import vtcapp
projektListe = vtcapp.evalocl("projekt->orderby(code)")
for projekt in projektListe:
print projekt.code # Members werden mit Punkt angesprochen.
Zahlenbeispiel
for i in range(1,11):
print str(i) # Zahlen von 1-10
while-Schleife
Syntax
while <Abfrage>:
<do>
Beispiel
Import vtcapp
While True:
eingabe = vtcapp.inputbox('Zahl eingeben', 'Zahl von 1-10')
if eingabe.isdigit():
if int(eingabe)>=1 and int(eingabe)<=10:
print eingabe
break # Springt aus der Schleife raus
else:
print 'Die Zahl muss zwischen 1 und 10 liegen.'
else:
print '%s ist keine Zahl.' % eingabe
Vergleiche
|
< |
kleiner als |
|
<= |
kleiner oder gleich |
|
> |
grösser als |
|
>= |
grösser oder gleich |
|
== |
gleich |
|
!= |
nicht gleich |
|
< > |
nicht gleich |
|
is |
identisch |
|
is not |
nicht identisch |
|
x in s |
x vorhanden in Liste s |
|
x not in s |
x nicht vorhanden in Liste s |
http://docs.python.org/library/stdtypes.html#comparisons
Funktionen
In Python werden die Funktionen mit dem Schlüsselwort def begonnen. Der Rückgabewert wird mit dem Schlüsselwort return zurückgegeben. In Python wird nicht zwischen Funktion oder Prozedur unterschieden. Es heissen beide def. Die Funktion gibt etwas zurück und die Prozedur nicht.
Produkt zweier Zahlen
def produkt(a, b):
return a*b
Aktive Projekte aus einer Liste
def getAktive(projektListe):
resList = []
for projekt in projektListe:
if projekt.aktiv:
resList.append(projekt)
return resList
Eine Aktivität auf einem bestimmten Projekt erstellen
def erstelleAktivitaet(projekt):
newAkt = vtcapp.createobject("Aktivitaet")
newAkt.projekt = projekt
newAkt.bearbeiter = projekt.projektleiter
# Aktivitaet anzeigen
vtcapp.showdetailform(newAkt)
Aus einer Liste von Projekten zwei Listen mit aktiven und
inaktiven machen
def aktiveTrennen(projektListe):
for projekt in projektListe:
if projekt.aktiv:
aktive.append(projekt)
else:
inaktive.append(projekt)
return (aktive, inaktive) # Tuple of Lists
Der Aufruf würde dann so aussehen:
aktive, inaktive = aktiveTrennen(projektListe)
| erstellt: | 22.02.2010 |
|---|---|
| geändert: | 22.02.2010 |
| Produktlinien: | Expert |
| Module: | Leistung & CRM |
