Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
talit:pythonforcsharp [2020-02-09 21:46] scatalit:pythonforcsharp [2022-12-12 15:48] (aktuell) sca
Zeile 1: Zeile 1:
-====== - Python for C# developer and vice versa ======+====== - Python for C# developers and vice versa ======
  
-===== - 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("Hello World") print("Hello World")
 </code> </code>
 +
 +
 ===== - 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:
 </code> </code>
  
-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; 
 +</code>            
  
 Ein **Kommentar** wird in C# mit dem //\\// und in Python mit dem //#//-Symbol gekennzeichnet. Ein **Kommentar** wird in C# mit dem //\\// und in Python mit dem //#//-Symbol gekennzeichnet.
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; 
 +</code> 
 + 
 +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<int> B = new List<int> { 1, 3, 5, 7, 9 }; 
 +B.Add(11); // erweitert die Liste 
 +B.RemoveAt(1); // entfert das Element mit index 1, also die 3 
 +</code> 
 + 
 +**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 wir folgt deklariert:+In C# wird eine Funktion wir folgt deklariert:
  
 <code csharp> <code csharp>
-public static string NumbersToSting(int a, int b, int c)+public static string NumbersToString(int a, int b, int c)
 { {
-    a.ToString() + b.ToString() + c.ToString();+    return a.ToString() + b.ToString() + c.ToString();
 } }
 </code> </code>
  
-Diese Methode nimmt drei Ints, wandelt diese in Strings um, hängt sie aneinander und giebt sie zurück.+Diese Funktion nimmt drei Ints, wandelt diese in Strings um, hängt sie aneinander und gibt sie zurück.
  
-Die äquivalente Methode in Python sieht wie folgt aus:+Die äquivalente Funktion in Python sieht wie folgt aus:
  
 <code python> <code python>
Zeile 88: Zeile 122:
  
 Erklärung: Erklärung:
-   * Mit **def** wird eine Methode gekennzeichnet. +   * Mit **def** wird eine Funktion 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 des Rückgabewerts** wird nicht angegeben. Hat eine Funktion keinen Rückgabewert (in C#: void), so hat diese Funktion in Python einfach kein return-Statement, alles andere bleibt unverändert.
    * 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 gehört, in geschwungene Klammern geschrieben. In Python gibt es diese nicht. Stattdessen wird der Code mit der **Tabulatortaste eingerückt**.+   * In C# wird der Codeblock, der zur Funktion gehört, in **geschwungenen Klammern** geschrieben. In Python gibt es diese nicht. Stattdessen wird der Code mit der **Tabulatortaste eingerückt**.
  
-===== - Schlaufen =====+===== - Schleifen =====
  
-==== - For-Schlaufe ====+==== - For-Schleife ====
  
 C#: C#:
Zeile 113: Zeile 147:
 </code> </code>
  
-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:+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 Code in beiden Sprachen beinhaltet zwei verschachtelte for-Schleifen und ist gleichwertig:
  
 C#: C#:
Zeile 141: Zeile 177:
 </code>         </code>        
  
-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); 
 +
 +</code>        
 + 
 +Python:         
 +<code python> 
 +for a in A: 
 +    print(a) 
 +</code>  
 +==== - While-Schleife ====
  
 C#: C#:
  • talit/pythonforcsharp.1581284765.txt.gz
  • Zuletzt geändert: 2020-02-09 21:46
  • von sca