Konstrukt Java Javascript C# PHP Python
Kommentar // Zeile
/* Block */

/** Beschreibung Methode für JavaDoc */
// Zeile
/* Block */
// Zeile
/* Block */

/// <summary>
/// Method: Required designer variable.
/// </summary>
// Zeile
/* Block */

php.exe -a // interaktive shell
# Zeile
""" Block """

# Installation von Modulen
import pandas
c:>pip install pandas
c:>python -m pip install pandas

# Besonderheiten
pass #Leerer Befehl
Ausgabe System.out.println("Hallo Welt");
// Im Text folgend abgekürzt mit sout
console.log("Hallo Welt");
// Im Text folgend abgekürzt mit clog


alert("Ihr Name lautet "+ihrName);

document.write("<h1>Hello JavaScript!</h1>");

//HTML verändern

document.getElementById("demo").innerHTML = "Hello";
document.getElementById("demo").firstChild.nodeValue="Hello";
document.getElementById('myImage').src='pic_bulbon.gif';
document.getElementByTag('h1').style.display='none';

//Webseite überschreiben

document.open();
document.write("...");
document.close();

//Multiline Strings

var s5 = `${s1}-${s2}`;

var s6 = `Multiline String
with special
characters: \"a\" `;

//using System;
Console.WriteLine("Hallo Welt");
// Visual Studio: cw<Tab><Tab>
// Im Text folgend abgekürzt mit CW

Console.WriteLine($"Sum of {sum} elements is {numEl}."); // {} setzt Variablenwert ein.

Console.WriteLine("x={0} y={1} z={2}", x, y, z);

Console.WriteLine(@ "Multiline String
with
special
characters: ""a"" ");
<?php ... ?> // Code auf Webseite ausführen
<?= $wert ?> // Wert in Webseite einfügen
// Ausgabe auf Webseite, Verknüpfung mit '.'
echo "Ihr Name lautet $name" . "<br>\n";
print "Ihr Name lautet $name" . "<br>\n";

// Ausgabe von Variablen
print_r(), var_dump() gibt Wert und Datentyp aus:
echo var_dump($res); // array(3) {[0]=>int(1) [1]=>int(2) [2]=>int(3)}

$s6 = <<<EOD
Multiline String
with special
characters: "a"
EOD;

print("Hallo Welt") 
end="")

print(f'level{level}_data')

print("Hallo"," ","Welt") #Hallo Welt
print(1,2,3,4,5,sep="-") #1-2-3-4-5


print("""Multiline String
with special
characters: "a" """)

Eingabe

//import java.util.Scanner;
Scanner sc = new Scanner(System.in);
System.out.print("Wie heißt Du: ");
String name = sc.nextLine();
//sc.nextInt() sc.nextDouble(), ...
System.out.print("Hallo "+name);

var ihrName = prompt("Bitte Name eingeben","Markus");

var ok = confirm("Wirklich?");

<!doctype HTML>
<head>
  <meta charset="utf-8">
  <title>Test JavaScript</title>
</head>
<body>
  <script>
    var ihrName="Tom";
    document.write("<h1>Hello JavaScript!< /h1 >");
    document.write("<p>Variable ihrName="+ihrName+"<p>");
    var ihrName=prompt("Bitte Name eingeben","Markus");
    alert("Ihr Name lautet "+ihrName);
    document.write("<p>Variable ihrName="+ihrName+"<p>");
  </script>
</body>
</html>

<body>
<p><label>Vorname</label> <input id="idVorname" size="10"> </p>
<p><label>Nachname</label> <input id="idNachname" size="10"> </p>
<p><input id="idSenden" type="button" value="senden"></p>
<p id="idBegruessung"></p>
<script src="util.js"></script>
<script>
  handleEvent("idSenden",  "click", senden);
  handleEvent("idVorname", "returnKey", senden);
  handleEvent("idNachname","returnKey", senden);
function senden(){
  document.getElementById("idBegruessung")
  .innerHTML="Hallo"
    +document.getElementById("idVorname").value
    +" "
    +document.getElementById("idNachname").value
    +"!";}
</script>
</body>

//using System;
Console.WriteLine("Wie heißt Du: ")

string name=Console.ReadLine();
Console.WriteLine("Hallo "+name)
Console.ReadKey();

//formular.html
<form action="auswertung.php" method="post">
   <input type="text" name="name"> …
</form>
//auswertung.php
<?php 
    if (isset($_REQUEST["name"]) && $_REQUEST["name"]!="") {
       $name = $_REQUEST["name"];
      echo "Hallo $name!<br>\n";
    } ?>

//Session
// Session starten
session_start();
// Variable beim ersten Mal anlegen
if (!isset($_SESSION['counter'])) $_SESSION['counter']=0;
// Variable nutzen
$counter=$_SESSION['counter'];
$counter++;
echo($counter . "<br>\n");
// Neuer Wert wieder in Session-Variable speichern
$_SESSION['counter']=$counter; ?>
<p>F5 drücken zum Hochzählen!</p>

//In Textdatei speichern
<?php
   error_reporting(0);
   $item=$_REQUEST["item"];
   if (isset($_REQUEST["clear"])) {
      unlink("todo1.txt"); echo "ToDo Liste gelöscht!<br>\n"; 
   } elseif (isset($item)&&$item!="") {
      file_put_contents("todo1.txt","$item\n",FILE_APPEND); }
   //Liste ausgeben
   $content = file_get_contents("todo1.txt");
   if (isset($content)) {
       $lines = explode("\n",$content);
       $nr=1;
       foreach($lines as $line) {
           echo "$nr: $line<br>\n";
           $nr++;
        }
    } ?>

input("Wie heißt Du: ")) #gibt str zurück
int(input("Dein Alter: "))


Variablen / Datentypen int, long, float, double, boolean, char, String, …
int iZahl1=10;
final double PI=3.14159265;
String text="Hallo Welt";

var iZahl1 = 10;
const PI = 3.14159265;
var text = "Hallo Welt";
var text2 = 'This is also a string’;

Primitive Datentypen: number, string, boolean, undefined, null

typeOf text // number, string, boolean, undefined

Werttypen:
  int, long, float, double, char, bool
  enum E {...},
  struct S {...}: //wie class, keine Vererbung, zum Speichern von Daten   
  (T1, T2, ...) //Tupel

Verweistypen:
  string object
  class c {...}
  interface I {...}:
  int[] a, int[,] a2, int[][] aJagged // array aus array
  delegate int D(...): // Methoden werden Entitäten, simuliert Pointer auf Methoden


Nullable Typen: int?, string?, ...
int? myNullie=null; myNullie = 1;

int iZahl1=10;
const double PI=3.14159265; public readonly double PI=3.14159265;
string text="Hallo Welt";

Alle Typen (auch primitive) erben von object
var kann genutzt werden, wenn der Typ klar ist: var s = new List<int>();

$str = "foo";     // a string
$i = 12;           // an integer

$x == $y             // gleicher Wert
$x === $y          // ... und gleicher Typ
$a1 == $a2        // auch für Arrays

iZahl1=10
PI = 3.14159265 // nicht readonly
text = "Hallo Welt"
Datentypen: int, float, str, bool  #True/False, None
print(type(iZahl1))  

Variablen umwandeln (Typecast) iZahl1 = (int) fZahl1;
iZahl1 = Integer.valueOf(sZahl1);
sZahl1 = String.valueOf(iZahl1);

var iZahl1 = Math.floor(fZahl1) //Nachkommastellen abschneiden.

var iZahl1=parseInt("3.14"); //parseFloat("3.14");  isNaN(a) // keine Zahl

iZahl1 = (int) fZahl1; 
iZahl1 = Convert.ToInt32(fZahl1);

object o1 = iZahl1 //boxing

iZahl1 = Contert.ToInt32(sZahl1);
sZahl1 = Convert.ToString(iZahl1);
var_dump($int);   // int(12)
is_int($int);            // true
is_numeric($int);  // true
gettype($bool);    // prints out "boolean"
$i2 = (int)"1234"; // $i2=1234
isset($i3);             // false

int(...), float(...) und str(...)

Operatoren + - * / %
&& || !
==   <   <=   >   >=   !=   .equals()
int zufall = (int)(Math.random()*6)+1; //1...6

"a" == "a"

int zufall = Math.floor((Math.random()*6))+1;  

eval(3+5)
+ - * / %
&& || !
==   <   <=   >   >=   != 
"a" == "a"

Random rnd = new Random();
int rndNumber = rnd.Next(1, 7); //1...6

+ - * / %
&& || !
==   <   <=   >   >=   != 
"a"=="a" "a"==="a"

$wuerfel = rand(1,6); //1...6

+ - * / % 


y = 5 // 2 # Ganzahldivision 

a = 3**2   # Exponent 3^2 = 9 

and, or, not, ==, is, is not
t1 == t3 # gleicher Inhalte wie equals() in Java
t1 is t2 # Referenz auf dasselbe Objekt

math.sin   # sin,cos, pi


import random
zufall1 = random.randint(1, 6) //1...6
begruessungen = ["Hi","Servus","Tach","Moin"]
begruessung = random.choice(begruessungen)

 


 

if-Bedingung

if (zahl>0) {
  sout("positiv");
} else if  (zahl==0) {
   sout("Null");
} else {
   sout("negativ");
}

if (zahl>0) {
  clog("positiv");
} else if  (zahl==0) {
   clog("Null");
} else {
   clog("negativ");
}

if (zahl>0) {
  CW("positiv");
} else if  (zahl==0) {
   CW("Null");
} else {
   CW("negativ");
}

if zahl>0:
 print("positiv")
elseif zahl==0:
  print("Null")
else: 
 print("negativ");


 if a > 0:
    print("positiv")
elif a == 0:
    print("Null")
else:
    print("Negativ")


# einzeilig
if a > b: print("a is greater than b")

# umgedreht
print("A") if a > b else print("B")
temp = -a if (a<0) else a

case...switch int monat = 3;
switch (monat) {
  case 1:  monatString = "Januar"; break;
  case 2:  monatString = "Februar"; break; ...
  case 12: monatString = "Dezember"; break;
  default: monatString = "Ungültiger Monat"; break;
}
int monat = 3;
switch (monat) {
  case 1:  monatString = "Januar"; break;
  case 2:  monatString = "Februar"; break; ...
  case 12: monatString = "Dezember"; break;
  default: monatString = "Ungültiger Monat"; break;
}
int monat = 3;
switch (monat) {
  case 1:  monatString = "Januar"; break;
  case 2:  monatString = "Februar"; break; ...
  case 12: monatString = "Dezember"; break;
  default: monatString = "Ungültiger Monat"; break;
}
$monat = 3;
switch (monat) {
  case 1:  $monatString = "Januar"; break;
  case 2:  $monatString = "Februar"; break; ...
  case 12: $monatString = "Dezember"; break;
  default: $monatString = "Ungültiger Monat";
}

switcher = {
    1: "Januar",
    2: "Februar",
    12: "Dezember"
}
monat = 13
print(switcher.get(monat,"ungültiger Monat"))


Schleifen

for(int i=0;i<10;i=i++) {sout("Zahl "+i);}

for(String el : sArray) { ...}

int i=1; while(i<=10) { sout("Zahl "+i); i++; }

int i=1; do { sout("Zahl "+i); i++; }
while(i<=10);

s. Java

for(let el of array) { ...}
//elements array[0],array[1],...
for(let el in array) { ...} //index 0,1,2,...

for(int i=0;i<10;i++) {Cw("Zahl "+i);}
foreach (string el in sArray) {...}

int i=1; while(i<=10) { Cw("Zahl "+i); i++; }

int i=1; do { Cw("Zahl "+i); i++; }
while(i<=10);

for($i=0;$i<10;i++) {echo("Zahl $i<br>\n");}
foreach($sArray as $el) {...}

$i=1; while($i<=10) { echo("Zahl $i<br>\n"); $i++; }

$i=1; do { echo("Zahl $i<br>\n"); $i++; }
while($i<=10);

for i in range(10): print("Zahl ",i)

for i in range(5,10):      # 5 bis < 10, Schrittweite 1
for i in range(0,10,2):    # 0 bis < 10 mit Schrittweite 2
for i in range(10,0,-1):   # 10 bis 1 mit Schrittweite -1


fruits = ['apple', 'raspberry', 'strawberry','banana', 'mango']
for i in range (0, len(fruits)):
    print ( zahlen[i] )


for fruit in fruits:
    print(fruit)


for i, fruit in enumerate(fruits)

    print(i,fruit)


i = 10
while i > 0:
    print(i)
    i -= 1
Arrays

int[] zahlen = {1,2,3,4,5,6};
int[] zahlen = new int[1000];

String alpha = new String[]{"a","b","c"};

for(int i=0;i<=zahlen.length;i++) { zahlen[i]=i; }

for( int zahl : zahlen) {sout(zahl);}

sout(Arrays.toString(zahlen)); //import java.util.Arrays;

var zahlen = [1,2,3,4,5,6];
var zahlen = new Array(1000);
String alpha = ["a","b","c"];

alpha[3] // undefined, kein Fehler

for(var i=0;i<=zahlen.length;i++) { zahlen[i]=i; }

int[] zahlen = {1,2,3,4,5,6};

int[] zahlen = new int[1000];

string alpha = new string[]{"a","b","c"};

for(int i=0;i<=zahlen.Length;i++) { zahlen[i]=i; }

foreach( int zahl in zahlen) {Cw(zahl);}

string res = string.Join(",", alpha); CW(res)

$personArray = array(); // oder =[];
$personArray[0]="Peter"; $personArray[1]="Monika"; //... 
$personArray = ["Peter", "Monika", "Hans"];
$personArray[] = "Tina"; // Array / Liste erweitern
$tabArray = [[22.3, 18.5],[21.6, 19.7], [24.6, 20.1]];

$dict=array("house"=>"Haus", "cat"=>„Katze");
//$dict = []; $dict["house"]="Haus"; $dict["cat"]="Katze";
// array( [house] => Haus [cat] => Katze )

  • * Keine Größenangaben des Arrays (Arrays = Listen = Maps).
  • * for($x = 0; $x < count($personArray); $x++) {...}
  • * foreach($personArray as $person) {echo $person;}
  • * foreach($dict as $key => $value) {echo "$key = $value";}
  • * Funktionen: sort, rsort, array_values, ...
  • zahlen = [1,2,3,4,5,6]
    alpha = ["a","b","c"]
    thislistmixed=["abc", 34,true,40,="male"]

    len(mylist) 
    type(mylist)


    for i in range (0, len(zahlen)): zahlen[i]=i


    res = ", ".join(alpha)


    # Zugriff
    thislist = ["apple", "banana", "cherry", "orange", "kiwi", "melon", "mango"]
    thislist[1]   #banana
    thislist[-1] #cherry
    thislist[2:5] #['orange', 'kiwi'] 5=excluded
    thislist[:4]  #['apple', 'banana', 'cherry', 'orange'] 4=excluded
    thislist[4:]  #['kiwi', 'melon', 'mango']
    thislist[-4:-1] #['orange', 'kiwi', 'melon'] -1=excluded

    thislist[0:5:2] #["apple", "cherry", "kiwi"] jedes zweite
    thislist[::2] # gesamte Liste jedes zweite
    thislist[::-1] # liste rückwärts
    thislist[-3::-1] # vom drittletzten Element rückwärts (Schrittweite -1)


    2Dim-Arrays float[][] noten = new float[2][3];
    for(int zeile=0;zeile<noten.length;zeile++) {
      for(int spalte=0;spalte<noten[zeile].length;spalte++) {
      noten[zeile][spalte]=((int)Math.random()*6)+1; } }


    noten = Array.from(Array(2), () => new Array(3));

    s. Java analog

    int[,] a2 = new int[10, 5];      //2-dim
    int[,,] a3 = new int[10, 5, 2];  //3-dim

    float[,] noten = new float[2, 3];
    for (int zeile = 0; zeile < noten.GetLength(0); zeile++) {
        for (int spalte = 0; spalte < noten.GetLength(1); spalte++) {
            noten[zeile,spalte] = rnd.Next(1, 7);
            CW(noten[zeile, spalte]+" ");
        }
        CW();
    }

    //jaggedArray

    int[][] a = new int[3][];       

    for (int i = 0; i < a.Length; i++) a[i] = new int[10];
    // oder a[0] = new int[10]; a[1] = new int[5]; a[2] = new int[20];

    a[0][9] = 1;a[1][4] = 2;

    for (int z = 0; z < a.Length; z++) {
        for (int s = 0; s < a[z].Length; s++) {
            CW(a[z][s]+" ");
        }
        CW();
    }

    $array2x3 = array_fill(0, 2, array_fill(0, 3, "");
    s. Java analog

    b1 = [[1,2,3],[11,12,13],[21,22,23]]
    # [[1, 2, 3], [11, 12, 13], [21, 22, 23]]

    matrix = []
    matrix.append([])
    matrix.append([])
    matrix[0].append(0)
    matrix[0].append(1)
    matrix[1].append(2)
    matrix[1].append(3)
    # [[0, 1], [2, 3]]


    #Auf Element zugreifen
    matrix[0][1] #1


    matrix = [[0 for spalte in range(5)] for zeile in range(2)]
    # [[0, 0, 0, 0, 0], [0, 0, 0, 0, 0]] [2][5]-Array


    Tupel 
    (Gruppieren von Variablen)
    % % (double Sum, int Count) t2 = (4.5, 3);
    CW($"Sum of {t2.Count} elements is {t2.Sum}.");
    // Output: Sum of 3 elements is 4.5.
    function foo() {return array('a', 'b');}
    list($a, $b) = foo();

    //Sind unveränderlich (immutable)!
    produkt = ("Tesla", "Model X", 100000)
    produkt[0]

    tup = 1, 2, 3   # Klammern können auch weggelassen werden
    type(tup)       # tuple

    # Destrukturierung: Das Tupel wird in seine Einzelteile zerlegt und verschiedenen Variablen zugewiesen
    person1 = ("Harry", "Potter", 11) 
    vorname, nachname, alter = person1
    print(vorname, alter)


    #Ringtausch
    a, b = b, a   # also: (a, b) = (b, a)


    #Schleife
    for item in (d1,d2):
       print("item:",item) 
    #d1
    #d2


    # Liste von Tupeln
    personen = [person1, person2, person3]   
    for person in personen:
        for wert in person:
            print(wert)
    Methoden / Funktionen public static void printHalloWelt() { sout("Hallo Welt"); }

    public static double max(double a, double b) {
       if(a<b) return a; else return b; }

    function printHalloWelt() { console.log("Hallo Welt"); }

    function max(a, b) {
       if(a<b) return a; else return b; }

    //Funktionen an Variablen binden
    var summeFkt = function(a,b) {return a+b;}
    var summeFkt = (a,b) => {return a+b;}

    //Funktionen als Wert übergeben
    function meineSumFkt(summeFkt,a,b) {return summeFkt(a,b);}

    //Überladen / Defaultwerte für Parameter
    function mult(a=0,b=1) {…}
    //Vorsicht: Überladen function mult(a){}, function mult(a,b){} funktioniert nicht (Unterschied zu Java).

    public static void PrintHalloWelt() { CW("Hallo Welt"); }

    public static double Max(double a, double b) {
       if(a<b) return a; else return b; }

    delegate double Function(double x);
    class DelegateExample{
        static double[] Apply(double[] a, Function f){
            var result = new double[a.Length];
            for (int i = 0; i < a.Length; i++) result[i] = f(a[i]);
            return result; }

        public static void Main(){
            double[] a = { 0.0, 0.5, 1.0 };
            double[] squares = Apply(a, (x) => x * x);
            double[] sines = Apply(a, Math.Sin);
        }
    }
    //In PHP müssen globale Variablen in Methoden deklariert werden:

    global $iForAll=10;
    // ändert globale Variable in Methode
    function changeI($newI):
        global $iForAll;
        $iForAll=$newI;
    changeI(20);
    print($iForAll); //20

    //Das gleiche geht auch mit dem $GLOBALS-Array:
    changeI($newI):
       $GLOBALS['iForAll']=$newI;

    // Datentypen festlegen
    declare(strict_types=1); // strict requirement
    function addNumbers(float $a, float $b) : int { return (int)($a + $b); }

    // Pass by reference
    function add_five(&$value) { $value += 5; }
    $num = 2;
    add_five($num);

    def max(a,b):
        if (a>b):
            return a
        else:
            return b print(max(1,2))

    # mit Typangaben
    def verdopple(zahl: int) -> int:
        """Verdoppelt zahl"""
        return zahl * 2

    # Doku anzeigen
    help(verdopple)

    #Defaults, Überladen
    #keyword Argument vs positionales Argument
    def begruesse(nachname, anrede="Frau"):
        print("Hallo", anrede, nachname)
    begruesse("Schmidt", "Herr")
    begruesse("Meier") ​
    begruesse(anrede="Präsident", nachname="Müller")

    #Rückgabe mehrerer Werte
    def myFullName():
        name1="Tom"
        name2="Schlau"
        age=21
        return name1,name2,age
    vorname,nachname,alter = myFullName()

    #Höhere Ordnung
    def wiederhole(anzahl, eine_funktion):   
        for i in range(anzahl): eine_funktion()
    wiederhole(3, sage_hallo) 

    #In Python müssen globale Variablen in Methoden deklariert werden:

    global iForAll=10;
    # ändert globale Variable in Methode
    def changeI(newI):
        global iForAll
        iForAll=newI
    changeI(20)
    print(iForAll) #20
    Strings String s1 = "Hallo";
    String s2 = new String("Welt");
    String s3 = s1 + "-" + s2; // "Hallo-Welt"

    int len = s1.length(); // len=5
    if (s1.equals(s2)) {sout("ja");}

    char second = s1.charAt(1); // second='a'
    String teil = s2.substring(1,3); // teil="el" (1 inklusiv, 3 exklusiv)
    if (s1.startsWith("Hallo")) {sout("Begrüßung");}
    int aPos = s1.indexOf("ll"); // aPos=2 (-1 falls nicht gefunden)

    s3 = s1.replace("ll","LihaL"); // s3 = "HaLihaLo"
    s3 = s3.replaceAll("(.*)-(.*)","$2-$1"); // regulärer Ausdruck; s3 = "Welt-Hallo"

    s2= "  Hallo     ".trim(); // s2= "Hallo"

    String plz = String.valueOf(79100); // plz="79100"

    String[] res =  s3.split("-"); // res = {"Hallo ","Welt"}

    s. Java

    var len = s1.length;
    s1==s2 // bzw s1===s2 Typen sind auch gleich


    //Multiline Strings

    var s5 = `${s1}-${s2}`;

    var s6 = `Multiline String
    with special
    characters: \"a\" `;

    string s1 = "Hallo";
    string s2 = "Welt";
    string s3 = s1 + "-" + s2; // "Hallo-Welt"
    string s4 = string.Format("{0}-{1}", s1, s2);
    string s5 = $"{s1}-{s2}"; // {} setzt Variablenwert ein.
    string s6 = @"
    Multiline String
    with special
    characters: ""a"" 
    ";
    filename=@"c:\sandbox\marks.xlsx";

    int len = s1.Length; // len=5
    if (s1 == s2) { CW("ja"); }

    char second = s1[1]; // second='a'
    string teil = s2.Substring(1, 2); // teil="el" (1 inklusiv, 2 Länge)
    if (s1.StartsWith("Hallo")){ CW("Begrüßung"); }

    int aPos = s1.IndexOf("ll"); // aPos=2 (-1 falls nicht gefunden)

    s1 = s1.Replace("ll", "LihaL"); // s1 = "HaLihaLo"
    s2 = "  Hallo     ".Trim(); // s2= "Hallo"
    string plz = Convert.ToString(79100); // plz="79100"

    string[] res = s3.Split('-'); // res = {"Hallo ","Welt"} 
    $s1 = "Hallo";
    $s2 = "Welt";
    $s3 = $s1 . "-" . $s2; // "Hallo-Welt"
    $len = strlen($s1); // $len=5

    $teil = substr($s2,1,3); // $teil="el" (1 inklusiv, 3 exklusiv)
    $aPos =strpos($s1,"ll") // $aPos=2 (false falls nicht gefunden)

    str_replace("ll","LihaL",$s3); // $s3 = "HaLihaLo"
    preg_replace('(.*)-(.*)'/i,$s3, $s3New); // regulärer Ausdruck; $s3New = "Welt-Hallo"
    $s2= trim($s2); // $s2= "Hallo"
    $plz = strval(79100); // $plz="79100" 
    $res = explode('-',$s3); // $res = ["Hallo ","Welt"]
    s1 = "Hallo"
    s2 = 'Welt'
    s3 = s1 + "-" + s2;  # "Hallo-Welt"
    s3 = "My name is John, I am " + str(age)
    s4 = "Ein String \
    über \
    mehrere Zeilen"
    string s5 = f"{s1}-{s2}"; # {} setzt Variablenwert ein.
    string s6 = """
    Multiline String
    with special
    characters: "a" 
    """
    filename=r"c:\sandbox\marks.xlsx";

    len = len(s1)
    if (s1 == s2): ...

    second = s1[1];  # second='a'
    teil = s2[1, 2];  # teil="el" (1 inklusiv, 2 exklusiv)
    if (s1.startswith("Hallo")): ...

    aPos = s1.find("ll");  # aPos=2 (-1 falls nicht gefunden)

    s1 = s1.replace("ll", "LihaL");  # s1 = "HaLihaLo"
    s2 = "  Hallo     ".strip();  # s2= "Hallo"
    plz = str(79100); # plz="79100"

    res = s3.split("-");  # res = ["Hallo ","Welt"]

    # String durchlaufen
    for i in range(len(s)): print(s[i])
    for c in s: print(c)
    # String umdrehen
    s1[::-1]
    Listen ArrayList<String> myList = new ArrayList<String>();
    myList.add("Hallo");
    int len = myList.size(); // len=1

    boolean res=myList.contains("Welt"); // res=false
    int aPos = myList.indexOf("Hallo"); // aPos=0 (-1 falls nicht gefunden)

    String el1=myList.get(0); // el1="Hallo"
    myList.set(0, "Hallo Welt");
    myList.remove(0);

    // Liste kopieren / clonen
    ArrayList<String> myListCopy = new ArrayList<>(myList);
    ArrayList<String> myListCopy =  (ArrayList<String>) myList.clone();

    // Array in Liste umwandeln
    ArrayList<String> myList1 = new ArrayList(Arrays.asList(array));

    // Liste in Array umwandeln
    String[] array2 = myList2.toArray(new String[]{});

    var myList = [];

    myList.push("hallo"); //hängt ans Ende der Liste an
    myList.unshift("erstes") //hängt an den Anfang der Liste an
    var len = myList.length;

    var res = myList.includes("Welt);

    indexOf s. Java

    var el1 = myList[0];
    myList[0]="Hallo Welt";
    myList.pop(); // löscht Element am Ende
    myList.shift(); // löscht Element am Anfang

    function arrayRemove(arr, value) {
        return arr.filter(function(el){ return el != value; }); }
    var myList = arrayRemove(myList,"Hallo Welt"); 

    List<string> myList = new List<string>();
    myList.Add("Hallo");
    int len = myList.Count; // len=1

    bool res = myList.Contains("Welt"); // res=false
    int aPos = myList.IndexOf("Hallo"); // aPos=0 (-1 falls nicht gefunden)

    String el1 = myList[0]; // Alternativ .ElementAt()
    myList[0]="Hallo Welt";

    myList.RemoveAt(0);

    // Liste kopieren / clonen
    List<string> myListCopy = new List<string>(myList);  //1.
    List<string> myListCopy = myList.ToList();                  //2.

    // Array in Liste umwandeln
    int[] a = new int[] { 1, 2, 3, 4 };
    List<int> myIntList = new List<int>(a);    //1.
    myIntList = a.ToList();                             //2.
    myIntList.AddRange(a);                          //3.

    // Liste in Array umwandeln
    a = myIntList.ToArray();

    s. Arrays

    siehe Arrays

    #Contains
    if "apple" in thislist: ...


    #Setzen / Ersetzen
    thislist = ["apple", "banana", "cherry", "orange", "kiwi", "melon", "mango"]
    thislist[1]</b> = "blackcurrant"                   #['apple', 'blackcurrant', 'cherry', 'orange', 'kiwi', 'mango']     replace
    thislist[1:3] = ["blackcurrant", "watermelon"] #['apple', 'blackcurrant', 'watermelon', 'orange', 'kiwi', 'mango']   replace
    thislist[1:2] = ["blackcurrant", "watermelon"] #['apple', 'blackcurrant', 'watermelon', 'cherry', 'orange', 'kiwi', 'mango'] insert
    thislist[1:3] = ["blackcurrant"] #['apple', 'blackcurrant', 'orange', 'kiwi', 'mango'] delete


    #insert / append
    thislist = ["apple", "banana", "cherry"]
    tropical = ["mango", "pineapple", "papaya"]
    thislist.insert(2, "watermelon")  #['apple', 'banana', 'watermelon', 'cherry']
    thislist.append("orange")         #['apple', 'banana', 'cherry', 'orange']
    thislist.extend(tropical)         #['apple', 'banana', 'cherry', 'mango', 'pineapple', 'papaya'] oder
    thislist = thislist + tropical


    #remove 
    thislist = ["apple", "banana", "cherry"]
    thislist.remove("banana")         #['apple', 'cherry']
    thislist.pop(1)                            #['apple', 'cherry']
    thislist.pop()                               #['apple', 'banana']
    thislist.clear()                             #[]


    #Loop zip 
    vornamen = ["Anna", "Berta", "Carla"]
    nachnamen = ["Adler", "Bär", "Chamäleon"]
    for vn, nn in zip(vornamen, nachnamen):   # erzeugt [("Anna", "Adler"), usw.]


    a = [1, 2, 3]
    b = ['one', 'two', 'three']
    result = zip(a,b)
    result_list = list(result) # als Liste [(2, 'two'), (3, 'three'), (1, 'one')]

    c, v =  zip(*result_list) #zip wieder aufteilen


    #List comprehension (Listenabstraktion)
    # Idee: {𝑥2|10≤𝑥<20,𝑥∈ℕ}  
    quadrate = [x**2 for x in range(10, 20)]

    [print(x) for x in thislist]

    newlist = [x for x in fruits if "a" in x]

    newlist = [x for x in range(10)]            #[0,...,9]

    newlist = [x for x in range(10) if x < 5]   #[0,...,4]

    newlist = [x.upper() for x in fruits]

    # Idee: SELECT SUM(z) FROM zahlen WHERE z % 2 = 1

    zahlen = [7, 43, 12, 0, -3, -35, 33, 24, 8, 45, 60, 2, 13, -1, 22, 9]
    sum([z for z in zahlen if z % 2 == 1]) 


    #Copy
    mylist = thislist.copy()
    mylist = list(thislist)
    mylist = thislist[:]

    B = copy.deepcopy(A)


    # equals 
    print(t1 == t3)   # enthalten gleiche Inhalte   s. equals() in Java
    print(t1 is t2)   # Referenz auf dasselbe Objekt


    Dictionary
    HashMap 
    HashMap<String,String> dict = new HashMap<String,String>();
    dict.put("katze","cat"); dict.put("maus","mouse");
    String res = dict.get("katze"); // res="cat"
    int len = dict.size(); // len=2

    boolean res=dict.containsKey("katze"); // res=true
    boolean res=dict.containsValue("mouse"); // res=true

    for (String key : dict.keySet()) {
        sout(key + " = " + dict.get(key));} //maus = mouse katze = cat

    for (String key : dict.values()) {
        sout(key);} //mouse cat

    Javascript Dictionary<string, int> vars = new Dictionary<string, int>();
    vars["x"] = 3; //Alternativ: vars.Add("x",3)
    vars["x"] = 4; //Überschreibt den Wert
    var vars2 = new Dictionary<string, int>() {{"x",1 }, {"y",2 }, {"z",3 }};

    foreach (KeyValuePair<string, int># el in vars) CW("Key: {0}, Value: {1}", el.Key, el.Value);

    Console.WriteLine(vars["unknown"]); //RunTimeError
    if (vars.ContainsKey("x")) { CW(vars["x"]); }

    // Keys in Liste speichern
    var varKeys = new List<string>(vars.Keys);

    if (vars.ContainsKey("x")) { vars.Remove("x"); }

    vars.Clear();
    s. Arrays vars = {}
    vars["x"] = 3; 
    vars["x"] = 4; #Überschreibt den Wert
    vars2 = {"x":1,"y":2,"z":3}

    for key in vars:
        print(f"var:{key} value:{vars[key]}")
    for val in vars.values():
        print(f"value:{val}")

    print(vars["unknown"]) #Exception
    if (vars.get("x")!=None): print(vars["x"])
    val=vars.get("x","-1") #-1 falls nicht vorhanden

    # Keys in Liste speichern
    keys=[]
    for k in vars: keys.append(k)

    del
    vars["x"]
    vars.clear();
    Stack Stack<String> stack = new Stack<String>();
    boolean leer = stack.empty();
    stack.push("Aufgabe1");
    String el = stack.pop();
    String el = stack.peek();
    Javascript Stack<int> myStack = new Stack<int>#();
    myStack.Push(1); myStack.Push(2); myStack.Push(3); myStack.Push(4);
    Stack<int> myStack = new Stack<int>(new int[]{ 1, 2, 3, 4});

    foreach (var item in myStack) CW(item + ","); //prints 4,3,2,1,

    while (myStack.Count > 0) CW(myStack.Pop() + ",");
    if(myStack.Count > 0) CW(myStack.Peek()); // prints 4 

    myStack.Contains(2); // returns true
    PHP from collections import deque
    stack = [] #O(n)
    stack = deque() #O(1)
    # push
    stack.append('a')
    stack.append('b')
    stack.append('c')
    # pop
    el=stack.pop() #c
    # isEmpty
    len(stack)==0
    stack.empty()
    Queue
    Deque (= Stack und Queue)
    Deque<String> deque = new ArrayDeque<String>();
    boolean leer = deque.isEmpty();
    deque.add("a"); deque.add("b"); deque.add("c"); //{"a","b","c"}

    String el = stack.poll() (removeFirst); // el="a"
    String el = stack.peek(); (getFirst);// el="a"

    String el = stack.pollLast(); (removeLast); // el="c"
    String el = stack.peekLast(); (getLast) // el="c"

    Javascript Queue<string> queue = new Queue<string>();
    int numEl = queue.Count; queue.Enqueue("a"); queue.Enqueue("b"); queue.Enqueue("c"); //{"a","b","c"}
    queue.Dequeue(); //{"b","c"}
    queue.Peek(); //"b"
    queue.Last(); //"c"
    queue.Contains("c");
    PHP from collections import deque
    deque = deque(["a","b","c"]) 
    bool leer = (len(deque)==0)
    deque.append("last")  #["a","b","c","last"]
    deque.appendleft("first")  #["first","a","b","c","last"]

    el = deque.popleft() # el="first" ["a","b","c","last"]
    el = deque.pop() # el="last" ["a","b","c"]

    el = deque[0] # el="first"
    el = deque[len(deque)-1] # el="last"

    if "b" in deque: ... #oder deque.count("b")>0
    Textdatei zeilenweise einlesen

    //import java.io.*; über der Klasse angeben   
    String filename="test.txt";
    try {     
      FileReader file = new FileReader(filename);
      BufferedReader buff = new BufferedReader(file);
      String line;
      while((line=buff.readLine())!=null) {
         sout(line); 
      }
      buff.close();
    } catch (IOException e) {sout("Error:"+e);}

    Javascript StreamReader sr = new StreamReader(dateiAusgabe);
    string line = sr.ReadLine();
    while (line != null) {
       CW("Zeile: " + line);
       line = sr.ReadLine(); }
    sr.Close();

    //Datei auf einmal lesen stringdatei=File.ReadAllText(@"D:\Test.txt");
    string[] datei = File.ReadAllLines(@"D:\Test.txt");
     $content = file_get_contents("todo1.txt");
     if (isset($content)) {
        echo"\n";
        $lines = explode("\n",$content);
        $nr=1;
        foreach($lines as $line) {
            echo "$nr: $line<br>\n";
            $nr++;
        }    
     }

    f = open("test.txt", "r") # r+=read/write
    file = f.read()
    zeile = f.readline()
    f.close()

    Textdatei zeilenweise schreiben

    //import java.io.*; über der Klasse angeben
    String filename="test.txt";
    boolean append=true;
    try {
      FileWriter file = new FileWriter(filename,append);
      BufferedWriter buff = new BufferedWriter(file);
      PrintWriter out = new PrintWriter(buff);
      out.println("Neue Zeile");
      out.flush();
      out.close();
    } catch (IOException e) {sout("Error:"+e);}

    Javascript
    bool append=true;
    StreamWriter sw = new StreamWriter(dateiAusgabe, append);
    sw.WriteLine(text);
    sw.Close();

    # x: Erstellt falls nicht existiert 
    # w: Überschreibt w+: lesen/schreiben
    # a: append

    f =
    open("test.txt", "w")
    file.write("Hello There \n") file.writelines(["Zeile1\n","Zeile2\n"]) file.close()

    String in Textdatei schreiben (evt. ineffizient)

    //import java.io.*; über der Klasse angeben  
    String s = "Zeile 1\nZeile2 \nEnde!";
    try {
      FileWriter fw = new FileWriter("datei.txt");
      fw.write(s);
      fw.close();
    } catch (IOException ex) {
      sout("Fehler bei Schreiben!");}

    Javascript File.WriteAllText("test.txt","Mein Inhalt"); file_put_contents($file,"$content\n",FILE_APPEND); s. Textdatei zeilenweise schreiben
    OOP Klassen

    public class Mensch {
       // statisches Attribut
       public static String version="1.0";
       // Attribute
       private String name;
       private String haarfarbe;
       private int alter;


       // Konstruktoren
       public Mensch(){}
       public Mensch(String name, String haarfarbe, int alter){
          this.name=name;
          this.haarfarbe=haarfarbe;
          this.alter=alter;
       }
       
       // Methoden
       public void schlafen(){sout(name+" schläft");}
       public void sitzen(){sout(name+" sitzt");}
       public int getAlter(){return alter;}
       public void setAlter(int alter1) {alter=alter1;}
    }

    Javascript class Mensch {
       // statisches Attribut
        public static string version = "1.0";
       // Attribute
        public string Name;
        public string Haarfarbe;
        private int Alter;

       // Konstruktoren
        public Mensch() { }
        public Mensch(string Name, string Haarfarbe, int Alter) {
            this.Name = Name;
            this.Haarfarbe = Haarfarbe;
            this.Alter = Alter;
        }

       // Methoden
       public void Schlafen(){CW(name+" schläft");}
       public void Sitzen(){CW(name+" sitzt");}

       // Getter/Setter
        public int GetAlter() { return Alter; }
        public void SetAlter(int alter) { Alter = alter; }

        // Alternativ als Properties einfach
        public int Alter { get; set; }

        // Alternativ als Properties komplex
        private int alter;
        public int Alter {
            get { if (Alter2 > 0) return alter; else return 0; }
            set { alter = value; }
    }
    class Car {
      public $color;
      public $model;
      public function __construct($color, $model) {
           $this->color = $color;
           $this->model = $model;}
      public function message() {
           return "My car is a " . $this->color . " " . $this->model . "!"; }
    }
    class Mensch:
        # statisches Attribut
        version = "0";
        # Konstruktor und Attribute, kein Überladen 
        def __init__(self,name,haarfarbe,alter):
            Mensch.version = "1.1" #type(self)=Mensch
            self.name=name #public
            self.haarfarbe=haarfarbe #public
            self.__alter = alter; #private
        def __del__(self):
           print(f"Mensch({self.name}) deleted")
        def __str__(self): return f"Mensch({self.name})"
        # Methoden
        def schlafen(self): print (self.name+" schläft")
        def sitzen(self):print(self.name+" sitzt")
        #Getter/Setter
        def getAlter(self): return self.__alter
        def setAlter(self,alter): self.__alter=alter
        #Alternativ als Properties
        def __getName(self):
           try:
              return self.__name
           except AttributeError:
              return "Noname"
        def __setName(self,name):
           self.__name = name
        name = property(__getName,__setName) 
    OOP Objekte

    public class TesteMensch {
       public static void main(String[] args) { 
          Mensch patrick = new Mensch();
          patrick.name="Patrick";
          patrick.setAlter(19);

          Mensch tim=new Mensch("Tim","blond",21);

         patrick.schlafen();
         tim.sitzen();

          sout("Version:"+Mensch.version);    
       }
    }

    Javascript

    class TesteMensch {
       public static void Main(string[] args) { 
          Mensch patrick = new Mensch();
          patrick.Name="Patrick";
          patrick.SetAlter(19);
          patrick.Alter=19;  //als Property

          Mensch tim=new Mensch("Tim","blond",21);

         patrick.Schlafen();
         tim.Sitzen();

          CW("Version:"+Mensch.version);    
       }
    }

    $myCar = new Car("black", "Volvo");
    echo $myCar -> message();
    patrick= Mensch("dontKnow","blond",18)
    patrick.name="Patrick"
    patrick.setAlter(19)
    patrick.schlafen()
    print("Version:",Mensch.version)


    OOP Vererbung

    public class Kreis extends GeoFigur{
       public double radius;
       public double berechneFl() {
            return radius*radius*3.1415926;}

       public static void main(String[] a) {
          Kreis k1 = new Kreis();
          // verwendet Methode der Oberklasse
          k1.setX(10); k1.setY(20);
       }
    }

    Javascript

    class Kreis : GeoFigur{
       public double Radius;
       public double BerechneFl() {
            return radius*radius*3.1415926;}

       public static void Main(string[] a) {
          Kreis k1 = new Kreis();
          // verwendet Methode der Oberklasse
          k1.SetX(10); k1.SetY(20);
       }
    }

    PHP import math
    class Kreis(GeoFigur):
        def __init__(self,radius): self.radius = radius
        def berechneFl(self): return math.pi * self.radius**2
        def __str__(self): return self.__class__.__name__ + " r= " + str(self.radius)
       
    k1 = Kreis(10)
    # verwendet Methoden der Oberklasse
    k1.setX(10)
    k1.setY(20)

        
    OOP Abstrakte Klassen und Methoden

    public abstract class GeoFigur {

    public abstract double berechneFl() ;
    }

    public class Kreis extends GeoFigur{

    public double berechneFl() {
       return pi*radius*radius;}
    }

    Javascript

    abstract class GeoFigur {

    public abstract double BerechneFl() ;
    }

    public class Kreis : GeoFigur{

    public double BerechneFl() {
       return pi*radius*radius;}
    }

    PHP from abc import ABC, abstractmethod
    class GeoFigur(ABC):
        @abstractmethod
        def berechneFl(self): pass

    class Kreis(GeoFigur)

        def berechneFl(self): return math.pi * self.radius**2

        
        
    OOP Interfaces

    public interface Paintable {
       public void paint(Graphics g);
    }

    public class Kreis implements Paintable {
       …
       public void paint(Graphics g) {
          g.fillOval(x,y,radius,radius);
       }
    }

    public class TestePaintable {
       Paintable[] paintObj= new Paintable[100];
       public static void main(String[] a) {
          …
          paintObj[0] = new Kreis(10);
          …
          for(Paintable obj : paintObj) {
             obj.paint(g);
          }
       }
    }

    Javascript

    interface IPaintable    void Paint(Graphics g); //hier ohne public

    class Kreis : IPaintable {
       …
       public void Paint(Graphics g) {
          g.FillOval(X,Y,Radius,Radius);
       }
    }

    class TestePaintable {
       IPaintable[] paintObj= new IPaintable[100];
       public static void Main(string[] a) {
          …
          paintObj[0] = new Kreis(10);
          …
          foreach(IPaintable obj in paintObj) {
             obj.paint(g);
          }
       }
    }

    PHP Nicht nötig, Mehrfachvererbung geht.
    OOP Methoden überschreiben

    public class GeoFigur {
       …
       public double berechneFl() {
          sout("Bitte in der Unterklasse definieren");
          return -1;}
    }

    public class Kreis extends GeoFigur {
       …
       public double berechneFl() {
          return pi*radius*radius;}
    }

    Javascript

    class GeoFigur {
       …
       public virtual double BerechneFl() {
          CW("Bitte in der Unterklasse definieren");
          return -1;}
    }

    class Kreis : GeoFigur {
       …
       public override double BerechneFl() {
          return Pi*Radius*Radius;}
    }

    PHP class GeoFigur:
         ...
        def berechneFl(self):
            print("Bitte in der Unterklasse definieren")
            return -1

    class Kreis(GeoFigur):
        ....
        def berechneFl(self): return math.pi * self.radius**2
        
        
    OOP Aufruf der Oberklasse public class Kreis extends GeoFigur{
      ...
      public Kreis(int x, int y, string farbe, float radius) {
        super(x,y,farbe); //muss an erster Stelle stehen.
        this.radius=radius;
      }
    }
    Javascript public class Kreis : GeoFigur{
      ...
      public Kreis(int x, int y, string farbe, float radius) : base(x,y,farbe){
        this.radius=radius;
      }
    }
    PHP Python
    Konstrukt Java Javascript C# PHP Python
    Impressum