Python for C# developer

Ausgabe in der Konsole:

C#:

Console.WriteLine("Hello World");

Python:

print("Hello World")

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.

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.

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.

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.

C#:

int i = 0;
while (i < 5)
{
    Console.WriteLine(i);
    i++;
}

Python:

i = 0
while (i<5):
    print(i)
    i += 1
  • talit/pythonforcsharp.1579032405.txt.gz
  • Zuletzt geändert: 2020-01-14 20:06
  • von sca