Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung | ||
talit:pythonforcsharp [2020-02-09 21:46] – sca | talit:pythonforcsharp [2022-12-12 15:48] (aktuell) – sca | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | ====== - Python for C# developer | + | ====== - Python for C# developers |
- | ===== - Print ===== | + | ===== - Shortcuts in Visual Studio (C#) ===== |
+ | |||
+ | Die CTRL-Taste bleibt jeweils gedrückt: | ||
+ | |||
+ | * CTRL K + D: Code formatieren (Klammern und Einrückungen richten, hat keinen Einfluss auf Logik des Codes) | ||
+ | * CTRL K + C: kommentiert ausgewählte Codezeilen | ||
+ | * CTRL K + U: unkommentiert ausgewähle Codezeilen | ||
+ | |||
+ | |||
+ | ===== - Ausgabe in Konsole | ||
Ausgabe in der Konsole: | Ausgabe in der Konsole: | ||
Zeile 14: | Zeile 23: | ||
print(" | print(" | ||
</ | </ | ||
+ | |||
+ | |||
===== - Typen ===== | ===== - Typen ===== | ||
- | Der erste grosse Unterschied ist, dass Python **dynamisch typisier** während C# **typsicher** ist. Soll in Python die Variable //a// ein Integer mit Wert 7 sein, so kann man einfach schreiben | + | Der erste grosse Unterschied ist, dass Python **dynamisch typisier** während C# **typsicher** ist. |
+ | |||
+ | Soll in Python die Variable //a// ein Integer mit Wert 7 sein, so kann man einfach schreiben | ||
<code phython> | <code phython> | ||
Zeile 41: | Zeile 54: | ||
</ | </ | ||
- | Dies ist nicht möglich in C# | + | Dies ist nicht möglich in C#: |
+ | <code csharp> | ||
+ | int a = 7; | ||
+ | string b = "Ich bin jetzt ein String"; | ||
+ | bool c = false; | ||
+ | </ | ||
Ein **Kommentar** wird in C# mit dem //\\// und in Python mit dem //#// | Ein **Kommentar** wird in C# mit dem //\\// und in Python mit dem //#// | ||
Zeile 47: | Zeile 65: | ||
==== - Listen ==== | ==== - 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 C# ist ein Array quasi eine Liste mit konstanter Grösse: es ist unmöglich, ein Array zu erweitern oder zu kürzen. |
+ | Der folgende Code erzeugt ein int-Array, welcher genau 5 ints beinhaltet: | ||
+ | |||
+ | <code csharp> | ||
+ | int[] A = new int[] { 1, 3, 5, 7, 8 }; | ||
+ | A[1] = 33; | ||
+ | </ | ||
+ | |||
+ | Die Werte des des Array können geändert werden, die Länge des Arrays kann aber nicht verändert werden. Möchte man dies tun, so kann man eine //List// verwenden: | ||
+ | |||
+ | <code csharp> | ||
+ | List< | ||
+ | B.Add(11); // erweitert die Liste | ||
+ | B.RemoveAt(1); | ||
+ | </ | ||
+ | |||
+ | **Tipp:** Arrays sind performanter als Listen und sind klar zu bevorzugen, wenn von Anfang an klar ist, um wie viele Elemente es sich handelt. | ||
In Python erstellt man eine Liste wie folgt: | In Python erstellt man eine Liste wie folgt: | ||
Zeile 67: | Zeile 101: | ||
- | ===== - Methoden | + | ===== - Funktionen |
- | In C# wird eine Methode | + | In C# wird eine Funktion |
<code csharp> | <code csharp> | ||
- | public static string | + | public static string |
{ | { | ||
- | a.ToString() + b.ToString() + c.ToString(); | + | |
} | } | ||
</ | </ | ||
- | Diese Methode | + | Diese Funktion |
- | Die äquivalente | + | Die äquivalente |
<code python> | <code python> | ||
Zeile 88: | Zeile 122: | ||
Erklärung: | Erklärung: | ||
- | * Mit **def** wird eine Methode | + | * Mit **def** wird eine Funktion |
- | * Der **Typ des Rückgabewerts** wird nicht angegeben. Hat eine Methode | + | * Der **Typ des Rückgabewerts** wird nicht angegeben. Hat eine Funktion |
* Der Typ der Argumente (//a,b,c//) wird nicht angegeben. | * Der Typ der Argumente (//a,b,c//) wird nicht angegeben. | ||
- | * In C# wird der Codeblock, der zur Methode | + | * In C# wird der Codeblock, der zur Funktion |
- | ===== - Schlaufen | + | ===== - Schleifen |
- | ==== - For-Schlaufe | + | ==== - For-Schleife |
C#: | C#: | ||
Zeile 113: | Zeile 147: | ||
</ | </ | ||
- | Beachte, dass in Python die **Einrückung** wahnsinnig wichtig ist. Betrachte dazu den folgenden | + | Beachte, dass in Python die **Einrückung** wahnsinnig wichtig ist. In C# ist die Einrückung irrelevant. Um den Code übersichtlich zu gestalten lohnt es sich aber, die einzelnen Codezeilen sinnvoll einzurücken. Mit dem Shortcut Ctrl + K + D (Ctrl bleibt gedrückt) übernimmt wird diese Arbeit vom Visual Studio übernommen. Wende diesen Shortcut exzessiv an! |
+ | |||
+ | Der folgende | ||
C#: | C#: | ||
Zeile 141: | Zeile 177: | ||
</ | </ | ||
- | Der erste und dritte print-Befehl gehört zur ersten for-Schlaufe. Der zweite print-Befehl (doppel-Tab) gehört zur zweiten for-Schlaufe. | + | Der erste und dritte print-Befehl gehört zur ersten for-Schleife. Der zweite print-Befehl (doppel-Tab) gehört zur zweiten for-Schleife. |
- | + | ||
- | ==== - While-Schlaufe | + | In beiden Sprachen kann ganz einfach durch eine Liste (resp. ein Array) durch itteriert werden: |
+ | |||
+ | C#: | ||
+ | <code csharp> | ||
+ | foreach (var a in A) | ||
+ | { | ||
+ | Console.WriteLine(a); | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | Python: | ||
+ | <code python> | ||
+ | for a in A: | ||
+ | print(a) | ||
+ | </ | ||
+ | ==== - While-Schleife | ||
C#: | C#: |