%Schriftgröße, Layout, Papierformat, Art des Dokumentes
\documentclass[10pt,oneside,a4paper,headsepline,footsepline]{scrartcl}

%Einstellungen der Seitenränder
\usepackage[left=2cm,right=2cm,top=1.5cm,bottom=1.5cm,includeheadfoot]{geometry}

%neue Rechtschreibung
\usepackage[ngerman]{babel}

%Umlaute ermöglichen
\usepackage[utf8]{inputenc}

%Gesamtseitenzahl
\usepackage{lastpage}

% Kopf- und Fußzeile
% Funktioniert nicht \usepackage[automark]{scrpage2}%
\usepackage[automark]{scrlayer-scrpage}

%Quellcode-Listings
\usepackage{listings}

%Hyperlinks
\usepackage{hyperref}

% Single quotes
\usepackage{upquote,textcomp}

% mehrere Spalten
\usepackage{multicol}

%Kopfzeile
\ihead{Python vs JavaScript}
\chead{}
\ohead{http://kohnlehome.de/js/python-vs-javascript.pdf}
%\setheadsepline{0.5pt}

%Fußzeile
%\setfootsepline{0.5pt}
\ifoot{Franz Kohnle}
\cfoot{Seite \thepage\ von  \pageref{LastPage}}
\ofoot{\today}

\pagestyle{scrheadings}

\begin{document}

% Single Quotes
\newcommand\upquote[1]{\textquotesingle#1\textquotesingle}

% Überschrift 
%\begin{center}
%  \LARGE % Schriftgröße
%  \bfseries % Fettdruck
%  \sffamily % Serifenlose Schrift
%  Python vs. JavaScript
%\end{center}

\renewcommand{\arraystretch}{1.5}
\begin{tabular}{l l l}
 & \textbf{\large{Python}} & \textbf{\large{JavaScript}}   \\\hline

% Kommentare

Kommentare
& 
\begin{minipage}{5cm}
\begin{verbatim}

# eine Zeile

"""
mehrere
Zeilen
"""

\end{verbatim}

\end{minipage} 
   &
\begin{minipage}{6cm}

\begin{verbatim}

// eine Zeile

/*
mehrere
Zeilen
*/

\end{verbatim}
\end{minipage} \\ \hline

% Variablen

Variablen
     & 
\begin{minipage}{5cm}
\begin{verbatim}

zahl = 5
text = "Hallo"

\end{verbatim}
\end{minipage} 
     &
\begin{minipage}{5cm}
\begin{verbatim}

let zahl = 5;
let text = 'Hallo';

\end{verbatim}
\end{minipage} \\ \hline

% Vergleichsoperatoren

Vergleichsoperatoren
& 
\texttt{== != > >= < <=}
&
\texttt{=== !== > >= < <=}
\\ \hline

% Rechenoperatoren

Rechenoperatoren
& 
\texttt{+ - * / // \% **}
&
\texttt{+ - * / \% **}
\\ \hline
  
% Logische Operatoren

Logische Operatoren
& 
\texttt{and or not} 
&
\texttt{\&\& || !}
\\ \hline
  

% Verzweigung

Verzweigung
     & 
\begin{minipage}{5cm}
\begin{verbatim}

if zahl > 10:
    print("größer")
elif zahl == 10:
    print("genau")
else:
    print("kleiner")


\end{verbatim}
\end{minipage} 
     &
\begin{minipage}{5cm}
\begin{verbatim}

if (zahl > 10) {
    console.log('größer');
} else if (zahl === 10) {
    console.log('genau');
} else {
    console.log('kleiner');
}

\end{verbatim}
\end{minipage} \\ \hline
  
% while-Schleife

while-Schleife
& 
\begin{minipage}{5cm}

\begin{verbatim}

zahl = 0
while zahl < 5:
    print(zahl)
    zahl = zahl + 1


\end{verbatim}
\end{minipage} 
&
\begin{minipage}{5cm}

\begin{verbatim}

zahl = 0;
while (zahl < 5) {
    console.log(zahl);
    zahl = zahl + 1;
}  

\end{verbatim}
\end{minipage} \\ \hline

% for-Schleife

for-Schleife
& 
\begin{minipage}{5cm}

\begin{verbatim}

for i in range(5):
    print(i)


\end{verbatim}
\end{minipage} 
&
\begin{minipage}{6cm}

\begin{verbatim}

for (let i = 0; i < 5; i++) {
    console.log(i);
} 

\end{verbatim}
\end{minipage} \\ \hline

% Funktionsdefinition

Funktionsdefinition
& 
\begin{minipage}{5cm}

\begin{verbatim}

def summe(a, b):
    return a + b


\end{verbatim}
\end{minipage} 
&
\begin{minipage}{5cm}

\begin{verbatim}

const summe = (a, b) => {
    return a + b;
} 

\end{verbatim}
\end{minipage} \\ \hline

% Funktionsaufruf

Funktionsaufruf
& 
\begin{minipage}{5cm}

\begin{verbatim}
zahl = summe(2, 3)
\end{verbatim}
\end{minipage} 
&
\begin{minipage}{5cm}

\begin{verbatim}
let zahl = summe(2, 3); 
\end{verbatim}
\end{minipage} \\ \hline

% Listen / Arrays

Listen / Arrays
& 
\begin{minipage}{5cm}

\begin{verbatim}

my_list = ["A", 3, False]
print(my_list[0]) # A

\end{verbatim}
\end{minipage} 
&
\begin{minipage}{6cm}

\begin{verbatim}

const myArray = ['A', 3, false];
console.log(myArray[0]); // A

\end{verbatim}
\end{minipage} \\ \hline

% Dictionaries / Objects

Dictionaries / Objects
& 
\begin{minipage}{5cm}

\begin{verbatim}

anna = {
    "name": "Anna",
    "alter": 19
}
    
anna["alter"] = 20

\end{verbatim}
\end{minipage} 
&
\begin{minipage}{6cm}

\begin{verbatim}

const anna = {
    name: 'Anna',
    alter: 19
};

anna.alter = 20;

\end{verbatim}
\end{minipage} \\ \hline

 % Stringformatierung

 Stringformatierung
& 
\begin{minipage}{5cm}
\begin{verbatim}

name = "Anna"
alter = 19
text = \
    "{} ist {} Jahre alt."\
    .format(name, alter)

\end{verbatim}
\end{minipage} 
&
\begin{minipage}{6cm}
\begin{verbatim}

const name = 'Anna';
const alter = 19;
const text =
  `${name} ist ${alter} Jahre alt.`;


\end{verbatim}
\end{minipage} \\ \hline





\end{tabular}
\end{document}
