**Dies ist eine alte Version des Dokuments!**
Python for C# developer
0.1 Print
Ausgabe in der Konsole:
C#:
Console.WriteLine("Hello World");
Python:
print("Hello World")
1. Typen
Der erste grosse Unterschied in Python im Vergleich zu C# ist, dass Python dynamisch typisier. Soll die Variable a ein Integer mit Wert 7 sein, so kann man einfach schreiben
a = 7
In C# hingegen muss man zuerst den Typ angeben:
int a = 7;
Beachte auch, dass in Python die Zeilen nicht mit einem Semikolon beendet werden.
Der Typ einer Variable kann auch beliebig verändert werden. Folgender Code ist z.B. völlig unproblematisch:
a = 7 a = "Ich bin jetzt ein String" a = False # Boolean a = [1,2,3,4,5] # Liste
Ein Kommentar wird mit dem #-Symbol gekennzeichnet.
1.1 Listen
In C# ist ein Array quasi eine Liste mit konstanter Grösse: es ist unmöglich, ein Array zu erweitern oder zu kürzen. Möchte man dies tun, so kann man eine List verwenden.
In Python erstellt man eine Liste wie folgt:
L = [1,2,3]
Man kann ihr dann wie folgt ein weiteres Element anhängen:
L.append(4)
Speziell an Python ist, dass die Elemente einer Liste beliebige Typen sein können:
K = [1,True,3.14,"hallo",[6,7,8]]
Beachte, dass das letzte Element der Liste K selbst wieder eine Liste ist.
2. Methoden
In C# wird eine Methode wir folgt deklariert:
public static string NumbersToSting(int a, int b, int c) { a.ToString() + b.ToString() + c.ToString(); }
Diese Methode nimmt drei Ints, wandelt diese in Strings um, hängt sie aneinander und giebt sie zurück.
Die äquivalente Methode in Python sieht wie folgt aus:
def numbers_to_string(a,b,c): return f"{a}{b}{c}"
Erklärung:
- Mit def wird eine Methode gekennzeichnet.
- Der Typ des Rückgabewerts wird nicht angegeben. Hat eine Methode keinen Rückgabewert (in C#: void), so hat diese Methode in Python einfach kein return-Statement, alles andere bleibt unverändert.
- Der Typ der Argumente (a,b,c) wird nicht angegeben.
- In C# wird der Codeblock, der zur Methode gehört, in geschwungene Klammern geschrieben. In Python gibt es diese nicht. Stattdessen wird der Code mit der Tabulatortaste eingerückt.
3. Schlaufen
3.1 For-Schlaufe
C#:
for (int i = 0; i < 5; i++) { Console.WriteLine(i); }
Python:
for i in range(5): print(i)
Beachte, dass in Python die Einrückung wahnsinnig wichtig ist. Betrachte dazu den folgenden Code in beiden Sprachen, der zwei verschachtelte for-Schlaufen enthält:
C#:
for (int i = 0; i < 3; i++) { Console.WriteLine("---------------"); Console.WriteLine("i=" + i+ " begin"); for (int j = 0; j < 2; j++) { Console.WriteLine("j=" + j); } Console.WriteLine("i=" + i + " end"); }
Python:
for i in range(3): print("---------------") print(f"i={i} begin") for j in range(2): print(f"j={j}") print(f"i={i} end")
Der erste und dritte print-Befehl gehört zur ersten for-Schlaufe. Der zweite print-Befehl (doppel-Tab) gehört zur zweiten for-Schlaufe.
3.2 While-Schlaufe
C#:
int i = 0; while (i < 5) { Console.WriteLine(i); i++; }
Python:
i = 0 while (i<5): print(i) i += 1