<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://wiki.bioinfo.nat.tu-bs.de/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ani</id>
	<title>Bioinformatik Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.bioinfo.nat.tu-bs.de/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ani"/>
	<link rel="alternate" type="text/html" href="http://wiki.bioinfo.nat.tu-bs.de/Special:Contributions/Ani"/>
	<updated>2026-05-28T19:13:32Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.7</generator>
	<entry>
		<id>http://wiki.bioinfo.nat.tu-bs.de/index.php?title=Main_Page&amp;diff=975</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="http://wiki.bioinfo.nat.tu-bs.de/index.php?title=Main_Page&amp;diff=975"/>
		<updated>2023-06-23T09:52:59Z</updated>

		<summary type="html">&lt;p&gt;Ani: Nicht vorhandenen Link entfernt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Bioinformatik Grundkurs =&lt;br /&gt;
&lt;br /&gt;
 [[Q &amp;amp; A Bioinformatik Wiki]]&lt;br /&gt;
&lt;br /&gt;
'''Vorlesungen''':&lt;br /&gt;
   [[1_Datenbanken|1.Datenbanken]] | [[2_Transkriptom RNA Seq 1|2.Transkriptom RNA Seq 1]] | [[3_Alignments|3.Alignments]] | [[4_Burrows-Wheeler|4.Burrows-Wheeler]] | [[5_Transkriptom RNA Seq 2|5.Transkriptom RNA Seq 2]] | [[6_Normalisierungen|6.Normalisierungen]] | [[7_Multiples_Testen|7.Multiples_Testen]] | [[8_Galaxy|8.Galaxy]] | [[9_Biomarker|9.Biomarker]] | [[10_BLAST|10.BLAST]] | [[11_BLAST_II|11.BLAST_II]] &lt;br /&gt;
&lt;br /&gt;
'''Übungen''':&lt;br /&gt;
   [[1.Datenbanken]] | [[2.Transkriptom RNA Seq 1]] | [[3.Alignments]] | [[4.Burrows-Wheeler]] | [[5.Transkriptom RNA Seq 2]] | [[6.Normalisierungen]] | [[7.Hypothesentests]] | [[8.Galaxy ]] | [[9.Biomarker]] | [[10.BLAST]] | [[11.BLAST_II]] &lt;br /&gt;
&lt;br /&gt;
'''Python''':&lt;br /&gt;
   [[1.Einführung]] | [[2.Datentypen und Datenstrukturen]] | [[3.Befehle]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 [[Glossar]]&lt;br /&gt;
&lt;br /&gt;
== Ansprechpartner ==&lt;br /&gt;
Prof. Dr. Karsten Hiller (karsten.hiller@tu-braunschweig.de)&lt;br /&gt;
&lt;br /&gt;
Wiki Technik:&lt;br /&gt;
* [[User:Julbeier|Julian Beier]]&lt;br /&gt;
&lt;br /&gt;
Inhalt:&lt;br /&gt;
&lt;br /&gt;
SoSe 21:&lt;br /&gt;
* [[User:Skl|Simon Klute]]&lt;br /&gt;
&lt;br /&gt;
WiSe 20/21:&lt;br /&gt;
* [[User:Mka|Michelle Khalil]]&lt;br /&gt;
&lt;br /&gt;
SoSe 20:&lt;br /&gt;
* [[User:Pge|Philip Gemke]]&lt;br /&gt;
&lt;br /&gt;
SoSe 19:&lt;br /&gt;
* [[User:Vero|Veronika Martin]]&lt;br /&gt;
* [[User:Patrick Melichar|Patrick Melichar]]&lt;br /&gt;
* [[User:L.motzko‎|Lukas Motzko]]&lt;br /&gt;
&lt;br /&gt;
== Semester Archive ==&lt;br /&gt;
''None''&lt;/div&gt;</summary>
		<author><name>Ani</name></author>
	</entry>
	<entry>
		<id>http://wiki.bioinfo.nat.tu-bs.de/index.php?title=6.Normalisierungen&amp;diff=974</id>
		<title>6.Normalisierungen</title>
		<link rel="alternate" type="text/html" href="http://wiki.bioinfo.nat.tu-bs.de/index.php?title=6.Normalisierungen&amp;diff=974"/>
		<updated>2023-06-14T14:18:37Z</updated>

		<summary type="html">&lt;p&gt;Ani: /* c. Normalisierung mit TMM */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Aufgabe 1: Grundlagen== &lt;br /&gt;
===a:  Warum ist es notwendig RNASeq Daten zu normalisieren?=== &lt;br /&gt;
*Eliminieren von statischen Abweichungen, die durch z.B. verschiedene Durchführungsrunden, unterschiedliche Bedingungen, Laborausstattung, Experimentatoren, …  entstehen&lt;br /&gt;
* Heterologe Geneigenschaften können zu unterschiedlichen Ergebnissen bei eigentlich gleicher Genexpression führen&lt;br /&gt;
* Vergleichbarkeit von Proben ermöglichen&lt;br /&gt;
&lt;br /&gt;
===b: Rolle der Sequenziertiefe und Genlänge===&lt;br /&gt;
Die Sequenziertiefen und Genlängen müssen normalisiert werden, um die erhaltenen RNASeq Daten miteinander vergleichen zu können, da diese oft sehr unterschiedlich sind und das die Auswertung beeinflussen kann. So erhält man für längere Gene möglicherweise mehr reads, als für kürzere Gene, obwohl die Genexpression gleich ist. Der Fehlschluss liegt nah, dass das längere Gen stärker exprimiert wird. Bei einer hohen Sequenziertiefe erhält man mehr reads, als bei einer niedrigen Sequenziertiefe. Dabei muss das Verhältnis der erhaltenen reads für ein Gen, zu der Gesamtzahl an reads einer Sequenzierung betrachtet werden. Dies ist durch Normalisierungen möglich.&lt;br /&gt;
&lt;br /&gt;
==Aufgabe 2: RPKM und TPM==&lt;br /&gt;
{| class=&amp;quot;wikitable center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Gen &amp;amp; Genlänge (L) !! Counts (c) Replikat 1 !! Counts (c) Replikat 2&lt;br /&gt;
|-&lt;br /&gt;
| A (7 kb) || 5 || 16&lt;br /&gt;
|-&lt;br /&gt;
| B (12 kb) || 10 || 36&lt;br /&gt;
|-&lt;br /&gt;
| C (0,5 kb) || 2 || 8&lt;br /&gt;
|-&lt;br /&gt;
| D (25 kb) || 1 || 0&lt;br /&gt;
|}&lt;br /&gt;
===a: Normalisierung mit RPKM===&lt;br /&gt;
* RPKM steht für 'Reads per kilobase of transcript per Million mapped reads' &lt;br /&gt;
* Für die Normalisierung wird die Formel &amp;lt;math&amp;gt; RPKM =  \frac{ c_\text{i}}{L_\text{i} \cdot N} * 10^6 &amp;lt;/math&amp;gt; verwendet.&lt;br /&gt;
 &amp;lt;math&amp;gt;   \frac{ c_\text{i}}{L_\text{i}} &amp;lt;/math&amp;gt;  → Normalisierung der Genlänge &amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;math&amp;gt; L_\text{i} \cdot N &amp;lt;/math&amp;gt; → Normalisierung der Sequenziertiefe &lt;br /&gt;
'''Beispiel Gen A, Replikat 1:''' &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt; RPKM (A1) =  \frac{ 5}{7 kb \cdot 18} * 10^6 = 3,97 * 10^4&amp;lt;/math&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Gen !! RPKM Replikat 1 !! RPKM Replikat 2&lt;br /&gt;
|-&lt;br /&gt;
| A || 3,97 * 10^4 || 3,81 * 10^4&lt;br /&gt;
|-&lt;br /&gt;
| B || 4,63 * 10^4 || 5 * 10^4&lt;br /&gt;
|-&lt;br /&gt;
| C || 2,222 * 10^5 || 2,667 * 10^5&lt;br /&gt;
|-&lt;br /&gt;
| D || 2,2 * 10^3 || 0&lt;br /&gt;
|}&lt;br /&gt;
* Ein hoher RPKM Wert, sagt aus, dass die Genexpression stärker ist, als bei einem niedrigeren RPKM Wert, indem die Größe des Gens berücksichtigt wird. &lt;br /&gt;
* Zum Vergleich der Genexpression innerhalb einer Probe, können die RPKM Werte genutzt werden, sie sind jedoch nicht dafür geeignet Genexpressionen von Genen verschiedener Proben miteinander zu vergleichen, da die Bedingungen meist sehr unterschiedlich sind und falsche Aussagen über die Genexpressionen gemacht werden können. Die Summe aller RPKMs ergibt nicht 100 % und kann somit keine Anteile am Ganzen widerspiegeln.&lt;br /&gt;
&lt;br /&gt;
===b: Normalisierung mit TPM===&lt;br /&gt;
* TPM steht für 'Transcripts per Million. &lt;br /&gt;
* Wenn 1 Millionen Transkripte sequenziert werden würden, wäre TPMi die Anzahl an Transkripten des Typs 'i'.&lt;br /&gt;
* Bei TPM wird außerdem die totale Anzahl an reads nicht berücksichtigt.&amp;lt;br&amp;gt;&lt;br /&gt;
* Anders, als bei der Normalisierung mit RPKM wird erst die Genlänge und dann die Sequenziertiefe normalisiert. &lt;br /&gt;
* TPM berechnet das Verhältnis zwischen den Ergebnissen und die Werte in jeder Spalte ergeben 1 Million. &lt;br /&gt;
* Für die Normalisierung wird die Formel &amp;lt;math&amp;gt;  TPM =  \frac{ c_\text{i}}{L_\text{i}}  \cdot  \dfrac {1}{\sum_\text{n} \dfrac {c_\text{n}}{L_\text{n}}}  \cdot 10^6 &amp;lt;/math&amp;gt; verwendet.&lt;br /&gt;
'''Parameter:''' &amp;lt;br&amp;gt;&lt;br /&gt;
c&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; = Anzahl an ausrichtbaren reads für ein Transkript 'i'&amp;lt;br&amp;gt;&lt;br /&gt;
L&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt; = Länge des Transkripts/Gens 'i' in bp &amp;lt;br&amp;gt;&lt;br /&gt;
N = Gesamtanzahl an ausrichtbaren reads in Millionen &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''Beispiel Gen A, Replikat 1:''' &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;  TPM (A1) =  \frac{ 5}{7000}  \cdot  \dfrac {1}{ \dfrac {5}{7000} +  \dfrac {10}{12000} +  \dfrac {2}{500} + \dfrac {1}{25000}}  \cdot 10^6  = 127834 &amp;lt;/math&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Gen !! TPM Replikat 1 !! TPM Replikat 2&lt;br /&gt;
|-&lt;br /&gt;
| A || 127834 || 107383&lt;br /&gt;
|-&lt;br /&gt;
| B || 149139 || 140940&lt;br /&gt;
|-&lt;br /&gt;
| C || 715868 || 751678&lt;br /&gt;
|-&lt;br /&gt;
| D || 7159 || 0&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===c: Anwendungsbereich===&lt;br /&gt;
RPKM und TPM werden genutzt um die Expression verschiedener Gene, aus der gleichen Probe, einer RNA Sequenzierung miteinander zu vergleichen. Sie sind also Normalisierungsverfahren innerhalb einer Probe.&lt;br /&gt;
&lt;br /&gt;
==Aufgabe 3: Normalisierung zwischen Proben==&lt;br /&gt;
==a: Normalisierungsmethode==&lt;br /&gt;
Für die Normalisierung zwischen Proben wird TMM eingesetzt. TMM steht für 'Trimmed mean of M – Values normalization method'.&lt;br /&gt;
==b: Wieso wird die Normalisierung bei RNASeq-Proben angewendet?==&lt;br /&gt;
* Um das relative RNA-Produktionsniveau aus RNASeq-Daten abzuschätzen&lt;br /&gt;
* Es können heterologe Geneigenschaften zwischen 2 Proben auftauchen und eine identische Genexpression, fälschlicherweise, als unterschiedlich erkannt werden&lt;br /&gt;
* Beispiel: Expression zwischen gesunden und kranken Patienten soll auf bestimmte Marker untersucht werden&lt;br /&gt;
&lt;br /&gt;
==c. Normalisierung mit TMM==&lt;br /&gt;
'''1.''' Der Gewichtungsfaktor für das Expressionsverhältnis für Gen 'g' zwischen Probe 'k' ' und 'k' wird bestimmt. Dabei werden kleinere Werte verstärkt und große abgeschwächt. &amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Formel               !! Parameter&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;math&amp;gt;  W_\text{gk}^\text{k`} =  \frac{ N_\text{k} - Y_\text{gk}}{N_\text{k} \cdot Y_\text{gk}}  +  \frac{ N_\text{k`} - Y_\text{gk`}}{N_\text{k`} \cdot Y_\text{gk`}} &amp;lt;/math&amp;gt; || Y&amp;lt;sub&amp;gt;gk&amp;lt;/sub&amp;gt; = Beobachtete Anzahl an reads für Gen 'g' und Probe 'k' &amp;lt;br&amp;gt;&lt;br /&gt;
N&amp;lt;sub&amp;gt;k&amp;lt;/sub&amp;gt; = Gesamtanzahl an reads für Probe 'k' &amp;lt;br&amp;gt;&lt;br /&gt;
k' = 2. Probe (Referenz-Bedingung)&lt;br /&gt;
|}&lt;br /&gt;
'''2.''' Der Mittelwert aller Expressionsverhältnisse wird berechnet. &amp;lt;br&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Formel               !! Parameter&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;math&amp;gt; M_\text{gk}^\text{k`} = log_2  \dfrac { \dfrac {Y_\text{gk}}{N_\text{k}}}{ \dfrac {Y_\text{gk`}}{N_\text{k`}}}  &amp;lt;/math&amp;gt; || Y&amp;lt;sub&amp;gt;gk&amp;lt;/sub&amp;gt; = Beobachtete Anzahl an reads für Gen 'g' und Probe 'k' &amp;lt;br&amp;gt;&lt;br /&gt;
N&amp;lt;sub&amp;gt;k&amp;lt;/sub&amp;gt; = Gesamtanzahl an reads für Probe 'k' &amp;lt;br&amp;gt;&lt;br /&gt;
k' = 2. Probe (Referenz-Bedingung)&lt;br /&gt;
|}&lt;br /&gt;
'''3.''' Die gewichteten Mittelwerte aller Expressionsverhältnisse werden berechnet. Einsetzen der in 1. und 2. ermittelten Werte.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;div align=&amp;quot;center&amp;quot;&amp;gt; &amp;lt;math&amp;gt; TMM = 2^{log_2 (TMM_\text{k}^\text{k`})} &amp;lt;/math&amp;gt;&amp;lt;/div&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Formel               !! Parameter&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;math&amp;gt; log_2 (TMM_\text{k}^\text{k`}) =  \frac{ \underset {g \in G}{\sum}   W_\text{gk}^\text{k´} \cdot M_\text{gk}^\text{k´}} { \sum_{g \in G} W_\text{gk}^\text{k´}} &amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt; M_\text{gk}^\text{k`} = &amp;lt;/math&amp;gt; Mittelwerte aller Expressionsverhältnisse &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;  W_\text{gk}^\text{k`} = &amp;lt;/math&amp;gt; Gewichtungsfaktor der Expressionsverhältnisse &amp;lt;br&amp;gt;&lt;br /&gt;
G = Menge aller Gene&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Bedingungen für dieses Verfahren:''' &amp;lt;br&amp;gt;&lt;br /&gt;
* Y&amp;lt;sub&amp;gt;gk&amp;lt;/sub&amp;gt; , Y&amp;lt;sub&amp;gt;gk'&amp;lt;/sub&amp;gt; &amp;gt; 0&lt;br /&gt;
* Die oberen und unteren 30 % der &amp;lt;math&amp;gt; M_\text{gk}^\text{k`} &amp;lt;/math&amp;gt; Werte werden nicht berücksichtigt&lt;br /&gt;
* Die 5 % am höchsten und niedrigsten exprimierten Gene werden nicht berücksichtigt&lt;/div&gt;</summary>
		<author><name>Ani</name></author>
	</entry>
	<entry>
		<id>http://wiki.bioinfo.nat.tu-bs.de/index.php?title=3.Befehle&amp;diff=973</id>
		<title>3.Befehle</title>
		<link rel="alternate" type="text/html" href="http://wiki.bioinfo.nat.tu-bs.de/index.php?title=3.Befehle&amp;diff=973"/>
		<updated>2023-06-02T09:48:42Z</updated>

		<summary type="html">&lt;p&gt;Ani: /* len-Befehl */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== ''print''-Befehl ==&lt;br /&gt;
‎&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Befehl: &lt;br /&gt;
print()&lt;br /&gt;
 &lt;br /&gt;
# Beispiel: &lt;br /&gt;
print(&amp;quot;hello&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
name = &amp;quot;Max&amp;quot;&lt;br /&gt;
print(f&amp;quot;Hallo, {name}!&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
# Output:&lt;br /&gt;
# hello &lt;br /&gt;
# Hallo, Max!&lt;br /&gt;
‎&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== Funktion ===&lt;br /&gt;
* der entsprechende Inhalt des ''print''-Befehls wird in der Konsole ausgegeben &lt;br /&gt;
&lt;br /&gt;
=== Syntax ===&lt;br /&gt;
* die runden Klammern umschließen das Argument, das ausgegeben wird&lt;br /&gt;
* Wörter, bei denen es sich nicht um einen Variablennamen handelt, müssen in Anführungszeichen gesetzt werden&lt;br /&gt;
* geschieht das nicht, wird ein Syntaxfehler angezeigt (s. Beispiel_2)&lt;br /&gt;
* int und floats werden ohne Anführungszeichen eingegeben&lt;br /&gt;
* soll eine Variable innerhalb eines Strings eingefügt werden, kann ein sogenannter f-String genutzt werden. Dazu wird vor die Anführungszeichen ein f geschrieben, innerhalb des Strings werden die geschweiften Klammern dann durch den darin enthaltenen Ausdruck ersetzt (s. Beispiel_1)&lt;br /&gt;
‎&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Beispiel_2:&lt;br /&gt;
print(falsch)&lt;br /&gt;
&lt;br /&gt;
# Output:&lt;br /&gt;
# NameError: name 'falsch' is not defined&lt;br /&gt;
‎&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* Python geht davon aus, dass es sich bei „falsch“ um eine Variable handelt und möchte den Wert dieser Variablen ausgeben. Es wurde aber keine Variable mit den Namen „falsch“ definiert. Der Fehler kann durch das Hinzufügen von Anführungszeichen behoben werden:&lt;br /&gt;
&lt;br /&gt;
‎&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
print(&amp;quot;falsch&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
# Output:&lt;br /&gt;
# falsch&lt;br /&gt;
‎&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ''type''-Befehl ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Befehl&lt;br /&gt;
type()&lt;br /&gt;
&lt;br /&gt;
# Beispiel_1: &lt;br /&gt;
a = &amp;quot;abc&amp;quot;&lt;br /&gt;
d = True&lt;br /&gt;
print(type(a))&lt;br /&gt;
print(type(1))&lt;br /&gt;
print(type(1.0)&lt;br /&gt;
print(type(d))&lt;br /&gt;
 &lt;br /&gt;
buch_1 = {'Buch': 'Der Herr der Ringe', 'Autor': 'Tolkien', 'Preis': 45}&lt;br /&gt;
print(type(buch_1))&lt;br /&gt;
&lt;br /&gt;
# Output:&lt;br /&gt;
# &amp;lt;class 'str'&amp;gt;&lt;br /&gt;
# &amp;lt;class 'int'&amp;gt;&lt;br /&gt;
# &amp;lt;class 'float'&amp;gt;&lt;br /&gt;
# &amp;lt;class 'bool'&amp;gt;&lt;br /&gt;
# &amp;lt;class 'dict'&amp;gt;&lt;br /&gt;
‎&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
===Funktion===&lt;br /&gt;
* mit dem ''type''-Befehl lässt sich der Datentyp bestimmen&lt;br /&gt;
&lt;br /&gt;
=== Syntax ===&lt;br /&gt;
* um den Datentyp zu bestimmen wird dieser in die Klammern des ''type''-Befehls geschrieben &lt;br /&gt;
* dabei kann es sich direkt um den Datentyp handeln oder einen Variablennamen &lt;br /&gt;
* auch hier ist der print Befehl wieder notwendig, um das Ergebnis ausgeben zu lassen &lt;br /&gt;
* ohne den print -Befehl wird der type -Befehl zwar ausgeführt, aber nicht in der Konsole ausgegeben&lt;br /&gt;
&lt;br /&gt;
== ''input'' -Befehl ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Befehl:&lt;br /&gt;
eingabe = input()&lt;br /&gt;
 &lt;br /&gt;
# Beispiel: &lt;br /&gt;
zahl = input()&lt;br /&gt;
print(zahl)&lt;br /&gt;
&lt;br /&gt;
# output&lt;br /&gt;
 3 # eingegebene Zahl des Nutzers im Eingabefeld  &lt;br /&gt;
 3 # durch print-Befehl ausgegebene Zahl&lt;br /&gt;
‎&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== Funktionen ===&lt;br /&gt;
* ermöglicht dem Nutzer die Interaktion mit dem Programm &lt;br /&gt;
* so kann z.B. ein Rechenprogramm mit jeder beliebigen vom Nutzer eingegebenen Zahl rechnen und nicht nur mit vorab programmierten Zahlen &lt;br /&gt;
&lt;br /&gt;
=== Syntax ===&lt;br /&gt;
* nach den Ausdruck &amp;quot;input&amp;quot; folgt eine Klammer, die bei Ausführung des Programms ein Eingabefeld in der Konsole erzeugt&lt;br /&gt;
* gleichzeitig handelt es sich beim ''input''-Befehl auch um ein ''print''-Befehl, dazu muss der entsprechende Text einfach in die Klammer eingegeben werden (s. Beispiel_2)&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Beispiel_2:&lt;br /&gt;
zahl = input(&amp;quot;Gib hier deine Zahl ein: &amp;quot;)&lt;br /&gt;
 &lt;br /&gt;
print(zahl)&lt;br /&gt;
&lt;br /&gt;
# Output:&lt;br /&gt;
# Gib hier deine Zahl ein: 3&lt;br /&gt;
# 3&lt;br /&gt;
‎&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* die Eingabe des Nutzers wird meist durch eine Variable definiert, d.h.: &lt;br /&gt;
 eingabe = input()&lt;br /&gt;
* da der einzutragende Wert bei der Programmierung nicht bekannt ist, kann so „stellvertretend“ mit der Variablen programmiert werden &lt;br /&gt;
* s. Beispiel_3, bei der die Rechenoperation „* 2“ mit der Variablen „zahl“ programmiert wird, welche später durch die Eingabe des Nutzers einen Zahlenwert erhält&lt;br /&gt;
* der Wert der Variable wird also erst festgelegt, während das Programm läuft &lt;br /&gt;
* in der Konsole entsteht durch den ''input-Befehl'' ein „Eingabefeld“ (nicht direkt sichtbar) in das der Nutzer einen Wert (in Beispiel_1 eine Zahl) eintragen kann &lt;br /&gt;
* ACHTUNG!: jede Eingabe wird durch den input-Befehl automatisch als string gespeichert &lt;br /&gt;
* in Beispiel_3 wird die 3 in string-Form abgespeichert &lt;br /&gt;
* die Rechenoperation wird nicht als Multiplikation mit 2 verstanden sondern als Wiederholung des strings &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Beispiel_3: &lt;br /&gt;
zahl = input(&amp;quot;Gib hier deine Zahl ein: &amp;quot;)&lt;br /&gt;
ergebnis = zahl * 2&lt;br /&gt;
print(ergebnis)&lt;br /&gt;
&lt;br /&gt;
# output&lt;br /&gt;
# Gib hier deine Zahl ein: 3&lt;br /&gt;
# 33&lt;br /&gt;
‎&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* der string 3 wird wiederholt und es kommt 33 statt 6 heraus &lt;br /&gt;
* Lösung: man kann den Datentyp des &amp;quot;inputs&amp;quot; vorab umwandeln:&lt;br /&gt;
 int(input()) , float(input())&lt;br /&gt;
* weiß man vorab nicht, um welchen Datentypen es sich handelt, ist der eval()-Befehl zu empfehlen (s. Beispiel 4) , dieser speichert die Eingabe automatisch unter dem passenden Datentypen ab (string, integer, float) &lt;br /&gt;
* hier ist allerdings zu beachten, das in der Konsole ein string wieder in Anführungszeichen gesetzt werden muss&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;der eval()-Befehl sollte auf keinen Fall benutzt werden, wenn das Programm mit der Außenwelt (z. B. dem Internet oder anderen Dateien) interagiert, da dadurch beliebiger Code ausgeführt werden kann! Am besten vermeidet man den Befehl daher. &amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Beispiel_4 (Möglichst vermeiden): &lt;br /&gt;
zahl = eval(input(&amp;quot;Gib hier deine Zahl ein: &amp;quot;))&lt;br /&gt;
ergebnis = zahl * 2&lt;br /&gt;
print(ergebnis)&lt;br /&gt;
&lt;br /&gt;
# output&lt;br /&gt;
# Gib hier deine Zahl ein: 3&lt;br /&gt;
# 6&lt;br /&gt;
&lt;br /&gt;
# oder &lt;br /&gt;
&lt;br /&gt;
# Gib hier deine Zahl ein: 2.4&lt;br /&gt;
# 4.8&lt;br /&gt;
&lt;br /&gt;
# oder &lt;br /&gt;
&lt;br /&gt;
# Gib hier deine Zahl ein: &amp;quot;a&amp;quot;&lt;br /&gt;
# aa&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ''while''-Schleife ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Befehl&lt;br /&gt;
while Bedingung:&lt;br /&gt;
     Operation() &lt;br /&gt;
&lt;br /&gt;
# Beispiel:&lt;br /&gt;
n = 1&lt;br /&gt;
&lt;br /&gt;
while n &amp;lt; 10: &lt;br /&gt;
    print(n)&lt;br /&gt;
    n = n + 1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
output&lt;br /&gt;
 1&lt;br /&gt;
 2&lt;br /&gt;
 3&lt;br /&gt;
 4&lt;br /&gt;
 5&lt;br /&gt;
 6&lt;br /&gt;
 7&lt;br /&gt;
 8&lt;br /&gt;
 9&lt;br /&gt;
&lt;br /&gt;
=== Funktion ===&lt;br /&gt;
* bestimmte Operationen werden automatisch wiederholt &lt;br /&gt;
* erspart viel Programmierarbeit, da nicht alle Operationen einzeln programmiert werden müssen &lt;br /&gt;
&lt;br /&gt;
=== Syntax ===&lt;br /&gt;
* die Schleife wird mit dem Ausdruck &amp;quot;while&amp;quot; begonnen &lt;br /&gt;
* darauf folgt eine Bedingung, die überprüft wird (z.B. n &amp;lt; 10) gefolgt von einem Doppelpunkt&lt;br /&gt;
* in den nächsten Zeilen folgen die Operationen, die innerhalb der Schleife durchgeführt werden sollen &lt;br /&gt;
* die zur Schleife gehörenden Operationen sind dadurch gekennzeichnet, dass der Code  eingerückt ist. Dazu sollte man die Tab-Taste benutzen (nicht die Leertaste) &lt;br /&gt;
* die ''while''-Schleife sollte so programmiert sein, dass sie irgendwann zu einem Ende kommt und nicht endlos weiterläuft, d.h. die zu überprüfende Bedingung sollte irgendwann nicht mehr zutreffen &lt;br /&gt;
* --&amp;gt; ansonsten kommt es zu einer endlosen Schleife  &lt;br /&gt;
&lt;br /&gt;
==== Ablauf der Schleife ====&lt;br /&gt;
* am besten wird die Funktion und die Syntax einer Schleife klar, wenn man sie Schritt für Schritt durchgeht, hier am Beispiel_1: &lt;br /&gt;
* '''erste Zeile: der Variablen n wird der Wert 1 zugeordnet''' &lt;br /&gt;
* '''zweite Zeile: so lange n kleiner als 10 ist, werden folgende Operationen durchgeführt''' &lt;br /&gt;
*(hier wird die Bedingung überprüft, trifft sie zu werden die Operationen der Schleife durchgeführt)  &lt;br /&gt;
* '''dritte Zeile: gebe den Wert von n aus''' &lt;br /&gt;
* (im ersten Durchlauf beträgt der Wert, wie in der ersten Zeile definiert, den Wert 1) &lt;br /&gt;
* '''vierte Zeile: definiere die Variable n neu, indem du den Wert von n nimmst und 1 addierst'''&lt;br /&gt;
* (n wird neu definiert als der alte Wert von n plus eins, also 1+1, damit ist n jetzt 2) &lt;br /&gt;
* sobald die Operationen der Schleife durchgeführt sind, beginnt sie wieder von Neuem, also mit der Überprüfung der Bedingung &lt;br /&gt;
* so wird der Wert n immer größer&lt;br /&gt;
* erst wenn n = 10 trifft die Bedingung nicht zu, die Operationen der Schleife werden nicht durchgeführt &lt;br /&gt;
* finden sich weiter Programmzeilen unterhalb der Schleife, die nicht Teil der Schleife sind, werden diese Programmzeilen erst nach Beendigung der Schleife ausgeführt&lt;br /&gt;
[[File:Flow diagram while_schleife.png|200px|thumb|center|flowchart ''while''-Schleife]]&lt;br /&gt;
&lt;br /&gt;
== ''len''-Befehl ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Befehl&lt;br /&gt;
len(liste)&lt;br /&gt;
 &lt;br /&gt;
# Beipiel_1:&lt;br /&gt;
tier_1 = [&amp;quot;Hund&amp;quot; ,100 ,399 ,99 ,True]&lt;br /&gt;
print(len(tier_1))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
output&lt;br /&gt;
 5&lt;br /&gt;
&lt;br /&gt;
=== Funktion ===&lt;br /&gt;
* gibt die Anzahl an Elementen in einer Liste, Dictionary, Tupel etc. an&lt;br /&gt;
&lt;br /&gt;
=== Syntax ===&lt;br /&gt;
* hinter dem Ausdruck &amp;quot;len&amp;quot; wird der Name der Datenstruktur in Klammern geschrieben &lt;br /&gt;
&lt;br /&gt;
=== Anwendungsmöglichkeiten ===&lt;br /&gt;
&lt;br /&gt;
==== ''len''-Befehl und ''while''-Schleife ====&lt;br /&gt;
* wenn mit der ''while''-Schleife eine Liste ausgeben werden soll, muss die Schleife so programmiert werden, dass die Variable die für die Indexzahl steht maximal so groß wird, wie die Anzahl an Elementen in der Liste (s.Beispiel_2)&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Beispiel_2&lt;br /&gt;
i = 0&lt;br /&gt;
tier_1 = [&amp;quot;Hund&amp;quot;, 100, 399, 99, True]&lt;br /&gt;
while i &amp;lt; 5:&lt;br /&gt;
    print(tier_1[i])&lt;br /&gt;
    i = i + 1&lt;br /&gt;
 &lt;br /&gt;
 # wird die Variable &amp;quot;i&amp;quot; größer als die Länge der Liste &lt;br /&gt;
 &lt;br /&gt;
i = 0&lt;br /&gt;
tier_1 = [&amp;quot;Hund&amp;quot;, 100, 399, 99, True]&lt;br /&gt;
while i &amp;lt; 6:&lt;br /&gt;
    print(tier_1[i])&lt;br /&gt;
    i = i + 1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
output &lt;br /&gt;
 Hund&lt;br /&gt;
 100&lt;br /&gt;
 399&lt;br /&gt;
 99&lt;br /&gt;
 True&lt;br /&gt;
 &lt;br /&gt;
 IndexError: list index out of range&lt;br /&gt;
&lt;br /&gt;
* ist die Länge einer Liste unbekannt oder zu umständlich diese zu ermitteln, hilft der ''len''-Befehl &lt;br /&gt;
* statt einer Zahl steht dann &amp;quot;len(name_der_liste)&amp;quot; in der Schleife, dadurch wird die Länge der Liste automatisch ermittelt (s. Beispiel_3)&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Beipiel_3 &lt;br /&gt;
i = 0&lt;br /&gt;
tier_1 = [&amp;quot;Hund&amp;quot;, 100, 399, 99, True]&lt;br /&gt;
while i &amp;lt; len(tier_1):&lt;br /&gt;
    print(tier_1[i])&lt;br /&gt;
    i = i + 1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
output&lt;br /&gt;
 Hund&lt;br /&gt;
 100&lt;br /&gt;
 399&lt;br /&gt;
 99&lt;br /&gt;
 True&lt;br /&gt;
&lt;br /&gt;
== ''for''- Schleife ==&lt;br /&gt;
 &lt;br /&gt;
 #Befehl: &lt;br /&gt;
 for element in sammlung: &lt;br /&gt;
 	befehl()&lt;br /&gt;
 &lt;br /&gt;
 #Beispiel_1:&lt;br /&gt;
 liste=[“Python”, 1, 4.5, True]&lt;br /&gt;
 &lt;br /&gt;
 for element in liste: &lt;br /&gt;
 	print(element)&lt;br /&gt;
&lt;br /&gt;
output&lt;br /&gt;
 Python&lt;br /&gt;
 1&lt;br /&gt;
 4.5&lt;br /&gt;
 True&lt;br /&gt;
&lt;br /&gt;
=== Funktion ===&lt;br /&gt;
* erlaubt, wie die ‘‘while‘‘- Schleife, die automatische Wiederholung von Befehlen &lt;br /&gt;
* bietet im Gegensatz zur ‘‘while‘‘-Schleife einige Vorteile (viele Funktionen der ''for''-Schleife wären zwar auch mit einer ''while''-Schleifen lösbar, die ''for''-Schleifen macht die Programmierung jedoch deutlich einfacher) &lt;br /&gt;
* die ''for''- Schleife eignet sich besonders gut für die einzelne Ausgabe der Elemente von Dictionaries &lt;br /&gt;
* sowie die Durchführung von Befehlen, die für jedes Element einer Sequenz (z.B. str) oder Sammlung (z.B. Liste) einmal durchgeführt werden soll&lt;br /&gt;
&lt;br /&gt;
=== Syntax ===&lt;br /&gt;
* nach den Ausdruck &amp;quot;for&amp;quot; kommt der  Name der Variablen, dieser steht stellvertretend für jedes Element einer Sammlung oder Sequenz&lt;br /&gt;
* beim ''input''-Befehl war es vorteilhaft die beim Programmieren noch nicht bekannte (weil erst später durch den Nutzer erfolgende) Eingabe bereits im Programmcode stellvertretende durch eine Variable zu definieren&lt;br /&gt;
* so konnte z.B. eine Rechnungen mit einer nicht bekannten Zahl programmiert werden &lt;br /&gt;
* das gleiche Prinzip gilt auch für die Variable der &amp;quot;for&amp;quot;-Schleife (diese kann natürlich jeden beliebigen Namen annehmen)  &lt;br /&gt;
* im Beispiel_1 steht die Variable &amp;quot;element&amp;quot; für die Elemente der Liste namens &amp;quot;liste&amp;quot;&lt;br /&gt;
* die Variable &amp;quot;element&amp;quot; steht zwar für alle Elemente der Liste, also “Python”, 1, 4.5 und True, aber nicht gleichzeitig &lt;br /&gt;
* im ersten Durchlauf der Schleife steht sie für das erste Element der Liste (&amp;quot;Python&amp;quot;), nun werden die Befehle der Schleife ausgeführt:&lt;br /&gt;
* print(element) wird im ersten Durchlauf also zu print(&amp;quot;Python&amp;quot;) &lt;br /&gt;
* im zweiten Durchlauf steht die Variable für das zweite Element (1), print(element) wird im zweiten Durchlauf also zu print(1) usw.&lt;br /&gt;
* der  darauf folgende Ausdruck &amp;quot;in&amp;quot; dient dazu die Liste, das Dictionary, den String etc. anzugeben, mit dessen Elemente die Schleife durchgeführt werden soll&lt;br /&gt;
* dementsprechend folgt darauf der Namen einer Liste, eines Dictionaries oder eines Strings (ein String kann durch eine Variable gespeichert sein oder direkt angegeben werden), daraufhin folgt ein Doppelpunkt&lt;br /&gt;
* die zur Schleife gehörenden Operationen sind dadurch gekennzeichnet, dass der Code  eingerückt ist  &lt;br /&gt;
&lt;br /&gt;
==== Ablauf der Schleife ==== &lt;br /&gt;
* es wird überprüft ob es ein Element gibt, wessen Wert die Variabel annehmen kann &lt;br /&gt;
* trifft das zu laufen die Befehl der Schleife ab, wobei die Variable immer für den entsprechenden Wert des Elements steht &lt;br /&gt;
* gibt es keine Elemente mehr, dessen Wert noch nicht angenommen wurde, bricht die Schleife ab&lt;br /&gt;
* somit läuft eine for-Schleife immer für jedes Element einmal ab und läuft so häufig ab wie es Elemente gibt (ohne Modifikationen s. unten)&lt;br /&gt;
&lt;br /&gt;
[[File:flowchart ''for''-Schleife.png|200px|thumb|center|flowchart ''for''-Schleife]]&lt;br /&gt;
&lt;br /&gt;
=== Anwendungsmöglichkeiten ===&lt;br /&gt;
&lt;br /&gt;
==== Ausgabe von Dictionaries ====&lt;br /&gt;
* einen großen Vorteil bringt die ''for''-Schleife bei der Ausgabe von Dictionaries &lt;br /&gt;
* da der Zugriff auf die Elemente in einem Dictionary über keys und nicht Indexzahlen erfolgt, ist die Ausgabe von Dictionaries über eine while Schleife sehr kompliziert und kann nicht in der Form s. Ausgabe von Listen mit ''while''-Schleife erfolgen&lt;br /&gt;
* die Ausgabe über die ''for''-Schleife ist sehr einfach und erfolgt wie bei der Ausgabe der Liste &lt;br /&gt;
* zu beachten ist, dass hier die Variable nicht den Wert der Elemente, sondern der keys aufnimmt&lt;br /&gt;
* schreibt man slo wie in Beispiel_2 die Variable in den ''print''-Befehl der Schleife, werden nur die keys des Dictionaries ausgegeben &lt;br /&gt;
&lt;br /&gt;
 #Beispiel_2: &lt;br /&gt;
 buch_1={&amp;quot;Buch&amp;quot;:&amp;quot;Der Herr der Ringe&amp;quot;, &amp;quot;Autor&amp;quot;:&amp;quot;Tolkien&amp;quot;, &amp;quot;Preis&amp;quot;:45}&lt;br /&gt;
 &lt;br /&gt;
 for element in buch_1: &lt;br /&gt;
     print(element)&lt;br /&gt;
&lt;br /&gt;
output&lt;br /&gt;
 Buch&lt;br /&gt;
 Autor&lt;br /&gt;
 Preis&lt;br /&gt;
&lt;br /&gt;
* um den Wert des entsprechenden keys ausgeben zu lassen, ist es notwendig die Variable als Index der Liste anzugeben (s. Beispiel_3)&lt;br /&gt;
 #Beispiel_3:&lt;br /&gt;
 buch_1={&amp;quot;Buch&amp;quot;:&amp;quot;Der Herr der Ringe&amp;quot;, &amp;quot;Autor&amp;quot;:&amp;quot;Tolkien&amp;quot;, &amp;quot;Preis&amp;quot;:45} &lt;br /&gt;
 &lt;br /&gt;
 for element in buch_1:&lt;br /&gt;
    print(buch_1[element])&lt;br /&gt;
&lt;br /&gt;
output&lt;br /&gt;
 Der Herr der Ringe&lt;br /&gt;
 Tolkien&lt;br /&gt;
 45&lt;br /&gt;
&lt;br /&gt;
* das klingt erstmal kompliziert, ergibt aber Sinn &lt;br /&gt;
* die Ausgabe von Dictionaries erfolgt über die Angabe des keys in eckigen Klammern hinter dem Namen des Dictionaries, dabei steht der key stellvertretend für das jeweilige Element der Liste &lt;br /&gt;
* da die Variable der ''for''-Schleife den Wert der keys aufnimmt, wird folglich die Variable in die eckigen Klammern hinter dem Namen des Dictionaries geschrieben&lt;br /&gt;
&lt;br /&gt;
== ''range''-Befehl ==&lt;br /&gt;
 #Befehl&lt;br /&gt;
 for element in range(Anzahl):&lt;br /&gt;
     befehl()&lt;br /&gt;
 &lt;br /&gt;
 #Beipiel_1: &lt;br /&gt;
 for element in range(10):&lt;br /&gt;
     print(element)&lt;br /&gt;
&lt;br /&gt;
output: &lt;br /&gt;
 0&lt;br /&gt;
 1&lt;br /&gt;
 2&lt;br /&gt;
 3&lt;br /&gt;
 4&lt;br /&gt;
 5&lt;br /&gt;
 6&lt;br /&gt;
 7&lt;br /&gt;
 8&lt;br /&gt;
 9&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Funktion === &lt;br /&gt;
* für die Wiederholung eines Vorgangs mit einer festen Anzahl an Wiederholungen&lt;br /&gt;
* ist auch mit ''while''-Schleife lösbar, wird durch ''range''-Befehl deutlich einfacher&lt;br /&gt;
&lt;br /&gt;
=== Syntax === &lt;br /&gt;
* hinter dem Ausdruck &amp;quot;range&amp;quot; kommt eine Klammer mit der einer Zahl&lt;br /&gt;
&lt;br /&gt;
==== range(stop) ==== &lt;br /&gt;
* schreibt man in den ''range''-Befehl nur eine Zahl, wird diese als Stoppwert genommen; automatisch ist 0 der Startwert als 1 die Schrittgröße (step)&lt;br /&gt;
&lt;br /&gt;
==== range(start, stop) ==== &lt;br /&gt;
* schreibt man in den range Befehl zwei Zahlen durch ein Komma getrennt, wird die erste Zahl als Startwert und die zweite als Stoppwert definiert(Stoppwert wird nicht ausgegeben); nimmt 1 als step an  &lt;br /&gt;
&lt;br /&gt;
==== range(start, stop, step) ==== &lt;br /&gt;
* schreibt man in den ''Range''-Befehl drei Zahlen, die jeweils mit einem Komma getrennt sind, wird die dritte Zahl als step definiert&lt;br /&gt;
&lt;br /&gt;
== ''append''-Befehl ==&lt;br /&gt;
&lt;br /&gt;
 #Befehl&lt;br /&gt;
 liste=[element_1,element_2]&lt;br /&gt;
 liste.append(element_3)&lt;br /&gt;
 &lt;br /&gt;
 #Beispiel_1: &lt;br /&gt;
 liste=[1,2,&amp;quot;Apfel&amp;quot;]&lt;br /&gt;
 liste.append(&amp;quot;Baum&amp;quot;)&lt;br /&gt;
 &lt;br /&gt;
 print(liste) &lt;br /&gt;
&lt;br /&gt;
output &lt;br /&gt;
 [1, 2, 'Apfel', 'Baum']&lt;br /&gt;
&lt;br /&gt;
=== Funktion ===&lt;br /&gt;
* fügt einer Liste ein Element hinzu &lt;br /&gt;
* wie in Beispiel_1 gezeigt, wird der Liste das Levent &amp;quot;Baum&amp;quot; hinzugefügt &lt;br /&gt;
&lt;br /&gt;
=== Syntax === &lt;br /&gt;
* hinter dem Namen der Liste folgt ein Punkt und der Ausdruck &amp;quot;append&amp;quot;, dahinter folg in Klammern das Element, welches der Liste hinzugefügt werden soll &lt;br /&gt;
* es ist auch möglich einer Liste mehrere Elemente hinzuzufügen, der Name der hinzuzufügenden Liste wird in den ''append''-Befehl geschrieben &lt;br /&gt;
* die Elemente müssen allerdings auch als Liste strukturiert sein (s.Beispiel_2) &lt;br /&gt;
&lt;br /&gt;
 #Beispiel_2:&lt;br /&gt;
 liste_1=[1,2,3,&amp;quot;Baum&amp;quot;]&lt;br /&gt;
 liste_2=[4,5,6,&amp;quot;Strauch&amp;quot;]&lt;br /&gt;
 liste_1.append(liste_2)&lt;br /&gt;
 &lt;br /&gt;
 print(liste_1)&lt;br /&gt;
&lt;br /&gt;
output&lt;br /&gt;
 [1, 2, 3, 'Baum', [4, 5, 6, 'Strauch']]&lt;br /&gt;
&lt;br /&gt;
* nun wurden zwar die Elemente der liste_2 der liste_1 hinzugefügt, allerdings als Liste in der Liste &lt;br /&gt;
* der Grund dafür ist, das der ''append''-Befehl einer Liste immer nur ein Element hinzufügt &lt;br /&gt;
* so wird eine Liste, die hinzugefügt werden soll, erst als ein einzelnes Element abgespeichert und dann hinzugefügt&lt;br /&gt;
* das Problem lässt sich einfach lösen, indem die Elemente der liste_2 einzeln und nacheinander der liste_1 hinzufügt werden, dafür eignet sich besonders gut eine ''for''-Schleife (s.Beispiel_3) &lt;br /&gt;
&lt;br /&gt;
 #Beispeil_3: &lt;br /&gt;
 liste_1=[1,2,3,&amp;quot;Baum&amp;quot;]&lt;br /&gt;
 liste_2=[4,5,6,&amp;quot;Strauch&amp;quot;]&lt;br /&gt;
 for element in liste_2: &lt;br /&gt;
     liste_1.append(element)&lt;br /&gt;
    &lt;br /&gt;
 print(liste_1)&lt;br /&gt;
&lt;br /&gt;
output&lt;br /&gt;
 [1, 2, 3, 'Baum', 4, 5, 6, 'Strauch']&lt;br /&gt;
&lt;br /&gt;
== ''if''-Befehl ==&lt;br /&gt;
&lt;br /&gt;
 #Befehl&lt;br /&gt;
 if Bedingung: &lt;br /&gt;
    Befehl &lt;br /&gt;
 &lt;br /&gt;
 #Beispiel: &lt;br /&gt;
 if 4 &amp;lt; 10: &lt;br /&gt;
     print(&amp;quot;4 ist kleiner als 10&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
output &lt;br /&gt;
 4 ist kleiner als 10&lt;br /&gt;
&lt;br /&gt;
=== Funktion === &lt;br /&gt;
* der ''if''-Befehl macht es einem Computerprorgamm möglich auf verschiedene Ereignisse unterschiedlich zu reagieren &lt;br /&gt;
* diese Funktion hebt ein Programm von einer einfachen Rechenanleitung ab &lt;br /&gt;
&lt;br /&gt;
=== Syntax ===&lt;br /&gt;
* nach dem Ausdruck &amp;quot;if&amp;quot; folgt die Bedingung die überprüft werden soll, daraufhin ein Doppelpunkt &lt;br /&gt;
* die folgenden Kommandozeilen, die zum ''if''-Befehl gehören sind dadurch gekennzeichnet, dass sie versetzt sind &lt;br /&gt;
&lt;br /&gt;
=== Ablauf der Schleife ===&lt;br /&gt;
* nach dem Ausdruck &amp;quot;if&amp;quot; wird überprüft ob die darauf folgende Bedingung zutrifft&lt;br /&gt;
* trifft die Bedingung zu, werden die Befehle ausgeführt &lt;br /&gt;
* trifft die Bedingung nicht zu, werden die Befehle übersprungen &lt;br /&gt;
* so ist der Ablauf abhängig von bestimmten Bedingungen und ändert sich je nachdem welche Bedingungen erfüllt bzw. nicht erfüllt werden &lt;br /&gt;
&lt;br /&gt;
=== Bedingungen stellen ===&lt;br /&gt;
* die Gleichheit von zwei Werten lässt sich mit &amp;quot;==&amp;quot; überprüfen &lt;br /&gt;
* damit kann die Gleichheit von int, str, float und bool überprüft werden (s.Beipsiel_2)&lt;br /&gt;
&lt;br /&gt;
 #Befehl&lt;br /&gt;
 if Bedingung_1 == Bedingung_2: &lt;br /&gt;
    Befehl&lt;br /&gt;
 &lt;br /&gt;
 #Beispiel_2:&lt;br /&gt;
 a=1&lt;br /&gt;
 b=&amp;quot;hallo&amp;quot;&lt;br /&gt;
 c=True&lt;br /&gt;
 &lt;br /&gt;
 if a==1:&lt;br /&gt;
     print(a)&lt;br /&gt;
 if b==&amp;quot;hallo&amp;quot;:&lt;br /&gt;
     print(b)&lt;br /&gt;
 if c==True:&lt;br /&gt;
     print(c)&lt;br /&gt;
&lt;br /&gt;
output&lt;br /&gt;
 1&lt;br /&gt;
 hallo&lt;br /&gt;
 True&lt;br /&gt;
&lt;br /&gt;
* um zu überprüfen ob ein Wert größer oder kleiner als ein anderer ist, werden folgende Symbole verwendet:&lt;br /&gt;
&amp;lt;, &amp;lt;=  kleiner, kleiner gleich &lt;br /&gt;
&lt;br /&gt;
&amp;gt;, &amp;gt;=  größer, größer gleich &lt;br /&gt;
* die Ungleichheit lässt sich mit &amp;quot;!=&amp;quot; überprüfen &lt;br /&gt;
* mit diesen einfachen Bedingungen und dem ''if''-Befehl lässt sich ganz einfach ein kleines Ratespiel programmieren, welches abhängig von der Eingabe des Nutzers reagieren kann &lt;br /&gt;
&lt;br /&gt;
 #Beipiel_3: &lt;br /&gt;
 eingabe=eval(input(&amp;quot;Errate die richtige Zahl zwischen 1 und 10: &amp;quot;))&lt;br /&gt;
 zahl=8&lt;br /&gt;
 if eingabe==zahl: &lt;br /&gt;
     print(&amp;quot;du hast de richtige Zahl erraten&amp;quot;)&lt;br /&gt;
 if eingabe!=zahl: &lt;br /&gt;
    print (&amp;quot;leider falsch, versuche es nochmal&amp;quot;)&lt;br /&gt;
 if eingabe&amp;gt;zahl: &lt;br /&gt;
     print(&amp;quot;versuche eine kleinere Zahl&amp;quot;)&lt;br /&gt;
 if eingabe&amp;lt;zahl: &lt;br /&gt;
     print(&amp;quot;versuche eine größere Zahl&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Zusammengesetzte Bedingungen ====&lt;br /&gt;
* wenn mehrere Bedingungen gleichzeitig überprüft werden sollen, können diese durch drei Operatoren miteinander verknüpft werden &lt;br /&gt;
* das macht einen Code kürzer und übersichtlicher, weil nicht mehrer ''if''-Befehle ineinander geschrieben werden müssen&lt;br /&gt;
# &amp;quot;and&amp;quot; wird benutzt wenn zwei oder mehrere Bedingungen gleichzeitig zutreffen müssen &lt;br /&gt;
# &amp;quot;or&amp;quot; wird benutzt wenn eine von mehreren möglichen Bedingungen zutreffen muss&lt;br /&gt;
# &amp;quot;not&amp;quot; wird zur Verneinung genutzt (hier ist zu beachten, dass alles worauf sich das &amp;quot;not&amp;quot; beziehen soll in klammern gesetzt werden muss, sonst bezieht sich der Ausdruck nur auf das erste Element) &lt;br /&gt;
&lt;br /&gt;
 #Beispiel_4:&lt;br /&gt;
 zahl=6&lt;br /&gt;
 if zahl &amp;lt;10 and zahl &amp;gt;5: &lt;br /&gt;
     print(&amp;quot;richtig&amp;quot;)&lt;br /&gt;
 &lt;br /&gt;
 #anstatt&lt;br /&gt;
 if zahl &amp;lt;10:&lt;br /&gt;
     if zahl&amp;gt;5: &lt;br /&gt;
         print(&amp;quot;richtig&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
=== ''else''-Befehl  ===&lt;br /&gt;
&lt;br /&gt;
 #Befehl &lt;br /&gt;
 if Bedingung: &lt;br /&gt;
    Befehl_1&lt;br /&gt;
 else: &lt;br /&gt;
    Befehl_2&lt;br /&gt;
 &lt;br /&gt;
 #Beispiel_1: &lt;br /&gt;
 eingabe=eval(input(&amp;quot;Errate die richtige Zahl zwischen 1 und 10: &amp;quot;))&lt;br /&gt;
 zahl=8&lt;br /&gt;
 &lt;br /&gt;
 if eingabe==zahl: &lt;br /&gt;
     print(&amp;quot;du hast de richtige Zahl erraten&amp;quot;)&lt;br /&gt;
 else: &lt;br /&gt;
 print(&amp;quot;das ist nicht die gesuchte Zahl&amp;quot;) &lt;br /&gt;
&lt;br /&gt;
==== Funktion ====&lt;br /&gt;
* erfüllt die Funktion von ''if not'' &lt;br /&gt;
* erspart dabei Arbeit, weil im Gegensatz zu 'if not' Operator, die Bedingungen, nicht extra im Befehl formuliert werden müssen &lt;br /&gt;
* der 'else'-Befehl schließt automatisch alle Bedingungen ein, die nicht vom ''if''-Befehl abgedeckt werden &lt;br /&gt;
&lt;br /&gt;
==== Syntax ====&lt;br /&gt;
* nach dem Ausdruck &amp;quot;else&amp;quot; folgt ein Doppelpunkt und der Befehl &lt;br /&gt;
* wenn die Bedingung des ''if''-Befehls nicht zutreffen, wird automatisch der ''else''-Befehl ausgeführt &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== ''elif''-Befehl === &lt;br /&gt;
&lt;br /&gt;
 #Befehl&lt;br /&gt;
 if Bedingung_1: &lt;br /&gt;
    Befehl_1&lt;br /&gt;
 elif Bedingung_2: &lt;br /&gt;
    Befehl_2 &lt;br /&gt;
 elif Bedingung_3: &lt;br /&gt;
    Befehl_3 &lt;br /&gt;
&lt;br /&gt;
==== Funktion ==== &lt;br /&gt;
* steht für &amp;quot;else if&amp;quot; &lt;br /&gt;
* ersetzt die Ineinanderschachtelungen von mehreren ''if''-Befehlen &lt;br /&gt;
* ein ''elif''-Befehl wird nur durchgeführt, wenn die vorangegangene ''if''-Bedingung nicht erfüllt wird&lt;br /&gt;
&lt;br /&gt;
==== Syntax ==== &lt;br /&gt;
* nach dem Ausdruck &amp;quot;elif&amp;quot; folgt die Bedingung, ein Doppelpunkt und der Befehl&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Funktionen == &lt;br /&gt;
&lt;br /&gt;
 #Befehl: &lt;br /&gt;
 def funktionsname (evtl. Übergabewerte): &lt;br /&gt;
        Befehl &lt;br /&gt;
 &lt;br /&gt;
 #Besipiel_1: &lt;br /&gt;
 def begrüßung():&lt;br /&gt;
     print(&amp;quot;hallo&amp;quot;)&lt;br /&gt;
 begrüßung()&lt;br /&gt;
&lt;br /&gt;
output&lt;br /&gt;
 hallo&lt;br /&gt;
&lt;br /&gt;
=== Funktion === &lt;br /&gt;
* ein Befehl kann als Funktion abgespeichert werden &lt;br /&gt;
* wird der Befehl in einem Programm häufiger verwendet, muss dieser nicht immer wieder erneut geschrieben werden, stattdessen muss nur die Funktion abgerufen werden &lt;br /&gt;
* erspart Zeit und sorgt für Übersichtlichkeit des Programms &lt;br /&gt;
* noch übersichtlicher wird ein Code, wenn man die Funktionen nicht im Hauptprogramm sondern anderen Daten abspeichern &lt;br /&gt;
&lt;br /&gt;
=== Syntax === &lt;br /&gt;
* nach dem Begriff &amp;quot;def&amp;quot; folg der Name der Funktion (sinnvoll sind Namen, die die Aufgabe der Funktion beschreiben) &lt;br /&gt;
* danach folgt eine runde Klammer, in die Klammer können Werte aus dem Hauptprogramm übernommen werden, z.B. wenn die Funktion eine Rechnung darstellt und im Laufe des Programms mit verschiedenen Werten diese Rechnung durchgeführt werden soll (s. Funktionen mit Argumenten) &lt;br /&gt;
* werden keine Werte übernommen, bleibt die Klammer leer &lt;br /&gt;
&lt;br /&gt;
=== Funktionen mit Argumenten === &lt;br /&gt;
* wird benutzt, wenn ein bestimmter Wert aus dem Hauptprogramm übernommen werden soll und es sich nicht immer um den gleichen Wert handelt &lt;br /&gt;
* die im Beispiel_1 leer geblieben Klammern, haben die Aufgabe einen Wert aus dem Hauptprogramm an die Funktion zu überreichen &lt;br /&gt;
* dabei schreibt man den Wert, der überreicht werden soll in die Klammer hinter den Funktionsnamen im Hauptprogramm --&amp;gt; der Wert wird als Argument bezeichnet &lt;br /&gt;
* in die Klammer hinter dem Funktionsnamen in der Funktion, schreibt man einen Variablennamen, der automatisch für den Wert aus dem Hauptprogramm steht &lt;br /&gt;
* stellvertretend für die Werte aus dem Hauptprogramm, kann mit dem Variablennamen ein Befehl geschrieben werden (s.Beispiel_2) &lt;br /&gt;
&lt;br /&gt;
 #Beispiel_2: &lt;br /&gt;
 def begrüßung(name): &lt;br /&gt;
     print(name, &amp;quot;sagt hallo&amp;quot;)&lt;br /&gt;
 begrüßung(&amp;quot;jack&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
output&lt;br /&gt;
 jack sagt hallo&lt;br /&gt;
&lt;br /&gt;
* die Funktion hallo ist abhängig vom Argument name. Dieses Argument muss der Funktion beim Aufrufen gegeben werden, sonst funktioniert sie nicht&lt;br /&gt;
* der Funktion wird „Jack“ als Argument für Name übergeben&lt;br /&gt;
* es können nicht nur str, sondern auch int, float und alle weiteren Datentypen und Strukturen, einer Funktion übergeben werden &lt;br /&gt;
* es ist auch möglich Funktionen mit mehreren Argumenten zu benutzen, dafür werden die Argumente mit einem Komma voneinander getrennt (s.Beipiel_3) &lt;br /&gt;
&lt;br /&gt;
 #Beispeil_3: &lt;br /&gt;
 def begrüßung(name, zahl): &lt;br /&gt;
    print(&amp;quot;Hallo ich heiße&amp;quot;, name)&lt;br /&gt;
    print(&amp;quot;und bin&amp;quot;, zahl, &amp;quot;Jahre alt&amp;quot;)&lt;br /&gt;
 &lt;br /&gt;
 eingabe_1=input(&amp;quot;Gib hier dienen Namen ein: &amp;quot;)&lt;br /&gt;
 eingabe_2=eval(input(&amp;quot;Gib hier dein Alter ein: &amp;quot;))&lt;br /&gt;
 begrüßung(eingabe_1, eingabe_2)&lt;br /&gt;
&lt;br /&gt;
output&lt;br /&gt;
 Hallo ich heiße Jack  &lt;br /&gt;
 und bin 20 Jahre alt&lt;br /&gt;
&lt;br /&gt;
=== Funktionen mit Rückgabewerten: der ''return-Befehl === &lt;br /&gt;
&lt;br /&gt;
 #Befehl&lt;br /&gt;
 def funktionsname (evtl. Übergabewerte): &lt;br /&gt;
        Ergebnis=Befehl &lt;br /&gt;
        return(Ergebnis) &lt;br /&gt;
&lt;br /&gt;
 #Beispiel_2: &lt;br /&gt;
 def Rechnung(zahl): &lt;br /&gt;
     value=3*zahl**2&lt;br /&gt;
     return(value)&lt;br /&gt;
 Ergebnis=Rechnung(4)&lt;br /&gt;
 print(Ergebnis)&lt;br /&gt;
 &lt;br /&gt;
output&lt;br /&gt;
 48&lt;br /&gt;
&lt;br /&gt;
==== Funktion ====&lt;br /&gt;
* die Ergebnisse aus den Funktionen können dem Hauptprogramm übergeben werden um damit weiter arbeiten zu können &lt;br /&gt;
&lt;br /&gt;
==== Syntax ==== &lt;br /&gt;
* nach dem Schlüsselbegriff &amp;quot;return&amp;quot; folgt eine runde Klammer mit dem Wert der zurückgegeben werden soll &lt;br /&gt;
* dieser Wert selbst kann als Variable abgespeichert werden&lt;br /&gt;
&lt;br /&gt;
== Literatur ==&lt;br /&gt;
Michael Bonacina: Python 3 Programmieren für Einsteiger. 2. Auflage. BMU Verlag, Landshut 2019, ISBN: 978-3-96645-007-2&lt;/div&gt;</summary>
		<author><name>Ani</name></author>
	</entry>
	<entry>
		<id>http://wiki.bioinfo.nat.tu-bs.de/index.php?title=3.Befehle&amp;diff=972</id>
		<title>3.Befehle</title>
		<link rel="alternate" type="text/html" href="http://wiki.bioinfo.nat.tu-bs.de/index.php?title=3.Befehle&amp;diff=972"/>
		<updated>2023-06-02T09:44:06Z</updated>

		<summary type="html">&lt;p&gt;Ani: /* Syntax */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== ''print''-Befehl ==&lt;br /&gt;
‎&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Befehl: &lt;br /&gt;
print()&lt;br /&gt;
 &lt;br /&gt;
# Beispiel: &lt;br /&gt;
print(&amp;quot;hello&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
name = &amp;quot;Max&amp;quot;&lt;br /&gt;
print(f&amp;quot;Hallo, {name}!&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
# Output:&lt;br /&gt;
# hello &lt;br /&gt;
# Hallo, Max!&lt;br /&gt;
‎&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== Funktion ===&lt;br /&gt;
* der entsprechende Inhalt des ''print''-Befehls wird in der Konsole ausgegeben &lt;br /&gt;
&lt;br /&gt;
=== Syntax ===&lt;br /&gt;
* die runden Klammern umschließen das Argument, das ausgegeben wird&lt;br /&gt;
* Wörter, bei denen es sich nicht um einen Variablennamen handelt, müssen in Anführungszeichen gesetzt werden&lt;br /&gt;
* geschieht das nicht, wird ein Syntaxfehler angezeigt (s. Beispiel_2)&lt;br /&gt;
* int und floats werden ohne Anführungszeichen eingegeben&lt;br /&gt;
* soll eine Variable innerhalb eines Strings eingefügt werden, kann ein sogenannter f-String genutzt werden. Dazu wird vor die Anführungszeichen ein f geschrieben, innerhalb des Strings werden die geschweiften Klammern dann durch den darin enthaltenen Ausdruck ersetzt (s. Beispiel_1)&lt;br /&gt;
‎&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Beispiel_2:&lt;br /&gt;
print(falsch)&lt;br /&gt;
&lt;br /&gt;
# Output:&lt;br /&gt;
# NameError: name 'falsch' is not defined&lt;br /&gt;
‎&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* Python geht davon aus, dass es sich bei „falsch“ um eine Variable handelt und möchte den Wert dieser Variablen ausgeben. Es wurde aber keine Variable mit den Namen „falsch“ definiert. Der Fehler kann durch das Hinzufügen von Anführungszeichen behoben werden:&lt;br /&gt;
&lt;br /&gt;
‎&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
print(&amp;quot;falsch&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
# Output:&lt;br /&gt;
# falsch&lt;br /&gt;
‎&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ''type''-Befehl ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Befehl&lt;br /&gt;
type()&lt;br /&gt;
&lt;br /&gt;
# Beispiel_1: &lt;br /&gt;
a = &amp;quot;abc&amp;quot;&lt;br /&gt;
d = True&lt;br /&gt;
print(type(a))&lt;br /&gt;
print(type(1))&lt;br /&gt;
print(type(1.0)&lt;br /&gt;
print(type(d))&lt;br /&gt;
 &lt;br /&gt;
buch_1 = {'Buch': 'Der Herr der Ringe', 'Autor': 'Tolkien', 'Preis': 45}&lt;br /&gt;
print(type(buch_1))&lt;br /&gt;
&lt;br /&gt;
# Output:&lt;br /&gt;
# &amp;lt;class 'str'&amp;gt;&lt;br /&gt;
# &amp;lt;class 'int'&amp;gt;&lt;br /&gt;
# &amp;lt;class 'float'&amp;gt;&lt;br /&gt;
# &amp;lt;class 'bool'&amp;gt;&lt;br /&gt;
# &amp;lt;class 'dict'&amp;gt;&lt;br /&gt;
‎&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
===Funktion===&lt;br /&gt;
* mit dem ''type''-Befehl lässt sich der Datentyp bestimmen&lt;br /&gt;
&lt;br /&gt;
=== Syntax ===&lt;br /&gt;
* um den Datentyp zu bestimmen wird dieser in die Klammern des ''type''-Befehls geschrieben &lt;br /&gt;
* dabei kann es sich direkt um den Datentyp handeln oder einen Variablennamen &lt;br /&gt;
* auch hier ist der print Befehl wieder notwendig, um das Ergebnis ausgeben zu lassen &lt;br /&gt;
* ohne den print -Befehl wird der type -Befehl zwar ausgeführt, aber nicht in der Konsole ausgegeben&lt;br /&gt;
&lt;br /&gt;
== ''input'' -Befehl ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Befehl:&lt;br /&gt;
eingabe = input()&lt;br /&gt;
 &lt;br /&gt;
# Beispiel: &lt;br /&gt;
zahl = input()&lt;br /&gt;
print(zahl)&lt;br /&gt;
&lt;br /&gt;
# output&lt;br /&gt;
 3 # eingegebene Zahl des Nutzers im Eingabefeld  &lt;br /&gt;
 3 # durch print-Befehl ausgegebene Zahl&lt;br /&gt;
‎&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== Funktionen ===&lt;br /&gt;
* ermöglicht dem Nutzer die Interaktion mit dem Programm &lt;br /&gt;
* so kann z.B. ein Rechenprogramm mit jeder beliebigen vom Nutzer eingegebenen Zahl rechnen und nicht nur mit vorab programmierten Zahlen &lt;br /&gt;
&lt;br /&gt;
=== Syntax ===&lt;br /&gt;
* nach den Ausdruck &amp;quot;input&amp;quot; folgt eine Klammer, die bei Ausführung des Programms ein Eingabefeld in der Konsole erzeugt&lt;br /&gt;
* gleichzeitig handelt es sich beim ''input''-Befehl auch um ein ''print''-Befehl, dazu muss der entsprechende Text einfach in die Klammer eingegeben werden (s. Beispiel_2)&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Beispiel_2:&lt;br /&gt;
zahl = input(&amp;quot;Gib hier deine Zahl ein: &amp;quot;)&lt;br /&gt;
 &lt;br /&gt;
print(zahl)&lt;br /&gt;
&lt;br /&gt;
# Output:&lt;br /&gt;
# Gib hier deine Zahl ein: 3&lt;br /&gt;
# 3&lt;br /&gt;
‎&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* die Eingabe des Nutzers wird meist durch eine Variable definiert, d.h.: &lt;br /&gt;
 eingabe = input()&lt;br /&gt;
* da der einzutragende Wert bei der Programmierung nicht bekannt ist, kann so „stellvertretend“ mit der Variablen programmiert werden &lt;br /&gt;
* s. Beispiel_3, bei der die Rechenoperation „* 2“ mit der Variablen „zahl“ programmiert wird, welche später durch die Eingabe des Nutzers einen Zahlenwert erhält&lt;br /&gt;
* der Wert der Variable wird also erst festgelegt, während das Programm läuft &lt;br /&gt;
* in der Konsole entsteht durch den ''input-Befehl'' ein „Eingabefeld“ (nicht direkt sichtbar) in das der Nutzer einen Wert (in Beispiel_1 eine Zahl) eintragen kann &lt;br /&gt;
* ACHTUNG!: jede Eingabe wird durch den input-Befehl automatisch als string gespeichert &lt;br /&gt;
* in Beispiel_3 wird die 3 in string-Form abgespeichert &lt;br /&gt;
* die Rechenoperation wird nicht als Multiplikation mit 2 verstanden sondern als Wiederholung des strings &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Beispiel_3: &lt;br /&gt;
zahl = input(&amp;quot;Gib hier deine Zahl ein: &amp;quot;)&lt;br /&gt;
ergebnis = zahl * 2&lt;br /&gt;
print(ergebnis)&lt;br /&gt;
&lt;br /&gt;
# output&lt;br /&gt;
# Gib hier deine Zahl ein: 3&lt;br /&gt;
# 33&lt;br /&gt;
‎&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* der string 3 wird wiederholt und es kommt 33 statt 6 heraus &lt;br /&gt;
* Lösung: man kann den Datentyp des &amp;quot;inputs&amp;quot; vorab umwandeln:&lt;br /&gt;
 int(input()) , float(input())&lt;br /&gt;
* weiß man vorab nicht, um welchen Datentypen es sich handelt, ist der eval()-Befehl zu empfehlen (s. Beispiel 4) , dieser speichert die Eingabe automatisch unter dem passenden Datentypen ab (string, integer, float) &lt;br /&gt;
* hier ist allerdings zu beachten, das in der Konsole ein string wieder in Anführungszeichen gesetzt werden muss&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;der eval()-Befehl sollte auf keinen Fall benutzt werden, wenn das Programm mit der Außenwelt (z. B. dem Internet oder anderen Dateien) interagiert, da dadurch beliebiger Code ausgeführt werden kann! Am besten vermeidet man den Befehl daher. &amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Beispiel_4 (Möglichst vermeiden): &lt;br /&gt;
zahl = eval(input(&amp;quot;Gib hier deine Zahl ein: &amp;quot;))&lt;br /&gt;
ergebnis = zahl * 2&lt;br /&gt;
print(ergebnis)&lt;br /&gt;
&lt;br /&gt;
# output&lt;br /&gt;
# Gib hier deine Zahl ein: 3&lt;br /&gt;
# 6&lt;br /&gt;
&lt;br /&gt;
# oder &lt;br /&gt;
&lt;br /&gt;
# Gib hier deine Zahl ein: 2.4&lt;br /&gt;
# 4.8&lt;br /&gt;
&lt;br /&gt;
# oder &lt;br /&gt;
&lt;br /&gt;
# Gib hier deine Zahl ein: &amp;quot;a&amp;quot;&lt;br /&gt;
# aa&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ''while''-Schleife ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Befehl&lt;br /&gt;
while Bedingung:&lt;br /&gt;
     Operation() &lt;br /&gt;
&lt;br /&gt;
# Beispiel:&lt;br /&gt;
n = 1&lt;br /&gt;
&lt;br /&gt;
while n &amp;lt; 10: &lt;br /&gt;
    print(n)&lt;br /&gt;
    n = n + 1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
output&lt;br /&gt;
 1&lt;br /&gt;
 2&lt;br /&gt;
 3&lt;br /&gt;
 4&lt;br /&gt;
 5&lt;br /&gt;
 6&lt;br /&gt;
 7&lt;br /&gt;
 8&lt;br /&gt;
 9&lt;br /&gt;
&lt;br /&gt;
=== Funktion ===&lt;br /&gt;
* bestimmte Operationen werden automatisch wiederholt &lt;br /&gt;
* erspart viel Programmierarbeit, da nicht alle Operationen einzeln programmiert werden müssen &lt;br /&gt;
&lt;br /&gt;
=== Syntax ===&lt;br /&gt;
* die Schleife wird mit dem Ausdruck &amp;quot;while&amp;quot; begonnen &lt;br /&gt;
* darauf folgt eine Bedingung, die überprüft wird (z.B. n &amp;lt; 10) gefolgt von einem Doppelpunkt&lt;br /&gt;
* in den nächsten Zeilen folgen die Operationen, die innerhalb der Schleife durchgeführt werden sollen &lt;br /&gt;
* die zur Schleife gehörenden Operationen sind dadurch gekennzeichnet, dass der Code  eingerückt ist. Dazu sollte man die Tab-Taste benutzen (nicht die Leertaste) &lt;br /&gt;
* die ''while''-Schleife sollte so programmiert sein, dass sie irgendwann zu einem Ende kommt und nicht endlos weiterläuft, d.h. die zu überprüfende Bedingung sollte irgendwann nicht mehr zutreffen &lt;br /&gt;
* --&amp;gt; ansonsten kommt es zu einer endlosen Schleife  &lt;br /&gt;
&lt;br /&gt;
==== Ablauf der Schleife ====&lt;br /&gt;
* am besten wird die Funktion und die Syntax einer Schleife klar, wenn man sie Schritt für Schritt durchgeht, hier am Beispiel_1: &lt;br /&gt;
* '''erste Zeile: der Variablen n wird der Wert 1 zugeordnet''' &lt;br /&gt;
* '''zweite Zeile: so lange n kleiner als 10 ist, werden folgende Operationen durchgeführt''' &lt;br /&gt;
*(hier wird die Bedingung überprüft, trifft sie zu werden die Operationen der Schleife durchgeführt)  &lt;br /&gt;
* '''dritte Zeile: gebe den Wert von n aus''' &lt;br /&gt;
* (im ersten Durchlauf beträgt der Wert, wie in der ersten Zeile definiert, den Wert 1) &lt;br /&gt;
* '''vierte Zeile: definiere die Variable n neu, indem du den Wert von n nimmst und 1 addierst'''&lt;br /&gt;
* (n wird neu definiert als der alte Wert von n plus eins, also 1+1, damit ist n jetzt 2) &lt;br /&gt;
* sobald die Operationen der Schleife durchgeführt sind, beginnt sie wieder von Neuem, also mit der Überprüfung der Bedingung &lt;br /&gt;
* so wird der Wert n immer größer&lt;br /&gt;
* erst wenn n = 10 trifft die Bedingung nicht zu, die Operationen der Schleife werden nicht durchgeführt &lt;br /&gt;
* finden sich weiter Programmzeilen unterhalb der Schleife, die nicht Teil der Schleife sind, werden diese Programmzeilen erst nach Beendigung der Schleife ausgeführt&lt;br /&gt;
[[File:Flow diagram while_schleife.png|200px|thumb|center|flowchart ''while''-Schleife]]&lt;br /&gt;
&lt;br /&gt;
== ''len''-Befehl ==&lt;br /&gt;
&lt;br /&gt;
 #Befehl&lt;br /&gt;
 len(liste)&lt;br /&gt;
 &lt;br /&gt;
 #Beipiel_1:&lt;br /&gt;
 tier_1=[&amp;quot;Hund&amp;quot;,100,399,99,True]&lt;br /&gt;
 print(len(tier_1))&lt;br /&gt;
&lt;br /&gt;
output&lt;br /&gt;
 5&lt;br /&gt;
&lt;br /&gt;
=== Funktion ===&lt;br /&gt;
* gibt die Anzahl an Elementen in einer Liste, Dictionary, Tupel etc. an&lt;br /&gt;
&lt;br /&gt;
=== Syntax ===&lt;br /&gt;
* hinter dem Ausdruck &amp;quot;len&amp;quot; wird der Name der Liste in Klammern geschrieben &lt;br /&gt;
&lt;br /&gt;
=== Anwendungsmöglichkeiten ===&lt;br /&gt;
&lt;br /&gt;
==== ''len''-Befehl und ''while''-Schleife ====&lt;br /&gt;
* wenn mit der ''while''-Schleife eine Liste ausgeben werden soll, muss die Schleife so programmiert werden, dass die Variable die für die Indexzahl steht maximal so groß wird, wie die Anzahl an Elementen in der Liste (s.Beispiel_2)&lt;br /&gt;
&lt;br /&gt;
 #Beispiel_2&lt;br /&gt;
 i=0&lt;br /&gt;
 tier_1=[&amp;quot;Hund&amp;quot;,100,399,99,True]&lt;br /&gt;
 while i &amp;lt; 5:&lt;br /&gt;
     print(tier_1[i])&lt;br /&gt;
     i=i+1&lt;br /&gt;
 &lt;br /&gt;
 # wird die Variabel &amp;quot;i&amp;quot; größer als die Länge der Liste &lt;br /&gt;
 &lt;br /&gt;
 i=0&lt;br /&gt;
 tier_1=[&amp;quot;Hund&amp;quot;,100,399,99,True]&lt;br /&gt;
 while i &amp;lt; 6:&lt;br /&gt;
     print(tier_1[i])&lt;br /&gt;
     i=i+1&lt;br /&gt;
&lt;br /&gt;
output &lt;br /&gt;
 Hund&lt;br /&gt;
 100&lt;br /&gt;
 399&lt;br /&gt;
 99&lt;br /&gt;
 True&lt;br /&gt;
 &lt;br /&gt;
 # wird die Variabel &amp;quot;i&amp;quot; größer als die Länge der Liste&lt;br /&gt;
 &lt;br /&gt;
 IndexError: list index out of range&lt;br /&gt;
&lt;br /&gt;
* ist die Länge einer Liste unbekannt oder zu umständlich diese zu ermitteln, hilft der ''len''-Befehl &lt;br /&gt;
* statt einer Zahl steht dann &amp;quot;len(name_der_liste)&amp;quot; in der Schleife, dadurch wird die Länge der Liste automatisch ermittelt (s.Beispiel_3)&lt;br /&gt;
&lt;br /&gt;
 #Beipiel_3 &lt;br /&gt;
 i=0&lt;br /&gt;
 tier_1=[&amp;quot;Hund&amp;quot;,100,399,99,True]&lt;br /&gt;
 while i &amp;lt; len(tier_1):&lt;br /&gt;
    print(tier_1[i])&lt;br /&gt;
    i=i+1&lt;br /&gt;
&lt;br /&gt;
output&lt;br /&gt;
 Hund&lt;br /&gt;
 100&lt;br /&gt;
 399&lt;br /&gt;
 99&lt;br /&gt;
 True&lt;br /&gt;
&lt;br /&gt;
== ''for''- Schleife ==&lt;br /&gt;
 &lt;br /&gt;
 #Befehl: &lt;br /&gt;
 for element in sammlung: &lt;br /&gt;
 	befehl()&lt;br /&gt;
 &lt;br /&gt;
 #Beispiel_1:&lt;br /&gt;
 liste=[“Python”, 1, 4.5, True]&lt;br /&gt;
 &lt;br /&gt;
 for element in liste: &lt;br /&gt;
 	print(element)&lt;br /&gt;
&lt;br /&gt;
output&lt;br /&gt;
 Python&lt;br /&gt;
 1&lt;br /&gt;
 4.5&lt;br /&gt;
 True&lt;br /&gt;
&lt;br /&gt;
=== Funktion ===&lt;br /&gt;
* erlaubt, wie die ‘‘while‘‘- Schleife, die automatische Wiederholung von Befehlen &lt;br /&gt;
* bietet im Gegensatz zur ‘‘while‘‘-Schleife einige Vorteile (viele Funktionen der ''for''-Schleife wären zwar auch mit einer ''while''-Schleifen lösbar, die ''for''-Schleifen macht die Programmierung jedoch deutlich einfacher) &lt;br /&gt;
* die ''for''- Schleife eignet sich besonders gut für die einzelne Ausgabe der Elemente von Dictionaries &lt;br /&gt;
* sowie die Durchführung von Befehlen, die für jedes Element einer Sequenz (z.B. str) oder Sammlung (z.B. Liste) einmal durchgeführt werden soll&lt;br /&gt;
&lt;br /&gt;
=== Syntax ===&lt;br /&gt;
* nach den Ausdruck &amp;quot;for&amp;quot; kommt der  Name der Variablen, dieser steht stellvertretend für jedes Element einer Sammlung oder Sequenz&lt;br /&gt;
* beim ''input''-Befehl war es vorteilhaft die beim Programmieren noch nicht bekannte (weil erst später durch den Nutzer erfolgende) Eingabe bereits im Programmcode stellvertretende durch eine Variable zu definieren&lt;br /&gt;
* so konnte z.B. eine Rechnungen mit einer nicht bekannten Zahl programmiert werden &lt;br /&gt;
* das gleiche Prinzip gilt auch für die Variable der &amp;quot;for&amp;quot;-Schleife (diese kann natürlich jeden beliebigen Namen annehmen)  &lt;br /&gt;
* im Beispiel_1 steht die Variable &amp;quot;element&amp;quot; für die Elemente der Liste namens &amp;quot;liste&amp;quot;&lt;br /&gt;
* die Variable &amp;quot;element&amp;quot; steht zwar für alle Elemente der Liste, also “Python”, 1, 4.5 und True, aber nicht gleichzeitig &lt;br /&gt;
* im ersten Durchlauf der Schleife steht sie für das erste Element der Liste (&amp;quot;Python&amp;quot;), nun werden die Befehle der Schleife ausgeführt:&lt;br /&gt;
* print(element) wird im ersten Durchlauf also zu print(&amp;quot;Python&amp;quot;) &lt;br /&gt;
* im zweiten Durchlauf steht die Variable für das zweite Element (1), print(element) wird im zweiten Durchlauf also zu print(1) usw.&lt;br /&gt;
* der  darauf folgende Ausdruck &amp;quot;in&amp;quot; dient dazu die Liste, das Dictionary, den String etc. anzugeben, mit dessen Elemente die Schleife durchgeführt werden soll&lt;br /&gt;
* dementsprechend folgt darauf der Namen einer Liste, eines Dictionaries oder eines Strings (ein String kann durch eine Variable gespeichert sein oder direkt angegeben werden), daraufhin folgt ein Doppelpunkt&lt;br /&gt;
* die zur Schleife gehörenden Operationen sind dadurch gekennzeichnet, dass der Code  eingerückt ist  &lt;br /&gt;
&lt;br /&gt;
==== Ablauf der Schleife ==== &lt;br /&gt;
* es wird überprüft ob es ein Element gibt, wessen Wert die Variabel annehmen kann &lt;br /&gt;
* trifft das zu laufen die Befehl der Schleife ab, wobei die Variable immer für den entsprechenden Wert des Elements steht &lt;br /&gt;
* gibt es keine Elemente mehr, dessen Wert noch nicht angenommen wurde, bricht die Schleife ab&lt;br /&gt;
* somit läuft eine for-Schleife immer für jedes Element einmal ab und läuft so häufig ab wie es Elemente gibt (ohne Modifikationen s. unten)&lt;br /&gt;
&lt;br /&gt;
[[File:flowchart ''for''-Schleife.png|200px|thumb|center|flowchart ''for''-Schleife]]&lt;br /&gt;
&lt;br /&gt;
=== Anwendungsmöglichkeiten ===&lt;br /&gt;
&lt;br /&gt;
==== Ausgabe von Dictionaries ====&lt;br /&gt;
* einen großen Vorteil bringt die ''for''-Schleife bei der Ausgabe von Dictionaries &lt;br /&gt;
* da der Zugriff auf die Elemente in einem Dictionary über keys und nicht Indexzahlen erfolgt, ist die Ausgabe von Dictionaries über eine while Schleife sehr kompliziert und kann nicht in der Form s. Ausgabe von Listen mit ''while''-Schleife erfolgen&lt;br /&gt;
* die Ausgabe über die ''for''-Schleife ist sehr einfach und erfolgt wie bei der Ausgabe der Liste &lt;br /&gt;
* zu beachten ist, dass hier die Variable nicht den Wert der Elemente, sondern der keys aufnimmt&lt;br /&gt;
* schreibt man slo wie in Beispiel_2 die Variable in den ''print''-Befehl der Schleife, werden nur die keys des Dictionaries ausgegeben &lt;br /&gt;
&lt;br /&gt;
 #Beispiel_2: &lt;br /&gt;
 buch_1={&amp;quot;Buch&amp;quot;:&amp;quot;Der Herr der Ringe&amp;quot;, &amp;quot;Autor&amp;quot;:&amp;quot;Tolkien&amp;quot;, &amp;quot;Preis&amp;quot;:45}&lt;br /&gt;
 &lt;br /&gt;
 for element in buch_1: &lt;br /&gt;
     print(element)&lt;br /&gt;
&lt;br /&gt;
output&lt;br /&gt;
 Buch&lt;br /&gt;
 Autor&lt;br /&gt;
 Preis&lt;br /&gt;
&lt;br /&gt;
* um den Wert des entsprechenden keys ausgeben zu lassen, ist es notwendig die Variable als Index der Liste anzugeben (s. Beispiel_3)&lt;br /&gt;
 #Beispiel_3:&lt;br /&gt;
 buch_1={&amp;quot;Buch&amp;quot;:&amp;quot;Der Herr der Ringe&amp;quot;, &amp;quot;Autor&amp;quot;:&amp;quot;Tolkien&amp;quot;, &amp;quot;Preis&amp;quot;:45} &lt;br /&gt;
 &lt;br /&gt;
 for element in buch_1:&lt;br /&gt;
    print(buch_1[element])&lt;br /&gt;
&lt;br /&gt;
output&lt;br /&gt;
 Der Herr der Ringe&lt;br /&gt;
 Tolkien&lt;br /&gt;
 45&lt;br /&gt;
&lt;br /&gt;
* das klingt erstmal kompliziert, ergibt aber Sinn &lt;br /&gt;
* die Ausgabe von Dictionaries erfolgt über die Angabe des keys in eckigen Klammern hinter dem Namen des Dictionaries, dabei steht der key stellvertretend für das jeweilige Element der Liste &lt;br /&gt;
* da die Variable der ''for''-Schleife den Wert der keys aufnimmt, wird folglich die Variable in die eckigen Klammern hinter dem Namen des Dictionaries geschrieben&lt;br /&gt;
&lt;br /&gt;
== ''range''-Befehl ==&lt;br /&gt;
 #Befehl&lt;br /&gt;
 for element in range(Anzahl):&lt;br /&gt;
     befehl()&lt;br /&gt;
 &lt;br /&gt;
 #Beipiel_1: &lt;br /&gt;
 for element in range(10):&lt;br /&gt;
     print(element)&lt;br /&gt;
&lt;br /&gt;
output: &lt;br /&gt;
 0&lt;br /&gt;
 1&lt;br /&gt;
 2&lt;br /&gt;
 3&lt;br /&gt;
 4&lt;br /&gt;
 5&lt;br /&gt;
 6&lt;br /&gt;
 7&lt;br /&gt;
 8&lt;br /&gt;
 9&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Funktion === &lt;br /&gt;
* für die Wiederholung eines Vorgangs mit einer festen Anzahl an Wiederholungen&lt;br /&gt;
* ist auch mit ''while''-Schleife lösbar, wird durch ''range''-Befehl deutlich einfacher&lt;br /&gt;
&lt;br /&gt;
=== Syntax === &lt;br /&gt;
* hinter dem Ausdruck &amp;quot;range&amp;quot; kommt eine Klammer mit der einer Zahl&lt;br /&gt;
&lt;br /&gt;
==== range(stop) ==== &lt;br /&gt;
* schreibt man in den ''range''-Befehl nur eine Zahl, wird diese als Stoppwert genommen; automatisch ist 0 der Startwert als 1 die Schrittgröße (step)&lt;br /&gt;
&lt;br /&gt;
==== range(start, stop) ==== &lt;br /&gt;
* schreibt man in den range Befehl zwei Zahlen durch ein Komma getrennt, wird die erste Zahl als Startwert und die zweite als Stoppwert definiert(Stoppwert wird nicht ausgegeben); nimmt 1 als step an  &lt;br /&gt;
&lt;br /&gt;
==== range(start, stop, step) ==== &lt;br /&gt;
* schreibt man in den ''Range''-Befehl drei Zahlen, die jeweils mit einem Komma getrennt sind, wird die dritte Zahl als step definiert&lt;br /&gt;
&lt;br /&gt;
== ''append''-Befehl ==&lt;br /&gt;
&lt;br /&gt;
 #Befehl&lt;br /&gt;
 liste=[element_1,element_2]&lt;br /&gt;
 liste.append(element_3)&lt;br /&gt;
 &lt;br /&gt;
 #Beispiel_1: &lt;br /&gt;
 liste=[1,2,&amp;quot;Apfel&amp;quot;]&lt;br /&gt;
 liste.append(&amp;quot;Baum&amp;quot;)&lt;br /&gt;
 &lt;br /&gt;
 print(liste) &lt;br /&gt;
&lt;br /&gt;
output &lt;br /&gt;
 [1, 2, 'Apfel', 'Baum']&lt;br /&gt;
&lt;br /&gt;
=== Funktion ===&lt;br /&gt;
* fügt einer Liste ein Element hinzu &lt;br /&gt;
* wie in Beispiel_1 gezeigt, wird der Liste das Levent &amp;quot;Baum&amp;quot; hinzugefügt &lt;br /&gt;
&lt;br /&gt;
=== Syntax === &lt;br /&gt;
* hinter dem Namen der Liste folgt ein Punkt und der Ausdruck &amp;quot;append&amp;quot;, dahinter folg in Klammern das Element, welches der Liste hinzugefügt werden soll &lt;br /&gt;
* es ist auch möglich einer Liste mehrere Elemente hinzuzufügen, der Name der hinzuzufügenden Liste wird in den ''append''-Befehl geschrieben &lt;br /&gt;
* die Elemente müssen allerdings auch als Liste strukturiert sein (s.Beispiel_2) &lt;br /&gt;
&lt;br /&gt;
 #Beispiel_2:&lt;br /&gt;
 liste_1=[1,2,3,&amp;quot;Baum&amp;quot;]&lt;br /&gt;
 liste_2=[4,5,6,&amp;quot;Strauch&amp;quot;]&lt;br /&gt;
 liste_1.append(liste_2)&lt;br /&gt;
 &lt;br /&gt;
 print(liste_1)&lt;br /&gt;
&lt;br /&gt;
output&lt;br /&gt;
 [1, 2, 3, 'Baum', [4, 5, 6, 'Strauch']]&lt;br /&gt;
&lt;br /&gt;
* nun wurden zwar die Elemente der liste_2 der liste_1 hinzugefügt, allerdings als Liste in der Liste &lt;br /&gt;
* der Grund dafür ist, das der ''append''-Befehl einer Liste immer nur ein Element hinzufügt &lt;br /&gt;
* so wird eine Liste, die hinzugefügt werden soll, erst als ein einzelnes Element abgespeichert und dann hinzugefügt&lt;br /&gt;
* das Problem lässt sich einfach lösen, indem die Elemente der liste_2 einzeln und nacheinander der liste_1 hinzufügt werden, dafür eignet sich besonders gut eine ''for''-Schleife (s.Beispiel_3) &lt;br /&gt;
&lt;br /&gt;
 #Beispeil_3: &lt;br /&gt;
 liste_1=[1,2,3,&amp;quot;Baum&amp;quot;]&lt;br /&gt;
 liste_2=[4,5,6,&amp;quot;Strauch&amp;quot;]&lt;br /&gt;
 for element in liste_2: &lt;br /&gt;
     liste_1.append(element)&lt;br /&gt;
    &lt;br /&gt;
 print(liste_1)&lt;br /&gt;
&lt;br /&gt;
output&lt;br /&gt;
 [1, 2, 3, 'Baum', 4, 5, 6, 'Strauch']&lt;br /&gt;
&lt;br /&gt;
== ''if''-Befehl ==&lt;br /&gt;
&lt;br /&gt;
 #Befehl&lt;br /&gt;
 if Bedingung: &lt;br /&gt;
    Befehl &lt;br /&gt;
 &lt;br /&gt;
 #Beispiel: &lt;br /&gt;
 if 4 &amp;lt; 10: &lt;br /&gt;
     print(&amp;quot;4 ist kleiner als 10&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
output &lt;br /&gt;
 4 ist kleiner als 10&lt;br /&gt;
&lt;br /&gt;
=== Funktion === &lt;br /&gt;
* der ''if''-Befehl macht es einem Computerprorgamm möglich auf verschiedene Ereignisse unterschiedlich zu reagieren &lt;br /&gt;
* diese Funktion hebt ein Programm von einer einfachen Rechenanleitung ab &lt;br /&gt;
&lt;br /&gt;
=== Syntax ===&lt;br /&gt;
* nach dem Ausdruck &amp;quot;if&amp;quot; folgt die Bedingung die überprüft werden soll, daraufhin ein Doppelpunkt &lt;br /&gt;
* die folgenden Kommandozeilen, die zum ''if''-Befehl gehören sind dadurch gekennzeichnet, dass sie versetzt sind &lt;br /&gt;
&lt;br /&gt;
=== Ablauf der Schleife ===&lt;br /&gt;
* nach dem Ausdruck &amp;quot;if&amp;quot; wird überprüft ob die darauf folgende Bedingung zutrifft&lt;br /&gt;
* trifft die Bedingung zu, werden die Befehle ausgeführt &lt;br /&gt;
* trifft die Bedingung nicht zu, werden die Befehle übersprungen &lt;br /&gt;
* so ist der Ablauf abhängig von bestimmten Bedingungen und ändert sich je nachdem welche Bedingungen erfüllt bzw. nicht erfüllt werden &lt;br /&gt;
&lt;br /&gt;
=== Bedingungen stellen ===&lt;br /&gt;
* die Gleichheit von zwei Werten lässt sich mit &amp;quot;==&amp;quot; überprüfen &lt;br /&gt;
* damit kann die Gleichheit von int, str, float und bool überprüft werden (s.Beipsiel_2)&lt;br /&gt;
&lt;br /&gt;
 #Befehl&lt;br /&gt;
 if Bedingung_1 == Bedingung_2: &lt;br /&gt;
    Befehl&lt;br /&gt;
 &lt;br /&gt;
 #Beispiel_2:&lt;br /&gt;
 a=1&lt;br /&gt;
 b=&amp;quot;hallo&amp;quot;&lt;br /&gt;
 c=True&lt;br /&gt;
 &lt;br /&gt;
 if a==1:&lt;br /&gt;
     print(a)&lt;br /&gt;
 if b==&amp;quot;hallo&amp;quot;:&lt;br /&gt;
     print(b)&lt;br /&gt;
 if c==True:&lt;br /&gt;
     print(c)&lt;br /&gt;
&lt;br /&gt;
output&lt;br /&gt;
 1&lt;br /&gt;
 hallo&lt;br /&gt;
 True&lt;br /&gt;
&lt;br /&gt;
* um zu überprüfen ob ein Wert größer oder kleiner als ein anderer ist, werden folgende Symbole verwendet:&lt;br /&gt;
&amp;lt;, &amp;lt;=  kleiner, kleiner gleich &lt;br /&gt;
&lt;br /&gt;
&amp;gt;, &amp;gt;=  größer, größer gleich &lt;br /&gt;
* die Ungleichheit lässt sich mit &amp;quot;!=&amp;quot; überprüfen &lt;br /&gt;
* mit diesen einfachen Bedingungen und dem ''if''-Befehl lässt sich ganz einfach ein kleines Ratespiel programmieren, welches abhängig von der Eingabe des Nutzers reagieren kann &lt;br /&gt;
&lt;br /&gt;
 #Beipiel_3: &lt;br /&gt;
 eingabe=eval(input(&amp;quot;Errate die richtige Zahl zwischen 1 und 10: &amp;quot;))&lt;br /&gt;
 zahl=8&lt;br /&gt;
 if eingabe==zahl: &lt;br /&gt;
     print(&amp;quot;du hast de richtige Zahl erraten&amp;quot;)&lt;br /&gt;
 if eingabe!=zahl: &lt;br /&gt;
    print (&amp;quot;leider falsch, versuche es nochmal&amp;quot;)&lt;br /&gt;
 if eingabe&amp;gt;zahl: &lt;br /&gt;
     print(&amp;quot;versuche eine kleinere Zahl&amp;quot;)&lt;br /&gt;
 if eingabe&amp;lt;zahl: &lt;br /&gt;
     print(&amp;quot;versuche eine größere Zahl&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Zusammengesetzte Bedingungen ====&lt;br /&gt;
* wenn mehrere Bedingungen gleichzeitig überprüft werden sollen, können diese durch drei Operatoren miteinander verknüpft werden &lt;br /&gt;
* das macht einen Code kürzer und übersichtlicher, weil nicht mehrer ''if''-Befehle ineinander geschrieben werden müssen&lt;br /&gt;
# &amp;quot;and&amp;quot; wird benutzt wenn zwei oder mehrere Bedingungen gleichzeitig zutreffen müssen &lt;br /&gt;
# &amp;quot;or&amp;quot; wird benutzt wenn eine von mehreren möglichen Bedingungen zutreffen muss&lt;br /&gt;
# &amp;quot;not&amp;quot; wird zur Verneinung genutzt (hier ist zu beachten, dass alles worauf sich das &amp;quot;not&amp;quot; beziehen soll in klammern gesetzt werden muss, sonst bezieht sich der Ausdruck nur auf das erste Element) &lt;br /&gt;
&lt;br /&gt;
 #Beispiel_4:&lt;br /&gt;
 zahl=6&lt;br /&gt;
 if zahl &amp;lt;10 and zahl &amp;gt;5: &lt;br /&gt;
     print(&amp;quot;richtig&amp;quot;)&lt;br /&gt;
 &lt;br /&gt;
 #anstatt&lt;br /&gt;
 if zahl &amp;lt;10:&lt;br /&gt;
     if zahl&amp;gt;5: &lt;br /&gt;
         print(&amp;quot;richtig&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
=== ''else''-Befehl  ===&lt;br /&gt;
&lt;br /&gt;
 #Befehl &lt;br /&gt;
 if Bedingung: &lt;br /&gt;
    Befehl_1&lt;br /&gt;
 else: &lt;br /&gt;
    Befehl_2&lt;br /&gt;
 &lt;br /&gt;
 #Beispiel_1: &lt;br /&gt;
 eingabe=eval(input(&amp;quot;Errate die richtige Zahl zwischen 1 und 10: &amp;quot;))&lt;br /&gt;
 zahl=8&lt;br /&gt;
 &lt;br /&gt;
 if eingabe==zahl: &lt;br /&gt;
     print(&amp;quot;du hast de richtige Zahl erraten&amp;quot;)&lt;br /&gt;
 else: &lt;br /&gt;
 print(&amp;quot;das ist nicht die gesuchte Zahl&amp;quot;) &lt;br /&gt;
&lt;br /&gt;
==== Funktion ====&lt;br /&gt;
* erfüllt die Funktion von ''if not'' &lt;br /&gt;
* erspart dabei Arbeit, weil im Gegensatz zu 'if not' Operator, die Bedingungen, nicht extra im Befehl formuliert werden müssen &lt;br /&gt;
* der 'else'-Befehl schließt automatisch alle Bedingungen ein, die nicht vom ''if''-Befehl abgedeckt werden &lt;br /&gt;
&lt;br /&gt;
==== Syntax ====&lt;br /&gt;
* nach dem Ausdruck &amp;quot;else&amp;quot; folgt ein Doppelpunkt und der Befehl &lt;br /&gt;
* wenn die Bedingung des ''if''-Befehls nicht zutreffen, wird automatisch der ''else''-Befehl ausgeführt &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== ''elif''-Befehl === &lt;br /&gt;
&lt;br /&gt;
 #Befehl&lt;br /&gt;
 if Bedingung_1: &lt;br /&gt;
    Befehl_1&lt;br /&gt;
 elif Bedingung_2: &lt;br /&gt;
    Befehl_2 &lt;br /&gt;
 elif Bedingung_3: &lt;br /&gt;
    Befehl_3 &lt;br /&gt;
&lt;br /&gt;
==== Funktion ==== &lt;br /&gt;
* steht für &amp;quot;else if&amp;quot; &lt;br /&gt;
* ersetzt die Ineinanderschachtelungen von mehreren ''if''-Befehlen &lt;br /&gt;
* ein ''elif''-Befehl wird nur durchgeführt, wenn die vorangegangene ''if''-Bedingung nicht erfüllt wird&lt;br /&gt;
&lt;br /&gt;
==== Syntax ==== &lt;br /&gt;
* nach dem Ausdruck &amp;quot;elif&amp;quot; folgt die Bedingung, ein Doppelpunkt und der Befehl&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Funktionen == &lt;br /&gt;
&lt;br /&gt;
 #Befehl: &lt;br /&gt;
 def funktionsname (evtl. Übergabewerte): &lt;br /&gt;
        Befehl &lt;br /&gt;
 &lt;br /&gt;
 #Besipiel_1: &lt;br /&gt;
 def begrüßung():&lt;br /&gt;
     print(&amp;quot;hallo&amp;quot;)&lt;br /&gt;
 begrüßung()&lt;br /&gt;
&lt;br /&gt;
output&lt;br /&gt;
 hallo&lt;br /&gt;
&lt;br /&gt;
=== Funktion === &lt;br /&gt;
* ein Befehl kann als Funktion abgespeichert werden &lt;br /&gt;
* wird der Befehl in einem Programm häufiger verwendet, muss dieser nicht immer wieder erneut geschrieben werden, stattdessen muss nur die Funktion abgerufen werden &lt;br /&gt;
* erspart Zeit und sorgt für Übersichtlichkeit des Programms &lt;br /&gt;
* noch übersichtlicher wird ein Code, wenn man die Funktionen nicht im Hauptprogramm sondern anderen Daten abspeichern &lt;br /&gt;
&lt;br /&gt;
=== Syntax === &lt;br /&gt;
* nach dem Begriff &amp;quot;def&amp;quot; folg der Name der Funktion (sinnvoll sind Namen, die die Aufgabe der Funktion beschreiben) &lt;br /&gt;
* danach folgt eine runde Klammer, in die Klammer können Werte aus dem Hauptprogramm übernommen werden, z.B. wenn die Funktion eine Rechnung darstellt und im Laufe des Programms mit verschiedenen Werten diese Rechnung durchgeführt werden soll (s. Funktionen mit Argumenten) &lt;br /&gt;
* werden keine Werte übernommen, bleibt die Klammer leer &lt;br /&gt;
&lt;br /&gt;
=== Funktionen mit Argumenten === &lt;br /&gt;
* wird benutzt, wenn ein bestimmter Wert aus dem Hauptprogramm übernommen werden soll und es sich nicht immer um den gleichen Wert handelt &lt;br /&gt;
* die im Beispiel_1 leer geblieben Klammern, haben die Aufgabe einen Wert aus dem Hauptprogramm an die Funktion zu überreichen &lt;br /&gt;
* dabei schreibt man den Wert, der überreicht werden soll in die Klammer hinter den Funktionsnamen im Hauptprogramm --&amp;gt; der Wert wird als Argument bezeichnet &lt;br /&gt;
* in die Klammer hinter dem Funktionsnamen in der Funktion, schreibt man einen Variablennamen, der automatisch für den Wert aus dem Hauptprogramm steht &lt;br /&gt;
* stellvertretend für die Werte aus dem Hauptprogramm, kann mit dem Variablennamen ein Befehl geschrieben werden (s.Beispiel_2) &lt;br /&gt;
&lt;br /&gt;
 #Beispiel_2: &lt;br /&gt;
 def begrüßung(name): &lt;br /&gt;
     print(name, &amp;quot;sagt hallo&amp;quot;)&lt;br /&gt;
 begrüßung(&amp;quot;jack&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
output&lt;br /&gt;
 jack sagt hallo&lt;br /&gt;
&lt;br /&gt;
* die Funktion hallo ist abhängig vom Argument name. Dieses Argument muss der Funktion beim Aufrufen gegeben werden, sonst funktioniert sie nicht&lt;br /&gt;
* der Funktion wird „Jack“ als Argument für Name übergeben&lt;br /&gt;
* es können nicht nur str, sondern auch int, float und alle weiteren Datentypen und Strukturen, einer Funktion übergeben werden &lt;br /&gt;
* es ist auch möglich Funktionen mit mehreren Argumenten zu benutzen, dafür werden die Argumente mit einem Komma voneinander getrennt (s.Beipiel_3) &lt;br /&gt;
&lt;br /&gt;
 #Beispeil_3: &lt;br /&gt;
 def begrüßung(name, zahl): &lt;br /&gt;
    print(&amp;quot;Hallo ich heiße&amp;quot;, name)&lt;br /&gt;
    print(&amp;quot;und bin&amp;quot;, zahl, &amp;quot;Jahre alt&amp;quot;)&lt;br /&gt;
 &lt;br /&gt;
 eingabe_1=input(&amp;quot;Gib hier dienen Namen ein: &amp;quot;)&lt;br /&gt;
 eingabe_2=eval(input(&amp;quot;Gib hier dein Alter ein: &amp;quot;))&lt;br /&gt;
 begrüßung(eingabe_1, eingabe_2)&lt;br /&gt;
&lt;br /&gt;
output&lt;br /&gt;
 Hallo ich heiße Jack  &lt;br /&gt;
 und bin 20 Jahre alt&lt;br /&gt;
&lt;br /&gt;
=== Funktionen mit Rückgabewerten: der ''return-Befehl === &lt;br /&gt;
&lt;br /&gt;
 #Befehl&lt;br /&gt;
 def funktionsname (evtl. Übergabewerte): &lt;br /&gt;
        Ergebnis=Befehl &lt;br /&gt;
        return(Ergebnis) &lt;br /&gt;
&lt;br /&gt;
 #Beispiel_2: &lt;br /&gt;
 def Rechnung(zahl): &lt;br /&gt;
     value=3*zahl**2&lt;br /&gt;
     return(value)&lt;br /&gt;
 Ergebnis=Rechnung(4)&lt;br /&gt;
 print(Ergebnis)&lt;br /&gt;
 &lt;br /&gt;
output&lt;br /&gt;
 48&lt;br /&gt;
&lt;br /&gt;
==== Funktion ====&lt;br /&gt;
* die Ergebnisse aus den Funktionen können dem Hauptprogramm übergeben werden um damit weiter arbeiten zu können &lt;br /&gt;
&lt;br /&gt;
==== Syntax ==== &lt;br /&gt;
* nach dem Schlüsselbegriff &amp;quot;return&amp;quot; folgt eine runde Klammer mit dem Wert der zurückgegeben werden soll &lt;br /&gt;
* dieser Wert selbst kann als Variable abgespeichert werden&lt;br /&gt;
&lt;br /&gt;
== Literatur ==&lt;br /&gt;
Michael Bonacina: Python 3 Programmieren für Einsteiger. 2. Auflage. BMU Verlag, Landshut 2019, ISBN: 978-3-96645-007-2&lt;/div&gt;</summary>
		<author><name>Ani</name></author>
	</entry>
	<entry>
		<id>http://wiki.bioinfo.nat.tu-bs.de/index.php?title=3.Befehle&amp;diff=971</id>
		<title>3.Befehle</title>
		<link rel="alternate" type="text/html" href="http://wiki.bioinfo.nat.tu-bs.de/index.php?title=3.Befehle&amp;diff=971"/>
		<updated>2023-06-02T09:43:16Z</updated>

		<summary type="html">&lt;p&gt;Ani: /* while-Schleife */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== ''print''-Befehl ==&lt;br /&gt;
‎&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Befehl: &lt;br /&gt;
print()&lt;br /&gt;
 &lt;br /&gt;
# Beispiel: &lt;br /&gt;
print(&amp;quot;hello&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
name = &amp;quot;Max&amp;quot;&lt;br /&gt;
print(f&amp;quot;Hallo, {name}!&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
# Output:&lt;br /&gt;
# hello &lt;br /&gt;
# Hallo, Max!&lt;br /&gt;
‎&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== Funktion ===&lt;br /&gt;
* der entsprechende Inhalt des ''print''-Befehls wird in der Konsole ausgegeben &lt;br /&gt;
&lt;br /&gt;
=== Syntax ===&lt;br /&gt;
* die runden Klammern umschließen das Argument, das ausgegeben wird&lt;br /&gt;
* Wörter, bei denen es sich nicht um einen Variablennamen handelt, müssen in Anführungszeichen gesetzt werden&lt;br /&gt;
* geschieht das nicht, wird ein Syntaxfehler angezeigt (s. Beispiel_2)&lt;br /&gt;
* int und floats werden ohne Anführungszeichen eingegeben&lt;br /&gt;
* soll eine Variable innerhalb eines Strings eingefügt werden, kann ein sogenannter f-String genutzt werden. Dazu wird vor die Anführungszeichen ein f geschrieben, innerhalb des Strings werden die geschweiften Klammern dann durch den darin enthaltenen Ausdruck ersetzt (s. Beispiel_1)&lt;br /&gt;
‎&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Beispiel_2:&lt;br /&gt;
print(falsch)&lt;br /&gt;
&lt;br /&gt;
# Output:&lt;br /&gt;
# NameError: name 'falsch' is not defined&lt;br /&gt;
‎&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* Python geht davon aus, dass es sich bei „falsch“ um eine Variable handelt und möchte den Wert dieser Variablen ausgeben. Es wurde aber keine Variable mit den Namen „falsch“ definiert. Der Fehler kann durch das Hinzufügen von Anführungszeichen behoben werden:&lt;br /&gt;
&lt;br /&gt;
‎&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
print(&amp;quot;falsch&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
# Output:&lt;br /&gt;
# falsch&lt;br /&gt;
‎&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ''type''-Befehl ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Befehl&lt;br /&gt;
type()&lt;br /&gt;
&lt;br /&gt;
# Beispiel_1: &lt;br /&gt;
a = &amp;quot;abc&amp;quot;&lt;br /&gt;
d = True&lt;br /&gt;
print(type(a))&lt;br /&gt;
print(type(1))&lt;br /&gt;
print(type(1.0)&lt;br /&gt;
print(type(d))&lt;br /&gt;
 &lt;br /&gt;
buch_1 = {'Buch': 'Der Herr der Ringe', 'Autor': 'Tolkien', 'Preis': 45}&lt;br /&gt;
print(type(buch_1))&lt;br /&gt;
&lt;br /&gt;
# Output:&lt;br /&gt;
# &amp;lt;class 'str'&amp;gt;&lt;br /&gt;
# &amp;lt;class 'int'&amp;gt;&lt;br /&gt;
# &amp;lt;class 'float'&amp;gt;&lt;br /&gt;
# &amp;lt;class 'bool'&amp;gt;&lt;br /&gt;
# &amp;lt;class 'dict'&amp;gt;&lt;br /&gt;
‎&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
===Funktion===&lt;br /&gt;
* mit dem ''type''-Befehl lässt sich der Datentyp bestimmen&lt;br /&gt;
&lt;br /&gt;
=== Syntax ===&lt;br /&gt;
* um den Datentyp zu bestimmen wird dieser in die Klammern des ''type''-Befehls geschrieben &lt;br /&gt;
* dabei kann es sich direkt um den Datentyp handeln oder einen Variablennamen &lt;br /&gt;
* auch hier ist der print Befehl wieder notwendig, um das Ergebnis ausgeben zu lassen &lt;br /&gt;
* ohne den print -Befehl wird der type -Befehl zwar ausgeführt, aber nicht in der Konsole ausgegeben&lt;br /&gt;
&lt;br /&gt;
== ''input'' -Befehl ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Befehl:&lt;br /&gt;
eingabe = input()&lt;br /&gt;
 &lt;br /&gt;
# Beispiel: &lt;br /&gt;
zahl = input()&lt;br /&gt;
print(zahl)&lt;br /&gt;
&lt;br /&gt;
# output&lt;br /&gt;
 3 # eingegebene Zahl des Nutzers im Eingabefeld  &lt;br /&gt;
 3 # durch print-Befehl ausgegebene Zahl&lt;br /&gt;
‎&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== Funktionen ===&lt;br /&gt;
* ermöglicht dem Nutzer die Interaktion mit dem Programm &lt;br /&gt;
* so kann z.B. ein Rechenprogramm mit jeder beliebigen vom Nutzer eingegebenen Zahl rechnen und nicht nur mit vorab programmierten Zahlen &lt;br /&gt;
&lt;br /&gt;
=== Syntax ===&lt;br /&gt;
* nach den Ausdruck &amp;quot;input&amp;quot; folgt eine Klammer, die bei Ausführung des Programms ein Eingabefeld in der Konsole erzeugt&lt;br /&gt;
* gleichzeitig handelt es sich beim ''input''-Befehl auch um ein ''print''-Befehl, dazu muss der entsprechende Text einfach in die Klammer eingegeben werden (s. Beispiel_2)&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Beispiel_2:&lt;br /&gt;
zahl = input(&amp;quot;Gib hier deine Zahl ein: &amp;quot;)&lt;br /&gt;
 &lt;br /&gt;
print(zahl)&lt;br /&gt;
&lt;br /&gt;
# Output:&lt;br /&gt;
# Gib hier deine Zahl ein: 3&lt;br /&gt;
# 3&lt;br /&gt;
‎&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* die Eingabe des Nutzers wird meist durch eine Variable definiert, d.h.: &lt;br /&gt;
 eingabe = input()&lt;br /&gt;
* da der einzutragende Wert bei der Programmierung nicht bekannt ist, kann so „stellvertretend“ mit der Variablen programmiert werden &lt;br /&gt;
* s. Beispiel_3, bei der die Rechenoperation „* 2“ mit der Variablen „zahl“ programmiert wird, welche später durch die Eingabe des Nutzers einen Zahlenwert erhält&lt;br /&gt;
* der Wert der Variable wird also erst festgelegt, während das Programm läuft &lt;br /&gt;
* in der Konsole entsteht durch den ''input-Befehl'' ein „Eingabefeld“ (nicht direkt sichtbar) in das der Nutzer einen Wert (in Beispiel_1 eine Zahl) eintragen kann &lt;br /&gt;
* ACHTUNG!: jede Eingabe wird durch den input-Befehl automatisch als string gespeichert &lt;br /&gt;
* in Beispiel_3 wird die 3 in string-Form abgespeichert &lt;br /&gt;
* die Rechenoperation wird nicht als Multiplikation mit 2 verstanden sondern als Wiederholung des strings &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Beispiel_3: &lt;br /&gt;
zahl = input(&amp;quot;Gib hier deine Zahl ein: &amp;quot;)&lt;br /&gt;
ergebnis = zahl * 2&lt;br /&gt;
print(ergebnis)&lt;br /&gt;
&lt;br /&gt;
# output&lt;br /&gt;
# Gib hier deine Zahl ein: 3&lt;br /&gt;
# 33&lt;br /&gt;
‎&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* der string 3 wird wiederholt und es kommt 33 statt 6 heraus &lt;br /&gt;
* Lösung: man kann den Datentyp des &amp;quot;inputs&amp;quot; vorab umwandeln:&lt;br /&gt;
 int(input()) , float(input())&lt;br /&gt;
* weiß man vorab nicht, um welchen Datentypen es sich handelt, ist der eval()-Befehl zu empfehlen (s. Beispiel 4) , dieser speichert die Eingabe automatisch unter dem passenden Datentypen ab (string, integer, float) &lt;br /&gt;
* hier ist allerdings zu beachten, das in der Konsole ein string wieder in Anführungszeichen gesetzt werden muss&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;der eval()-Befehl sollte auf keinen Fall benutzt werden, wenn das Programm mit der Außenwelt (z. B. dem Internet oder anderen Dateien interagiert, da dadurch beliebiger Code ausgeführt werden kann! &amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Beispiel_4: &lt;br /&gt;
zahl = eval(input(&amp;quot;Gib hier deine Zahl ein: &amp;quot;))&lt;br /&gt;
ergebnis = zahl * 2&lt;br /&gt;
print(ergebnis)&lt;br /&gt;
&lt;br /&gt;
# output&lt;br /&gt;
# Gib hier deine Zahl ein: 3&lt;br /&gt;
# 6&lt;br /&gt;
&lt;br /&gt;
# oder &lt;br /&gt;
&lt;br /&gt;
# Gib hier deine Zahl ein: 2.4&lt;br /&gt;
# 4.8&lt;br /&gt;
&lt;br /&gt;
# oder &lt;br /&gt;
&lt;br /&gt;
# Gib hier deine Zahl ein: &amp;quot;a&amp;quot;&lt;br /&gt;
# aa&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ''while''-Schleife ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Befehl&lt;br /&gt;
while Bedingung:&lt;br /&gt;
     Operation() &lt;br /&gt;
&lt;br /&gt;
# Beispiel:&lt;br /&gt;
n = 1&lt;br /&gt;
&lt;br /&gt;
while n &amp;lt; 10: &lt;br /&gt;
    print(n)&lt;br /&gt;
    n = n + 1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
output&lt;br /&gt;
 1&lt;br /&gt;
 2&lt;br /&gt;
 3&lt;br /&gt;
 4&lt;br /&gt;
 5&lt;br /&gt;
 6&lt;br /&gt;
 7&lt;br /&gt;
 8&lt;br /&gt;
 9&lt;br /&gt;
&lt;br /&gt;
=== Funktion ===&lt;br /&gt;
* bestimmte Operationen werden automatisch wiederholt &lt;br /&gt;
* erspart viel Programmierarbeit, da nicht alle Operationen einzeln programmiert werden müssen &lt;br /&gt;
&lt;br /&gt;
=== Syntax ===&lt;br /&gt;
* die Schleife wird mit dem Ausdruck &amp;quot;while&amp;quot; begonnen &lt;br /&gt;
* darauf folgt eine Bedingung, die überprüft wird (z.B. n &amp;lt; 10) gefolgt von einem Doppelpunkt&lt;br /&gt;
* in den nächsten Zeilen folgen die Operationen, die innerhalb der Schleife durchgeführt werden sollen &lt;br /&gt;
* die zur Schleife gehörenden Operationen sind dadurch gekennzeichnet, dass der Code  eingerückt ist. Dazu sollte man die Tab-Taste benutzen (nicht die Leertaste) &lt;br /&gt;
* die ''while''-Schleife sollte so programmiert sein, dass sie irgendwann zu einem Ende kommt und nicht endlos weiterläuft, d.h. die zu überprüfende Bedingung sollte irgendwann nicht mehr zutreffen &lt;br /&gt;
* --&amp;gt; ansonsten kommt es zu einer endlosen Schleife  &lt;br /&gt;
&lt;br /&gt;
==== Ablauf der Schleife ====&lt;br /&gt;
* am besten wird die Funktion und die Syntax einer Schleife klar, wenn man sie Schritt für Schritt durchgeht, hier am Beispiel_1: &lt;br /&gt;
* '''erste Zeile: der Variablen n wird der Wert 1 zugeordnet''' &lt;br /&gt;
* '''zweite Zeile: so lange n kleiner als 10 ist, werden folgende Operationen durchgeführt''' &lt;br /&gt;
*(hier wird die Bedingung überprüft, trifft sie zu werden die Operationen der Schleife durchgeführt)  &lt;br /&gt;
* '''dritte Zeile: gebe den Wert von n aus''' &lt;br /&gt;
* (im ersten Durchlauf beträgt der Wert, wie in der ersten Zeile definiert, den Wert 1) &lt;br /&gt;
* '''vierte Zeile: definiere die Variable n neu, indem du den Wert von n nimmst und 1 addierst'''&lt;br /&gt;
* (n wird neu definiert als der alte Wert von n plus eins, also 1+1, damit ist n jetzt 2) &lt;br /&gt;
* sobald die Operationen der Schleife durchgeführt sind, beginnt sie wieder von Neuem, also mit der Überprüfung der Bedingung &lt;br /&gt;
* so wird der Wert n immer größer&lt;br /&gt;
* erst wenn n = 10 trifft die Bedingung nicht zu, die Operationen der Schleife werden nicht durchgeführt &lt;br /&gt;
* finden sich weiter Programmzeilen unterhalb der Schleife, die nicht Teil der Schleife sind, werden diese Programmzeilen erst nach Beendigung der Schleife ausgeführt&lt;br /&gt;
[[File:Flow diagram while_schleife.png|200px|thumb|center|flowchart ''while''-Schleife]]&lt;br /&gt;
&lt;br /&gt;
== ''len''-Befehl ==&lt;br /&gt;
&lt;br /&gt;
 #Befehl&lt;br /&gt;
 len(liste)&lt;br /&gt;
 &lt;br /&gt;
 #Beipiel_1:&lt;br /&gt;
 tier_1=[&amp;quot;Hund&amp;quot;,100,399,99,True]&lt;br /&gt;
 print(len(tier_1))&lt;br /&gt;
&lt;br /&gt;
output&lt;br /&gt;
 5&lt;br /&gt;
&lt;br /&gt;
=== Funktion ===&lt;br /&gt;
* gibt die Anzahl an Elementen in einer Liste, Dictionary, Tupel etc. an&lt;br /&gt;
&lt;br /&gt;
=== Syntax ===&lt;br /&gt;
* hinter dem Ausdruck &amp;quot;len&amp;quot; wird der Name der Liste in Klammern geschrieben &lt;br /&gt;
&lt;br /&gt;
=== Anwendungsmöglichkeiten ===&lt;br /&gt;
&lt;br /&gt;
==== ''len''-Befehl und ''while''-Schleife ====&lt;br /&gt;
* wenn mit der ''while''-Schleife eine Liste ausgeben werden soll, muss die Schleife so programmiert werden, dass die Variable die für die Indexzahl steht maximal so groß wird, wie die Anzahl an Elementen in der Liste (s.Beispiel_2)&lt;br /&gt;
&lt;br /&gt;
 #Beispiel_2&lt;br /&gt;
 i=0&lt;br /&gt;
 tier_1=[&amp;quot;Hund&amp;quot;,100,399,99,True]&lt;br /&gt;
 while i &amp;lt; 5:&lt;br /&gt;
     print(tier_1[i])&lt;br /&gt;
     i=i+1&lt;br /&gt;
 &lt;br /&gt;
 # wird die Variabel &amp;quot;i&amp;quot; größer als die Länge der Liste &lt;br /&gt;
 &lt;br /&gt;
 i=0&lt;br /&gt;
 tier_1=[&amp;quot;Hund&amp;quot;,100,399,99,True]&lt;br /&gt;
 while i &amp;lt; 6:&lt;br /&gt;
     print(tier_1[i])&lt;br /&gt;
     i=i+1&lt;br /&gt;
&lt;br /&gt;
output &lt;br /&gt;
 Hund&lt;br /&gt;
 100&lt;br /&gt;
 399&lt;br /&gt;
 99&lt;br /&gt;
 True&lt;br /&gt;
 &lt;br /&gt;
 # wird die Variabel &amp;quot;i&amp;quot; größer als die Länge der Liste&lt;br /&gt;
 &lt;br /&gt;
 IndexError: list index out of range&lt;br /&gt;
&lt;br /&gt;
* ist die Länge einer Liste unbekannt oder zu umständlich diese zu ermitteln, hilft der ''len''-Befehl &lt;br /&gt;
* statt einer Zahl steht dann &amp;quot;len(name_der_liste)&amp;quot; in der Schleife, dadurch wird die Länge der Liste automatisch ermittelt (s.Beispiel_3)&lt;br /&gt;
&lt;br /&gt;
 #Beipiel_3 &lt;br /&gt;
 i=0&lt;br /&gt;
 tier_1=[&amp;quot;Hund&amp;quot;,100,399,99,True]&lt;br /&gt;
 while i &amp;lt; len(tier_1):&lt;br /&gt;
    print(tier_1[i])&lt;br /&gt;
    i=i+1&lt;br /&gt;
&lt;br /&gt;
output&lt;br /&gt;
 Hund&lt;br /&gt;
 100&lt;br /&gt;
 399&lt;br /&gt;
 99&lt;br /&gt;
 True&lt;br /&gt;
&lt;br /&gt;
== ''for''- Schleife ==&lt;br /&gt;
 &lt;br /&gt;
 #Befehl: &lt;br /&gt;
 for element in sammlung: &lt;br /&gt;
 	befehl()&lt;br /&gt;
 &lt;br /&gt;
 #Beispiel_1:&lt;br /&gt;
 liste=[“Python”, 1, 4.5, True]&lt;br /&gt;
 &lt;br /&gt;
 for element in liste: &lt;br /&gt;
 	print(element)&lt;br /&gt;
&lt;br /&gt;
output&lt;br /&gt;
 Python&lt;br /&gt;
 1&lt;br /&gt;
 4.5&lt;br /&gt;
 True&lt;br /&gt;
&lt;br /&gt;
=== Funktion ===&lt;br /&gt;
* erlaubt, wie die ‘‘while‘‘- Schleife, die automatische Wiederholung von Befehlen &lt;br /&gt;
* bietet im Gegensatz zur ‘‘while‘‘-Schleife einige Vorteile (viele Funktionen der ''for''-Schleife wären zwar auch mit einer ''while''-Schleifen lösbar, die ''for''-Schleifen macht die Programmierung jedoch deutlich einfacher) &lt;br /&gt;
* die ''for''- Schleife eignet sich besonders gut für die einzelne Ausgabe der Elemente von Dictionaries &lt;br /&gt;
* sowie die Durchführung von Befehlen, die für jedes Element einer Sequenz (z.B. str) oder Sammlung (z.B. Liste) einmal durchgeführt werden soll&lt;br /&gt;
&lt;br /&gt;
=== Syntax ===&lt;br /&gt;
* nach den Ausdruck &amp;quot;for&amp;quot; kommt der  Name der Variablen, dieser steht stellvertretend für jedes Element einer Sammlung oder Sequenz&lt;br /&gt;
* beim ''input''-Befehl war es vorteilhaft die beim Programmieren noch nicht bekannte (weil erst später durch den Nutzer erfolgende) Eingabe bereits im Programmcode stellvertretende durch eine Variable zu definieren&lt;br /&gt;
* so konnte z.B. eine Rechnungen mit einer nicht bekannten Zahl programmiert werden &lt;br /&gt;
* das gleiche Prinzip gilt auch für die Variable der &amp;quot;for&amp;quot;-Schleife (diese kann natürlich jeden beliebigen Namen annehmen)  &lt;br /&gt;
* im Beispiel_1 steht die Variable &amp;quot;element&amp;quot; für die Elemente der Liste namens &amp;quot;liste&amp;quot;&lt;br /&gt;
* die Variable &amp;quot;element&amp;quot; steht zwar für alle Elemente der Liste, also “Python”, 1, 4.5 und True, aber nicht gleichzeitig &lt;br /&gt;
* im ersten Durchlauf der Schleife steht sie für das erste Element der Liste (&amp;quot;Python&amp;quot;), nun werden die Befehle der Schleife ausgeführt:&lt;br /&gt;
* print(element) wird im ersten Durchlauf also zu print(&amp;quot;Python&amp;quot;) &lt;br /&gt;
* im zweiten Durchlauf steht die Variable für das zweite Element (1), print(element) wird im zweiten Durchlauf also zu print(1) usw.&lt;br /&gt;
* der  darauf folgende Ausdruck &amp;quot;in&amp;quot; dient dazu die Liste, das Dictionary, den String etc. anzugeben, mit dessen Elemente die Schleife durchgeführt werden soll&lt;br /&gt;
* dementsprechend folgt darauf der Namen einer Liste, eines Dictionaries oder eines Strings (ein String kann durch eine Variable gespeichert sein oder direkt angegeben werden), daraufhin folgt ein Doppelpunkt&lt;br /&gt;
* die zur Schleife gehörenden Operationen sind dadurch gekennzeichnet, dass der Code  eingerückt ist  &lt;br /&gt;
&lt;br /&gt;
==== Ablauf der Schleife ==== &lt;br /&gt;
* es wird überprüft ob es ein Element gibt, wessen Wert die Variabel annehmen kann &lt;br /&gt;
* trifft das zu laufen die Befehl der Schleife ab, wobei die Variable immer für den entsprechenden Wert des Elements steht &lt;br /&gt;
* gibt es keine Elemente mehr, dessen Wert noch nicht angenommen wurde, bricht die Schleife ab&lt;br /&gt;
* somit läuft eine for-Schleife immer für jedes Element einmal ab und läuft so häufig ab wie es Elemente gibt (ohne Modifikationen s. unten)&lt;br /&gt;
&lt;br /&gt;
[[File:flowchart ''for''-Schleife.png|200px|thumb|center|flowchart ''for''-Schleife]]&lt;br /&gt;
&lt;br /&gt;
=== Anwendungsmöglichkeiten ===&lt;br /&gt;
&lt;br /&gt;
==== Ausgabe von Dictionaries ====&lt;br /&gt;
* einen großen Vorteil bringt die ''for''-Schleife bei der Ausgabe von Dictionaries &lt;br /&gt;
* da der Zugriff auf die Elemente in einem Dictionary über keys und nicht Indexzahlen erfolgt, ist die Ausgabe von Dictionaries über eine while Schleife sehr kompliziert und kann nicht in der Form s. Ausgabe von Listen mit ''while''-Schleife erfolgen&lt;br /&gt;
* die Ausgabe über die ''for''-Schleife ist sehr einfach und erfolgt wie bei der Ausgabe der Liste &lt;br /&gt;
* zu beachten ist, dass hier die Variable nicht den Wert der Elemente, sondern der keys aufnimmt&lt;br /&gt;
* schreibt man slo wie in Beispiel_2 die Variable in den ''print''-Befehl der Schleife, werden nur die keys des Dictionaries ausgegeben &lt;br /&gt;
&lt;br /&gt;
 #Beispiel_2: &lt;br /&gt;
 buch_1={&amp;quot;Buch&amp;quot;:&amp;quot;Der Herr der Ringe&amp;quot;, &amp;quot;Autor&amp;quot;:&amp;quot;Tolkien&amp;quot;, &amp;quot;Preis&amp;quot;:45}&lt;br /&gt;
 &lt;br /&gt;
 for element in buch_1: &lt;br /&gt;
     print(element)&lt;br /&gt;
&lt;br /&gt;
output&lt;br /&gt;
 Buch&lt;br /&gt;
 Autor&lt;br /&gt;
 Preis&lt;br /&gt;
&lt;br /&gt;
* um den Wert des entsprechenden keys ausgeben zu lassen, ist es notwendig die Variable als Index der Liste anzugeben (s. Beispiel_3)&lt;br /&gt;
 #Beispiel_3:&lt;br /&gt;
 buch_1={&amp;quot;Buch&amp;quot;:&amp;quot;Der Herr der Ringe&amp;quot;, &amp;quot;Autor&amp;quot;:&amp;quot;Tolkien&amp;quot;, &amp;quot;Preis&amp;quot;:45} &lt;br /&gt;
 &lt;br /&gt;
 for element in buch_1:&lt;br /&gt;
    print(buch_1[element])&lt;br /&gt;
&lt;br /&gt;
output&lt;br /&gt;
 Der Herr der Ringe&lt;br /&gt;
 Tolkien&lt;br /&gt;
 45&lt;br /&gt;
&lt;br /&gt;
* das klingt erstmal kompliziert, ergibt aber Sinn &lt;br /&gt;
* die Ausgabe von Dictionaries erfolgt über die Angabe des keys in eckigen Klammern hinter dem Namen des Dictionaries, dabei steht der key stellvertretend für das jeweilige Element der Liste &lt;br /&gt;
* da die Variable der ''for''-Schleife den Wert der keys aufnimmt, wird folglich die Variable in die eckigen Klammern hinter dem Namen des Dictionaries geschrieben&lt;br /&gt;
&lt;br /&gt;
== ''range''-Befehl ==&lt;br /&gt;
 #Befehl&lt;br /&gt;
 for element in range(Anzahl):&lt;br /&gt;
     befehl()&lt;br /&gt;
 &lt;br /&gt;
 #Beipiel_1: &lt;br /&gt;
 for element in range(10):&lt;br /&gt;
     print(element)&lt;br /&gt;
&lt;br /&gt;
output: &lt;br /&gt;
 0&lt;br /&gt;
 1&lt;br /&gt;
 2&lt;br /&gt;
 3&lt;br /&gt;
 4&lt;br /&gt;
 5&lt;br /&gt;
 6&lt;br /&gt;
 7&lt;br /&gt;
 8&lt;br /&gt;
 9&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Funktion === &lt;br /&gt;
* für die Wiederholung eines Vorgangs mit einer festen Anzahl an Wiederholungen&lt;br /&gt;
* ist auch mit ''while''-Schleife lösbar, wird durch ''range''-Befehl deutlich einfacher&lt;br /&gt;
&lt;br /&gt;
=== Syntax === &lt;br /&gt;
* hinter dem Ausdruck &amp;quot;range&amp;quot; kommt eine Klammer mit der einer Zahl&lt;br /&gt;
&lt;br /&gt;
==== range(stop) ==== &lt;br /&gt;
* schreibt man in den ''range''-Befehl nur eine Zahl, wird diese als Stoppwert genommen; automatisch ist 0 der Startwert als 1 die Schrittgröße (step)&lt;br /&gt;
&lt;br /&gt;
==== range(start, stop) ==== &lt;br /&gt;
* schreibt man in den range Befehl zwei Zahlen durch ein Komma getrennt, wird die erste Zahl als Startwert und die zweite als Stoppwert definiert(Stoppwert wird nicht ausgegeben); nimmt 1 als step an  &lt;br /&gt;
&lt;br /&gt;
==== range(start, stop, step) ==== &lt;br /&gt;
* schreibt man in den ''Range''-Befehl drei Zahlen, die jeweils mit einem Komma getrennt sind, wird die dritte Zahl als step definiert&lt;br /&gt;
&lt;br /&gt;
== ''append''-Befehl ==&lt;br /&gt;
&lt;br /&gt;
 #Befehl&lt;br /&gt;
 liste=[element_1,element_2]&lt;br /&gt;
 liste.append(element_3)&lt;br /&gt;
 &lt;br /&gt;
 #Beispiel_1: &lt;br /&gt;
 liste=[1,2,&amp;quot;Apfel&amp;quot;]&lt;br /&gt;
 liste.append(&amp;quot;Baum&amp;quot;)&lt;br /&gt;
 &lt;br /&gt;
 print(liste) &lt;br /&gt;
&lt;br /&gt;
output &lt;br /&gt;
 [1, 2, 'Apfel', 'Baum']&lt;br /&gt;
&lt;br /&gt;
=== Funktion ===&lt;br /&gt;
* fügt einer Liste ein Element hinzu &lt;br /&gt;
* wie in Beispiel_1 gezeigt, wird der Liste das Levent &amp;quot;Baum&amp;quot; hinzugefügt &lt;br /&gt;
&lt;br /&gt;
=== Syntax === &lt;br /&gt;
* hinter dem Namen der Liste folgt ein Punkt und der Ausdruck &amp;quot;append&amp;quot;, dahinter folg in Klammern das Element, welches der Liste hinzugefügt werden soll &lt;br /&gt;
* es ist auch möglich einer Liste mehrere Elemente hinzuzufügen, der Name der hinzuzufügenden Liste wird in den ''append''-Befehl geschrieben &lt;br /&gt;
* die Elemente müssen allerdings auch als Liste strukturiert sein (s.Beispiel_2) &lt;br /&gt;
&lt;br /&gt;
 #Beispiel_2:&lt;br /&gt;
 liste_1=[1,2,3,&amp;quot;Baum&amp;quot;]&lt;br /&gt;
 liste_2=[4,5,6,&amp;quot;Strauch&amp;quot;]&lt;br /&gt;
 liste_1.append(liste_2)&lt;br /&gt;
 &lt;br /&gt;
 print(liste_1)&lt;br /&gt;
&lt;br /&gt;
output&lt;br /&gt;
 [1, 2, 3, 'Baum', [4, 5, 6, 'Strauch']]&lt;br /&gt;
&lt;br /&gt;
* nun wurden zwar die Elemente der liste_2 der liste_1 hinzugefügt, allerdings als Liste in der Liste &lt;br /&gt;
* der Grund dafür ist, das der ''append''-Befehl einer Liste immer nur ein Element hinzufügt &lt;br /&gt;
* so wird eine Liste, die hinzugefügt werden soll, erst als ein einzelnes Element abgespeichert und dann hinzugefügt&lt;br /&gt;
* das Problem lässt sich einfach lösen, indem die Elemente der liste_2 einzeln und nacheinander der liste_1 hinzufügt werden, dafür eignet sich besonders gut eine ''for''-Schleife (s.Beispiel_3) &lt;br /&gt;
&lt;br /&gt;
 #Beispeil_3: &lt;br /&gt;
 liste_1=[1,2,3,&amp;quot;Baum&amp;quot;]&lt;br /&gt;
 liste_2=[4,5,6,&amp;quot;Strauch&amp;quot;]&lt;br /&gt;
 for element in liste_2: &lt;br /&gt;
     liste_1.append(element)&lt;br /&gt;
    &lt;br /&gt;
 print(liste_1)&lt;br /&gt;
&lt;br /&gt;
output&lt;br /&gt;
 [1, 2, 3, 'Baum', 4, 5, 6, 'Strauch']&lt;br /&gt;
&lt;br /&gt;
== ''if''-Befehl ==&lt;br /&gt;
&lt;br /&gt;
 #Befehl&lt;br /&gt;
 if Bedingung: &lt;br /&gt;
    Befehl &lt;br /&gt;
 &lt;br /&gt;
 #Beispiel: &lt;br /&gt;
 if 4 &amp;lt; 10: &lt;br /&gt;
     print(&amp;quot;4 ist kleiner als 10&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
output &lt;br /&gt;
 4 ist kleiner als 10&lt;br /&gt;
&lt;br /&gt;
=== Funktion === &lt;br /&gt;
* der ''if''-Befehl macht es einem Computerprorgamm möglich auf verschiedene Ereignisse unterschiedlich zu reagieren &lt;br /&gt;
* diese Funktion hebt ein Programm von einer einfachen Rechenanleitung ab &lt;br /&gt;
&lt;br /&gt;
=== Syntax ===&lt;br /&gt;
* nach dem Ausdruck &amp;quot;if&amp;quot; folgt die Bedingung die überprüft werden soll, daraufhin ein Doppelpunkt &lt;br /&gt;
* die folgenden Kommandozeilen, die zum ''if''-Befehl gehören sind dadurch gekennzeichnet, dass sie versetzt sind &lt;br /&gt;
&lt;br /&gt;
=== Ablauf der Schleife ===&lt;br /&gt;
* nach dem Ausdruck &amp;quot;if&amp;quot; wird überprüft ob die darauf folgende Bedingung zutrifft&lt;br /&gt;
* trifft die Bedingung zu, werden die Befehle ausgeführt &lt;br /&gt;
* trifft die Bedingung nicht zu, werden die Befehle übersprungen &lt;br /&gt;
* so ist der Ablauf abhängig von bestimmten Bedingungen und ändert sich je nachdem welche Bedingungen erfüllt bzw. nicht erfüllt werden &lt;br /&gt;
&lt;br /&gt;
=== Bedingungen stellen ===&lt;br /&gt;
* die Gleichheit von zwei Werten lässt sich mit &amp;quot;==&amp;quot; überprüfen &lt;br /&gt;
* damit kann die Gleichheit von int, str, float und bool überprüft werden (s.Beipsiel_2)&lt;br /&gt;
&lt;br /&gt;
 #Befehl&lt;br /&gt;
 if Bedingung_1 == Bedingung_2: &lt;br /&gt;
    Befehl&lt;br /&gt;
 &lt;br /&gt;
 #Beispiel_2:&lt;br /&gt;
 a=1&lt;br /&gt;
 b=&amp;quot;hallo&amp;quot;&lt;br /&gt;
 c=True&lt;br /&gt;
 &lt;br /&gt;
 if a==1:&lt;br /&gt;
     print(a)&lt;br /&gt;
 if b==&amp;quot;hallo&amp;quot;:&lt;br /&gt;
     print(b)&lt;br /&gt;
 if c==True:&lt;br /&gt;
     print(c)&lt;br /&gt;
&lt;br /&gt;
output&lt;br /&gt;
 1&lt;br /&gt;
 hallo&lt;br /&gt;
 True&lt;br /&gt;
&lt;br /&gt;
* um zu überprüfen ob ein Wert größer oder kleiner als ein anderer ist, werden folgende Symbole verwendet:&lt;br /&gt;
&amp;lt;, &amp;lt;=  kleiner, kleiner gleich &lt;br /&gt;
&lt;br /&gt;
&amp;gt;, &amp;gt;=  größer, größer gleich &lt;br /&gt;
* die Ungleichheit lässt sich mit &amp;quot;!=&amp;quot; überprüfen &lt;br /&gt;
* mit diesen einfachen Bedingungen und dem ''if''-Befehl lässt sich ganz einfach ein kleines Ratespiel programmieren, welches abhängig von der Eingabe des Nutzers reagieren kann &lt;br /&gt;
&lt;br /&gt;
 #Beipiel_3: &lt;br /&gt;
 eingabe=eval(input(&amp;quot;Errate die richtige Zahl zwischen 1 und 10: &amp;quot;))&lt;br /&gt;
 zahl=8&lt;br /&gt;
 if eingabe==zahl: &lt;br /&gt;
     print(&amp;quot;du hast de richtige Zahl erraten&amp;quot;)&lt;br /&gt;
 if eingabe!=zahl: &lt;br /&gt;
    print (&amp;quot;leider falsch, versuche es nochmal&amp;quot;)&lt;br /&gt;
 if eingabe&amp;gt;zahl: &lt;br /&gt;
     print(&amp;quot;versuche eine kleinere Zahl&amp;quot;)&lt;br /&gt;
 if eingabe&amp;lt;zahl: &lt;br /&gt;
     print(&amp;quot;versuche eine größere Zahl&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Zusammengesetzte Bedingungen ====&lt;br /&gt;
* wenn mehrere Bedingungen gleichzeitig überprüft werden sollen, können diese durch drei Operatoren miteinander verknüpft werden &lt;br /&gt;
* das macht einen Code kürzer und übersichtlicher, weil nicht mehrer ''if''-Befehle ineinander geschrieben werden müssen&lt;br /&gt;
# &amp;quot;and&amp;quot; wird benutzt wenn zwei oder mehrere Bedingungen gleichzeitig zutreffen müssen &lt;br /&gt;
# &amp;quot;or&amp;quot; wird benutzt wenn eine von mehreren möglichen Bedingungen zutreffen muss&lt;br /&gt;
# &amp;quot;not&amp;quot; wird zur Verneinung genutzt (hier ist zu beachten, dass alles worauf sich das &amp;quot;not&amp;quot; beziehen soll in klammern gesetzt werden muss, sonst bezieht sich der Ausdruck nur auf das erste Element) &lt;br /&gt;
&lt;br /&gt;
 #Beispiel_4:&lt;br /&gt;
 zahl=6&lt;br /&gt;
 if zahl &amp;lt;10 and zahl &amp;gt;5: &lt;br /&gt;
     print(&amp;quot;richtig&amp;quot;)&lt;br /&gt;
 &lt;br /&gt;
 #anstatt&lt;br /&gt;
 if zahl &amp;lt;10:&lt;br /&gt;
     if zahl&amp;gt;5: &lt;br /&gt;
         print(&amp;quot;richtig&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
=== ''else''-Befehl  ===&lt;br /&gt;
&lt;br /&gt;
 #Befehl &lt;br /&gt;
 if Bedingung: &lt;br /&gt;
    Befehl_1&lt;br /&gt;
 else: &lt;br /&gt;
    Befehl_2&lt;br /&gt;
 &lt;br /&gt;
 #Beispiel_1: &lt;br /&gt;
 eingabe=eval(input(&amp;quot;Errate die richtige Zahl zwischen 1 und 10: &amp;quot;))&lt;br /&gt;
 zahl=8&lt;br /&gt;
 &lt;br /&gt;
 if eingabe==zahl: &lt;br /&gt;
     print(&amp;quot;du hast de richtige Zahl erraten&amp;quot;)&lt;br /&gt;
 else: &lt;br /&gt;
 print(&amp;quot;das ist nicht die gesuchte Zahl&amp;quot;) &lt;br /&gt;
&lt;br /&gt;
==== Funktion ====&lt;br /&gt;
* erfüllt die Funktion von ''if not'' &lt;br /&gt;
* erspart dabei Arbeit, weil im Gegensatz zu 'if not' Operator, die Bedingungen, nicht extra im Befehl formuliert werden müssen &lt;br /&gt;
* der 'else'-Befehl schließt automatisch alle Bedingungen ein, die nicht vom ''if''-Befehl abgedeckt werden &lt;br /&gt;
&lt;br /&gt;
==== Syntax ====&lt;br /&gt;
* nach dem Ausdruck &amp;quot;else&amp;quot; folgt ein Doppelpunkt und der Befehl &lt;br /&gt;
* wenn die Bedingung des ''if''-Befehls nicht zutreffen, wird automatisch der ''else''-Befehl ausgeführt &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== ''elif''-Befehl === &lt;br /&gt;
&lt;br /&gt;
 #Befehl&lt;br /&gt;
 if Bedingung_1: &lt;br /&gt;
    Befehl_1&lt;br /&gt;
 elif Bedingung_2: &lt;br /&gt;
    Befehl_2 &lt;br /&gt;
 elif Bedingung_3: &lt;br /&gt;
    Befehl_3 &lt;br /&gt;
&lt;br /&gt;
==== Funktion ==== &lt;br /&gt;
* steht für &amp;quot;else if&amp;quot; &lt;br /&gt;
* ersetzt die Ineinanderschachtelungen von mehreren ''if''-Befehlen &lt;br /&gt;
* ein ''elif''-Befehl wird nur durchgeführt, wenn die vorangegangene ''if''-Bedingung nicht erfüllt wird&lt;br /&gt;
&lt;br /&gt;
==== Syntax ==== &lt;br /&gt;
* nach dem Ausdruck &amp;quot;elif&amp;quot; folgt die Bedingung, ein Doppelpunkt und der Befehl&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Funktionen == &lt;br /&gt;
&lt;br /&gt;
 #Befehl: &lt;br /&gt;
 def funktionsname (evtl. Übergabewerte): &lt;br /&gt;
        Befehl &lt;br /&gt;
 &lt;br /&gt;
 #Besipiel_1: &lt;br /&gt;
 def begrüßung():&lt;br /&gt;
     print(&amp;quot;hallo&amp;quot;)&lt;br /&gt;
 begrüßung()&lt;br /&gt;
&lt;br /&gt;
output&lt;br /&gt;
 hallo&lt;br /&gt;
&lt;br /&gt;
=== Funktion === &lt;br /&gt;
* ein Befehl kann als Funktion abgespeichert werden &lt;br /&gt;
* wird der Befehl in einem Programm häufiger verwendet, muss dieser nicht immer wieder erneut geschrieben werden, stattdessen muss nur die Funktion abgerufen werden &lt;br /&gt;
* erspart Zeit und sorgt für Übersichtlichkeit des Programms &lt;br /&gt;
* noch übersichtlicher wird ein Code, wenn man die Funktionen nicht im Hauptprogramm sondern anderen Daten abspeichern &lt;br /&gt;
&lt;br /&gt;
=== Syntax === &lt;br /&gt;
* nach dem Begriff &amp;quot;def&amp;quot; folg der Name der Funktion (sinnvoll sind Namen, die die Aufgabe der Funktion beschreiben) &lt;br /&gt;
* danach folgt eine runde Klammer, in die Klammer können Werte aus dem Hauptprogramm übernommen werden, z.B. wenn die Funktion eine Rechnung darstellt und im Laufe des Programms mit verschiedenen Werten diese Rechnung durchgeführt werden soll (s. Funktionen mit Argumenten) &lt;br /&gt;
* werden keine Werte übernommen, bleibt die Klammer leer &lt;br /&gt;
&lt;br /&gt;
=== Funktionen mit Argumenten === &lt;br /&gt;
* wird benutzt, wenn ein bestimmter Wert aus dem Hauptprogramm übernommen werden soll und es sich nicht immer um den gleichen Wert handelt &lt;br /&gt;
* die im Beispiel_1 leer geblieben Klammern, haben die Aufgabe einen Wert aus dem Hauptprogramm an die Funktion zu überreichen &lt;br /&gt;
* dabei schreibt man den Wert, der überreicht werden soll in die Klammer hinter den Funktionsnamen im Hauptprogramm --&amp;gt; der Wert wird als Argument bezeichnet &lt;br /&gt;
* in die Klammer hinter dem Funktionsnamen in der Funktion, schreibt man einen Variablennamen, der automatisch für den Wert aus dem Hauptprogramm steht &lt;br /&gt;
* stellvertretend für die Werte aus dem Hauptprogramm, kann mit dem Variablennamen ein Befehl geschrieben werden (s.Beispiel_2) &lt;br /&gt;
&lt;br /&gt;
 #Beispiel_2: &lt;br /&gt;
 def begrüßung(name): &lt;br /&gt;
     print(name, &amp;quot;sagt hallo&amp;quot;)&lt;br /&gt;
 begrüßung(&amp;quot;jack&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
output&lt;br /&gt;
 jack sagt hallo&lt;br /&gt;
&lt;br /&gt;
* die Funktion hallo ist abhängig vom Argument name. Dieses Argument muss der Funktion beim Aufrufen gegeben werden, sonst funktioniert sie nicht&lt;br /&gt;
* der Funktion wird „Jack“ als Argument für Name übergeben&lt;br /&gt;
* es können nicht nur str, sondern auch int, float und alle weiteren Datentypen und Strukturen, einer Funktion übergeben werden &lt;br /&gt;
* es ist auch möglich Funktionen mit mehreren Argumenten zu benutzen, dafür werden die Argumente mit einem Komma voneinander getrennt (s.Beipiel_3) &lt;br /&gt;
&lt;br /&gt;
 #Beispeil_3: &lt;br /&gt;
 def begrüßung(name, zahl): &lt;br /&gt;
    print(&amp;quot;Hallo ich heiße&amp;quot;, name)&lt;br /&gt;
    print(&amp;quot;und bin&amp;quot;, zahl, &amp;quot;Jahre alt&amp;quot;)&lt;br /&gt;
 &lt;br /&gt;
 eingabe_1=input(&amp;quot;Gib hier dienen Namen ein: &amp;quot;)&lt;br /&gt;
 eingabe_2=eval(input(&amp;quot;Gib hier dein Alter ein: &amp;quot;))&lt;br /&gt;
 begrüßung(eingabe_1, eingabe_2)&lt;br /&gt;
&lt;br /&gt;
output&lt;br /&gt;
 Hallo ich heiße Jack  &lt;br /&gt;
 und bin 20 Jahre alt&lt;br /&gt;
&lt;br /&gt;
=== Funktionen mit Rückgabewerten: der ''return-Befehl === &lt;br /&gt;
&lt;br /&gt;
 #Befehl&lt;br /&gt;
 def funktionsname (evtl. Übergabewerte): &lt;br /&gt;
        Ergebnis=Befehl &lt;br /&gt;
        return(Ergebnis) &lt;br /&gt;
&lt;br /&gt;
 #Beispiel_2: &lt;br /&gt;
 def Rechnung(zahl): &lt;br /&gt;
     value=3*zahl**2&lt;br /&gt;
     return(value)&lt;br /&gt;
 Ergebnis=Rechnung(4)&lt;br /&gt;
 print(Ergebnis)&lt;br /&gt;
 &lt;br /&gt;
output&lt;br /&gt;
 48&lt;br /&gt;
&lt;br /&gt;
==== Funktion ====&lt;br /&gt;
* die Ergebnisse aus den Funktionen können dem Hauptprogramm übergeben werden um damit weiter arbeiten zu können &lt;br /&gt;
&lt;br /&gt;
==== Syntax ==== &lt;br /&gt;
* nach dem Schlüsselbegriff &amp;quot;return&amp;quot; folgt eine runde Klammer mit dem Wert der zurückgegeben werden soll &lt;br /&gt;
* dieser Wert selbst kann als Variable abgespeichert werden&lt;br /&gt;
&lt;br /&gt;
== Literatur ==&lt;br /&gt;
Michael Bonacina: Python 3 Programmieren für Einsteiger. 2. Auflage. BMU Verlag, Landshut 2019, ISBN: 978-3-96645-007-2&lt;/div&gt;</summary>
		<author><name>Ani</name></author>
	</entry>
	<entry>
		<id>http://wiki.bioinfo.nat.tu-bs.de/index.php?title=3.Befehle&amp;diff=970</id>
		<title>3.Befehle</title>
		<link rel="alternate" type="text/html" href="http://wiki.bioinfo.nat.tu-bs.de/index.php?title=3.Befehle&amp;diff=970"/>
		<updated>2023-06-02T09:37:03Z</updated>

		<summary type="html">&lt;p&gt;Ani: Auf wichtige Sicherheitslücke hingewiesen&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== ''print''-Befehl ==&lt;br /&gt;
‎&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Befehl: &lt;br /&gt;
print()&lt;br /&gt;
 &lt;br /&gt;
# Beispiel: &lt;br /&gt;
print(&amp;quot;hello&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
name = &amp;quot;Max&amp;quot;&lt;br /&gt;
print(f&amp;quot;Hallo, {name}!&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
# Output:&lt;br /&gt;
# hello &lt;br /&gt;
# Hallo, Max!&lt;br /&gt;
‎&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== Funktion ===&lt;br /&gt;
* der entsprechende Inhalt des ''print''-Befehls wird in der Konsole ausgegeben &lt;br /&gt;
&lt;br /&gt;
=== Syntax ===&lt;br /&gt;
* die runden Klammern umschließen das Argument, das ausgegeben wird&lt;br /&gt;
* Wörter, bei denen es sich nicht um einen Variablennamen handelt, müssen in Anführungszeichen gesetzt werden&lt;br /&gt;
* geschieht das nicht, wird ein Syntaxfehler angezeigt (s. Beispiel_2)&lt;br /&gt;
* int und floats werden ohne Anführungszeichen eingegeben&lt;br /&gt;
* soll eine Variable innerhalb eines Strings eingefügt werden, kann ein sogenannter f-String genutzt werden. Dazu wird vor die Anführungszeichen ein f geschrieben, innerhalb des Strings werden die geschweiften Klammern dann durch den darin enthaltenen Ausdruck ersetzt (s. Beispiel_1)&lt;br /&gt;
‎&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Beispiel_2:&lt;br /&gt;
print(falsch)&lt;br /&gt;
&lt;br /&gt;
# Output:&lt;br /&gt;
# NameError: name 'falsch' is not defined&lt;br /&gt;
‎&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* Python geht davon aus, dass es sich bei „falsch“ um eine Variable handelt und möchte den Wert dieser Variablen ausgeben. Es wurde aber keine Variable mit den Namen „falsch“ definiert. Der Fehler kann durch das Hinzufügen von Anführungszeichen behoben werden:&lt;br /&gt;
&lt;br /&gt;
‎&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
print(&amp;quot;falsch&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
# Output:&lt;br /&gt;
# falsch&lt;br /&gt;
‎&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ''type''-Befehl ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Befehl&lt;br /&gt;
type()&lt;br /&gt;
&lt;br /&gt;
# Beispiel_1: &lt;br /&gt;
a = &amp;quot;abc&amp;quot;&lt;br /&gt;
d = True&lt;br /&gt;
print(type(a))&lt;br /&gt;
print(type(1))&lt;br /&gt;
print(type(1.0)&lt;br /&gt;
print(type(d))&lt;br /&gt;
 &lt;br /&gt;
buch_1 = {'Buch': 'Der Herr der Ringe', 'Autor': 'Tolkien', 'Preis': 45}&lt;br /&gt;
print(type(buch_1))&lt;br /&gt;
&lt;br /&gt;
# Output:&lt;br /&gt;
# &amp;lt;class 'str'&amp;gt;&lt;br /&gt;
# &amp;lt;class 'int'&amp;gt;&lt;br /&gt;
# &amp;lt;class 'float'&amp;gt;&lt;br /&gt;
# &amp;lt;class 'bool'&amp;gt;&lt;br /&gt;
# &amp;lt;class 'dict'&amp;gt;&lt;br /&gt;
‎&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
===Funktion===&lt;br /&gt;
* mit dem ''type''-Befehl lässt sich der Datentyp bestimmen&lt;br /&gt;
&lt;br /&gt;
=== Syntax ===&lt;br /&gt;
* um den Datentyp zu bestimmen wird dieser in die Klammern des ''type''-Befehls geschrieben &lt;br /&gt;
* dabei kann es sich direkt um den Datentyp handeln oder einen Variablennamen &lt;br /&gt;
* auch hier ist der print Befehl wieder notwendig, um das Ergebnis ausgeben zu lassen &lt;br /&gt;
* ohne den print -Befehl wird der type -Befehl zwar ausgeführt, aber nicht in der Konsole ausgegeben&lt;br /&gt;
&lt;br /&gt;
== ''input'' -Befehl ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Befehl:&lt;br /&gt;
eingabe = input()&lt;br /&gt;
 &lt;br /&gt;
# Beispiel: &lt;br /&gt;
zahl = input()&lt;br /&gt;
print(zahl)&lt;br /&gt;
&lt;br /&gt;
# output&lt;br /&gt;
 3 # eingegebene Zahl des Nutzers im Eingabefeld  &lt;br /&gt;
 3 # durch print-Befehl ausgegebene Zahl&lt;br /&gt;
‎&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== Funktionen ===&lt;br /&gt;
* ermöglicht dem Nutzer die Interaktion mit dem Programm &lt;br /&gt;
* so kann z.B. ein Rechenprogramm mit jeder beliebigen vom Nutzer eingegebenen Zahl rechnen und nicht nur mit vorab programmierten Zahlen &lt;br /&gt;
&lt;br /&gt;
=== Syntax ===&lt;br /&gt;
* nach den Ausdruck &amp;quot;input&amp;quot; folgt eine Klammer, die bei Ausführung des Programms ein Eingabefeld in der Konsole erzeugt&lt;br /&gt;
* gleichzeitig handelt es sich beim ''input''-Befehl auch um ein ''print''-Befehl, dazu muss der entsprechende Text einfach in die Klammer eingegeben werden (s. Beispiel_2)&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Beispiel_2:&lt;br /&gt;
zahl = input(&amp;quot;Gib hier deine Zahl ein: &amp;quot;)&lt;br /&gt;
 &lt;br /&gt;
print(zahl)&lt;br /&gt;
&lt;br /&gt;
# Output:&lt;br /&gt;
# Gib hier deine Zahl ein: 3&lt;br /&gt;
# 3&lt;br /&gt;
‎&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* die Eingabe des Nutzers wird meist durch eine Variable definiert, d.h.: &lt;br /&gt;
 eingabe = input()&lt;br /&gt;
* da der einzutragende Wert bei der Programmierung nicht bekannt ist, kann so „stellvertretend“ mit der Variablen programmiert werden &lt;br /&gt;
* s. Beispiel_3, bei der die Rechenoperation „* 2“ mit der Variablen „zahl“ programmiert wird, welche später durch die Eingabe des Nutzers einen Zahlenwert erhält&lt;br /&gt;
* der Wert der Variable wird also erst festgelegt, während das Programm läuft &lt;br /&gt;
* in der Konsole entsteht durch den ''input-Befehl'' ein „Eingabefeld“ (nicht direkt sichtbar) in das der Nutzer einen Wert (in Beispiel_1 eine Zahl) eintragen kann &lt;br /&gt;
* ACHTUNG!: jede Eingabe wird durch den input-Befehl automatisch als string gespeichert &lt;br /&gt;
* in Beispiel_3 wird die 3 in string-Form abgespeichert &lt;br /&gt;
* die Rechenoperation wird nicht als Multiplikation mit 2 verstanden sondern als Wiederholung des strings &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Beispiel_3: &lt;br /&gt;
zahl = input(&amp;quot;Gib hier deine Zahl ein: &amp;quot;)&lt;br /&gt;
ergebnis = zahl * 2&lt;br /&gt;
print(ergebnis)&lt;br /&gt;
&lt;br /&gt;
# output&lt;br /&gt;
# Gib hier deine Zahl ein: 3&lt;br /&gt;
# 33&lt;br /&gt;
‎&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* der string 3 wird wiederholt und es kommt 33 statt 6 heraus &lt;br /&gt;
* Lösung: man kann den Datentyp des &amp;quot;inputs&amp;quot; vorab umwandeln:&lt;br /&gt;
 int(input()) , float(input())&lt;br /&gt;
* weiß man vorab nicht, um welchen Datentypen es sich handelt, ist der eval()-Befehl zu empfehlen (s. Beispiel 4) , dieser speichert die Eingabe automatisch unter dem passenden Datentypen ab (string, integer, float) &lt;br /&gt;
* hier ist allerdings zu beachten, das in der Konsole ein string wieder in Anführungszeichen gesetzt werden muss&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;der eval()-Befehl sollte auf keinen Fall benutzt werden, wenn das Programm mit der Außenwelt (z. B. dem Internet oder anderen Dateien interagiert, da dadurch beliebiger Code ausgeführt werden kann! &amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Beispiel_4: &lt;br /&gt;
zahl = eval(input(&amp;quot;Gib hier deine Zahl ein: &amp;quot;))&lt;br /&gt;
ergebnis = zahl * 2&lt;br /&gt;
print(ergebnis)&lt;br /&gt;
&lt;br /&gt;
# output&lt;br /&gt;
# Gib hier deine Zahl ein: 3&lt;br /&gt;
# 6&lt;br /&gt;
&lt;br /&gt;
# oder &lt;br /&gt;
&lt;br /&gt;
# Gib hier deine Zahl ein: 2.4&lt;br /&gt;
# 4.8&lt;br /&gt;
&lt;br /&gt;
# oder &lt;br /&gt;
&lt;br /&gt;
# Gib hier deine Zahl ein: &amp;quot;a&amp;quot;&lt;br /&gt;
# aa&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ''while''-Schleife ==&lt;br /&gt;
&lt;br /&gt;
 #Befehl&lt;br /&gt;
 while Bedingung:&lt;br /&gt;
     Operation() &amp;lt;br&amp;gt;&lt;br /&gt;
 #Beispiel:&lt;br /&gt;
 n=1&lt;br /&gt;
 while n&amp;lt;10: &lt;br /&gt;
     print(n)&lt;br /&gt;
     n=n+1&lt;br /&gt;
&lt;br /&gt;
output&lt;br /&gt;
 1&lt;br /&gt;
 2&lt;br /&gt;
 3&lt;br /&gt;
 4&lt;br /&gt;
 5&lt;br /&gt;
 6&lt;br /&gt;
 7&lt;br /&gt;
 8&lt;br /&gt;
 9&lt;br /&gt;
&lt;br /&gt;
=== Funktion ===&lt;br /&gt;
* bestimmte Operationen werden automatisch wiederholt &lt;br /&gt;
* erspart viel Programmierarbeit, da nicht alle Operationen einzeln programmiert werden müssen &lt;br /&gt;
&lt;br /&gt;
=== Syntax ===&lt;br /&gt;
* die Schleife wird mit dem Ausdruck &amp;quot;while&amp;quot; begonnen &lt;br /&gt;
* darauf folgt eine Bedingung, die überprüft wird (z.B. n&amp;lt;10) gefolgt von einem Doppelpunkt&lt;br /&gt;
* in den nächsten Zeilen folgen die Operationen, die innerhalb der Schleife durchgeführt werden sollen &lt;br /&gt;
* die zur Schleife gehörenden Operationen sind dadurch gekennzeichnet, dass der Code  eingerückt ist &lt;br /&gt;
* die ''while''-Schleife sollte so programmiert sein, dass sie irgendwann zu einem Ende kommt und nicht endlos weiterläuft, d.h. die zu überprüfende Bedingung darf irgendwann nicht mehr zutreffen &lt;br /&gt;
* --&amp;gt; ansonsten kommt es zu einer endlosen Schleife  &lt;br /&gt;
&lt;br /&gt;
==== Ablauf der Schleife ====&lt;br /&gt;
* am besten wird die Funktion und die Syntax einer Schleife klar, wenn man sie Schritt für Schritt durchgeht, hier am Beispiel_1: &lt;br /&gt;
* '''ersten Zeile: der Variablen n wir der Wert 1 zugeordnet''' &lt;br /&gt;
* '''zweite Zeile: so lange n kleiner als 10 ist werden folgende Operationen durchgeführt''' &lt;br /&gt;
*(hier wird die Bedingung überprüft, trifft sie zu werden die Operationen der Schleife durchgeführt)  &lt;br /&gt;
* '''dritte Zeile: gebe den Wert von n aus''' &lt;br /&gt;
* (im ersten Durchlauf beträgt der Wert, wie in der ersten Zeile definiert, den Wert 1) &lt;br /&gt;
* '''vierte Zeile: definiere die Variable n neu, indem du den Wert von n nimmst und 1 addierst'''&lt;br /&gt;
* (n wird neu definiert als der alte Wert von n plus eins, also 1+1, damit ist n jetzt 2) &lt;br /&gt;
* sobald die Operationen der Schleife durchgeführt sind, beginnt sie wieder von Neuem, also mit der Überprüfung der Bedingung &lt;br /&gt;
* so wird der Wert n immer größer&lt;br /&gt;
* erst wenn n=10, trifft die Bedingung nicht zu, die Operationen der Schleife werden nicht durchgeführt &lt;br /&gt;
* finden sich weiter Programmzeilen unterhalb der Schleife, die nicht Teil der Schleife sind, werden diese Programmzeilen erst nach Beendigung der Schleife ausgeführt&lt;br /&gt;
[[File:Flow diagram while_schleife.png|200px|thumb|center|flowchart ''while''-Schleife]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== ''len''-Befehl ==&lt;br /&gt;
&lt;br /&gt;
 #Befehl&lt;br /&gt;
 len(liste)&lt;br /&gt;
 &lt;br /&gt;
 #Beipiel_1:&lt;br /&gt;
 tier_1=[&amp;quot;Hund&amp;quot;,100,399,99,True]&lt;br /&gt;
 print(len(tier_1))&lt;br /&gt;
&lt;br /&gt;
output&lt;br /&gt;
 5&lt;br /&gt;
&lt;br /&gt;
=== Funktion ===&lt;br /&gt;
* gibt die Anzahl an Elementen in einer Liste, Dictionary, Tupel etc. an&lt;br /&gt;
&lt;br /&gt;
=== Syntax ===&lt;br /&gt;
* hinter dem Ausdruck &amp;quot;len&amp;quot; wird der Name der Liste in Klammern geschrieben &lt;br /&gt;
&lt;br /&gt;
=== Anwendungsmöglichkeiten ===&lt;br /&gt;
&lt;br /&gt;
==== ''len''-Befehl und ''while''-Schleife ====&lt;br /&gt;
* wenn mit der ''while''-Schleife eine Liste ausgeben werden soll, muss die Schleife so programmiert werden, dass die Variable die für die Indexzahl steht maximal so groß wird, wie die Anzahl an Elementen in der Liste (s.Beispiel_2)&lt;br /&gt;
&lt;br /&gt;
 #Beispiel_2&lt;br /&gt;
 i=0&lt;br /&gt;
 tier_1=[&amp;quot;Hund&amp;quot;,100,399,99,True]&lt;br /&gt;
 while i &amp;lt; 5:&lt;br /&gt;
     print(tier_1[i])&lt;br /&gt;
     i=i+1&lt;br /&gt;
 &lt;br /&gt;
 # wird die Variabel &amp;quot;i&amp;quot; größer als die Länge der Liste &lt;br /&gt;
 &lt;br /&gt;
 i=0&lt;br /&gt;
 tier_1=[&amp;quot;Hund&amp;quot;,100,399,99,True]&lt;br /&gt;
 while i &amp;lt; 6:&lt;br /&gt;
     print(tier_1[i])&lt;br /&gt;
     i=i+1&lt;br /&gt;
&lt;br /&gt;
output &lt;br /&gt;
 Hund&lt;br /&gt;
 100&lt;br /&gt;
 399&lt;br /&gt;
 99&lt;br /&gt;
 True&lt;br /&gt;
 &lt;br /&gt;
 # wird die Variabel &amp;quot;i&amp;quot; größer als die Länge der Liste&lt;br /&gt;
 &lt;br /&gt;
 IndexError: list index out of range&lt;br /&gt;
&lt;br /&gt;
* ist die Länge einer Liste unbekannt oder zu umständlich diese zu ermitteln, hilft der ''len''-Befehl &lt;br /&gt;
* statt einer Zahl steht dann &amp;quot;len(name_der_liste)&amp;quot; in der Schleife, dadurch wird die Länge der Liste automatisch ermittelt (s.Beispiel_3)&lt;br /&gt;
&lt;br /&gt;
 #Beipiel_3 &lt;br /&gt;
 i=0&lt;br /&gt;
 tier_1=[&amp;quot;Hund&amp;quot;,100,399,99,True]&lt;br /&gt;
 while i &amp;lt; len(tier_1):&lt;br /&gt;
    print(tier_1[i])&lt;br /&gt;
    i=i+1&lt;br /&gt;
&lt;br /&gt;
output&lt;br /&gt;
 Hund&lt;br /&gt;
 100&lt;br /&gt;
 399&lt;br /&gt;
 99&lt;br /&gt;
 True&lt;br /&gt;
&lt;br /&gt;
== ''for''- Schleife ==&lt;br /&gt;
 &lt;br /&gt;
 #Befehl: &lt;br /&gt;
 for element in sammlung: &lt;br /&gt;
 	befehl()&lt;br /&gt;
 &lt;br /&gt;
 #Beispiel_1:&lt;br /&gt;
 liste=[“Python”, 1, 4.5, True]&lt;br /&gt;
 &lt;br /&gt;
 for element in liste: &lt;br /&gt;
 	print(element)&lt;br /&gt;
&lt;br /&gt;
output&lt;br /&gt;
 Python&lt;br /&gt;
 1&lt;br /&gt;
 4.5&lt;br /&gt;
 True&lt;br /&gt;
&lt;br /&gt;
=== Funktion ===&lt;br /&gt;
* erlaubt, wie die ‘‘while‘‘- Schleife, die automatische Wiederholung von Befehlen &lt;br /&gt;
* bietet im Gegensatz zur ‘‘while‘‘-Schleife einige Vorteile (viele Funktionen der ''for''-Schleife wären zwar auch mit einer ''while''-Schleifen lösbar, die ''for''-Schleifen macht die Programmierung jedoch deutlich einfacher) &lt;br /&gt;
* die ''for''- Schleife eignet sich besonders gut für die einzelne Ausgabe der Elemente von Dictionaries &lt;br /&gt;
* sowie die Durchführung von Befehlen, die für jedes Element einer Sequenz (z.B. str) oder Sammlung (z.B. Liste) einmal durchgeführt werden soll&lt;br /&gt;
&lt;br /&gt;
=== Syntax ===&lt;br /&gt;
* nach den Ausdruck &amp;quot;for&amp;quot; kommt der  Name der Variablen, dieser steht stellvertretend für jedes Element einer Sammlung oder Sequenz&lt;br /&gt;
* beim ''input''-Befehl war es vorteilhaft die beim Programmieren noch nicht bekannte (weil erst später durch den Nutzer erfolgende) Eingabe bereits im Programmcode stellvertretende durch eine Variable zu definieren&lt;br /&gt;
* so konnte z.B. eine Rechnungen mit einer nicht bekannten Zahl programmiert werden &lt;br /&gt;
* das gleiche Prinzip gilt auch für die Variable der &amp;quot;for&amp;quot;-Schleife (diese kann natürlich jeden beliebigen Namen annehmen)  &lt;br /&gt;
* im Beispiel_1 steht die Variable &amp;quot;element&amp;quot; für die Elemente der Liste namens &amp;quot;liste&amp;quot;&lt;br /&gt;
* die Variable &amp;quot;element&amp;quot; steht zwar für alle Elemente der Liste, also “Python”, 1, 4.5 und True, aber nicht gleichzeitig &lt;br /&gt;
* im ersten Durchlauf der Schleife steht sie für das erste Element der Liste (&amp;quot;Python&amp;quot;), nun werden die Befehle der Schleife ausgeführt:&lt;br /&gt;
* print(element) wird im ersten Durchlauf also zu print(&amp;quot;Python&amp;quot;) &lt;br /&gt;
* im zweiten Durchlauf steht die Variable für das zweite Element (1), print(element) wird im zweiten Durchlauf also zu print(1) usw.&lt;br /&gt;
* der  darauf folgende Ausdruck &amp;quot;in&amp;quot; dient dazu die Liste, das Dictionary, den String etc. anzugeben, mit dessen Elemente die Schleife durchgeführt werden soll&lt;br /&gt;
* dementsprechend folgt darauf der Namen einer Liste, eines Dictionaries oder eines Strings (ein String kann durch eine Variable gespeichert sein oder direkt angegeben werden), daraufhin folgt ein Doppelpunkt&lt;br /&gt;
* die zur Schleife gehörenden Operationen sind dadurch gekennzeichnet, dass der Code  eingerückt ist  &lt;br /&gt;
&lt;br /&gt;
==== Ablauf der Schleife ==== &lt;br /&gt;
* es wird überprüft ob es ein Element gibt, wessen Wert die Variabel annehmen kann &lt;br /&gt;
* trifft das zu laufen die Befehl der Schleife ab, wobei die Variable immer für den entsprechenden Wert des Elements steht &lt;br /&gt;
* gibt es keine Elemente mehr, dessen Wert noch nicht angenommen wurde, bricht die Schleife ab&lt;br /&gt;
* somit läuft eine for-Schleife immer für jedes Element einmal ab und läuft so häufig ab wie es Elemente gibt (ohne Modifikationen s. unten)&lt;br /&gt;
&lt;br /&gt;
[[File:flowchart ''for''-Schleife.png|200px|thumb|center|flowchart ''for''-Schleife]]&lt;br /&gt;
&lt;br /&gt;
=== Anwendungsmöglichkeiten ===&lt;br /&gt;
&lt;br /&gt;
==== Ausgabe von Dictionaries ====&lt;br /&gt;
* einen großen Vorteil bringt die ''for''-Schleife bei der Ausgabe von Dictionaries &lt;br /&gt;
* da der Zugriff auf die Elemente in einem Dictionary über keys und nicht Indexzahlen erfolgt, ist die Ausgabe von Dictionaries über eine while Schleife sehr kompliziert und kann nicht in der Form s. Ausgabe von Listen mit ''while''-Schleife erfolgen&lt;br /&gt;
* die Ausgabe über die ''for''-Schleife ist sehr einfach und erfolgt wie bei der Ausgabe der Liste &lt;br /&gt;
* zu beachten ist, dass hier die Variable nicht den Wert der Elemente, sondern der keys aufnimmt&lt;br /&gt;
* schreibt man slo wie in Beispiel_2 die Variable in den ''print''-Befehl der Schleife, werden nur die keys des Dictionaries ausgegeben &lt;br /&gt;
&lt;br /&gt;
 #Beispiel_2: &lt;br /&gt;
 buch_1={&amp;quot;Buch&amp;quot;:&amp;quot;Der Herr der Ringe&amp;quot;, &amp;quot;Autor&amp;quot;:&amp;quot;Tolkien&amp;quot;, &amp;quot;Preis&amp;quot;:45}&lt;br /&gt;
 &lt;br /&gt;
 for element in buch_1: &lt;br /&gt;
     print(element)&lt;br /&gt;
&lt;br /&gt;
output&lt;br /&gt;
 Buch&lt;br /&gt;
 Autor&lt;br /&gt;
 Preis&lt;br /&gt;
&lt;br /&gt;
* um den Wert des entsprechenden keys ausgeben zu lassen, ist es notwendig die Variable als Index der Liste anzugeben (s. Beispiel_3)&lt;br /&gt;
 #Beispiel_3:&lt;br /&gt;
 buch_1={&amp;quot;Buch&amp;quot;:&amp;quot;Der Herr der Ringe&amp;quot;, &amp;quot;Autor&amp;quot;:&amp;quot;Tolkien&amp;quot;, &amp;quot;Preis&amp;quot;:45} &lt;br /&gt;
 &lt;br /&gt;
 for element in buch_1:&lt;br /&gt;
    print(buch_1[element])&lt;br /&gt;
&lt;br /&gt;
output&lt;br /&gt;
 Der Herr der Ringe&lt;br /&gt;
 Tolkien&lt;br /&gt;
 45&lt;br /&gt;
&lt;br /&gt;
* das klingt erstmal kompliziert, ergibt aber Sinn &lt;br /&gt;
* die Ausgabe von Dictionaries erfolgt über die Angabe des keys in eckigen Klammern hinter dem Namen des Dictionaries, dabei steht der key stellvertretend für das jeweilige Element der Liste &lt;br /&gt;
* da die Variable der ''for''-Schleife den Wert der keys aufnimmt, wird folglich die Variable in die eckigen Klammern hinter dem Namen des Dictionaries geschrieben&lt;br /&gt;
&lt;br /&gt;
== ''range''-Befehl ==&lt;br /&gt;
 #Befehl&lt;br /&gt;
 for element in range(Anzahl):&lt;br /&gt;
     befehl()&lt;br /&gt;
 &lt;br /&gt;
 #Beipiel_1: &lt;br /&gt;
 for element in range(10):&lt;br /&gt;
     print(element)&lt;br /&gt;
&lt;br /&gt;
output: &lt;br /&gt;
 0&lt;br /&gt;
 1&lt;br /&gt;
 2&lt;br /&gt;
 3&lt;br /&gt;
 4&lt;br /&gt;
 5&lt;br /&gt;
 6&lt;br /&gt;
 7&lt;br /&gt;
 8&lt;br /&gt;
 9&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Funktion === &lt;br /&gt;
* für die Wiederholung eines Vorgangs mit einer festen Anzahl an Wiederholungen&lt;br /&gt;
* ist auch mit ''while''-Schleife lösbar, wird durch ''range''-Befehl deutlich einfacher&lt;br /&gt;
&lt;br /&gt;
=== Syntax === &lt;br /&gt;
* hinter dem Ausdruck &amp;quot;range&amp;quot; kommt eine Klammer mit der einer Zahl&lt;br /&gt;
&lt;br /&gt;
==== range(stop) ==== &lt;br /&gt;
* schreibt man in den ''range''-Befehl nur eine Zahl, wird diese als Stoppwert genommen; automatisch ist 0 der Startwert als 1 die Schrittgröße (step)&lt;br /&gt;
&lt;br /&gt;
==== range(start, stop) ==== &lt;br /&gt;
* schreibt man in den range Befehl zwei Zahlen durch ein Komma getrennt, wird die erste Zahl als Startwert und die zweite als Stoppwert definiert(Stoppwert wird nicht ausgegeben); nimmt 1 als step an  &lt;br /&gt;
&lt;br /&gt;
==== range(start, stop, step) ==== &lt;br /&gt;
* schreibt man in den ''Range''-Befehl drei Zahlen, die jeweils mit einem Komma getrennt sind, wird die dritte Zahl als step definiert&lt;br /&gt;
&lt;br /&gt;
== ''append''-Befehl ==&lt;br /&gt;
&lt;br /&gt;
 #Befehl&lt;br /&gt;
 liste=[element_1,element_2]&lt;br /&gt;
 liste.append(element_3)&lt;br /&gt;
 &lt;br /&gt;
 #Beispiel_1: &lt;br /&gt;
 liste=[1,2,&amp;quot;Apfel&amp;quot;]&lt;br /&gt;
 liste.append(&amp;quot;Baum&amp;quot;)&lt;br /&gt;
 &lt;br /&gt;
 print(liste) &lt;br /&gt;
&lt;br /&gt;
output &lt;br /&gt;
 [1, 2, 'Apfel', 'Baum']&lt;br /&gt;
&lt;br /&gt;
=== Funktion ===&lt;br /&gt;
* fügt einer Liste ein Element hinzu &lt;br /&gt;
* wie in Beispiel_1 gezeigt, wird der Liste das Levent &amp;quot;Baum&amp;quot; hinzugefügt &lt;br /&gt;
&lt;br /&gt;
=== Syntax === &lt;br /&gt;
* hinter dem Namen der Liste folgt ein Punkt und der Ausdruck &amp;quot;append&amp;quot;, dahinter folg in Klammern das Element, welches der Liste hinzugefügt werden soll &lt;br /&gt;
* es ist auch möglich einer Liste mehrere Elemente hinzuzufügen, der Name der hinzuzufügenden Liste wird in den ''append''-Befehl geschrieben &lt;br /&gt;
* die Elemente müssen allerdings auch als Liste strukturiert sein (s.Beispiel_2) &lt;br /&gt;
&lt;br /&gt;
 #Beispiel_2:&lt;br /&gt;
 liste_1=[1,2,3,&amp;quot;Baum&amp;quot;]&lt;br /&gt;
 liste_2=[4,5,6,&amp;quot;Strauch&amp;quot;]&lt;br /&gt;
 liste_1.append(liste_2)&lt;br /&gt;
 &lt;br /&gt;
 print(liste_1)&lt;br /&gt;
&lt;br /&gt;
output&lt;br /&gt;
 [1, 2, 3, 'Baum', [4, 5, 6, 'Strauch']]&lt;br /&gt;
&lt;br /&gt;
* nun wurden zwar die Elemente der liste_2 der liste_1 hinzugefügt, allerdings als Liste in der Liste &lt;br /&gt;
* der Grund dafür ist, das der ''append''-Befehl einer Liste immer nur ein Element hinzufügt &lt;br /&gt;
* so wird eine Liste, die hinzugefügt werden soll, erst als ein einzelnes Element abgespeichert und dann hinzugefügt&lt;br /&gt;
* das Problem lässt sich einfach lösen, indem die Elemente der liste_2 einzeln und nacheinander der liste_1 hinzufügt werden, dafür eignet sich besonders gut eine ''for''-Schleife (s.Beispiel_3) &lt;br /&gt;
&lt;br /&gt;
 #Beispeil_3: &lt;br /&gt;
 liste_1=[1,2,3,&amp;quot;Baum&amp;quot;]&lt;br /&gt;
 liste_2=[4,5,6,&amp;quot;Strauch&amp;quot;]&lt;br /&gt;
 for element in liste_2: &lt;br /&gt;
     liste_1.append(element)&lt;br /&gt;
    &lt;br /&gt;
 print(liste_1)&lt;br /&gt;
&lt;br /&gt;
output&lt;br /&gt;
 [1, 2, 3, 'Baum', 4, 5, 6, 'Strauch']&lt;br /&gt;
&lt;br /&gt;
== ''if''-Befehl ==&lt;br /&gt;
&lt;br /&gt;
 #Befehl&lt;br /&gt;
 if Bedingung: &lt;br /&gt;
    Befehl &lt;br /&gt;
 &lt;br /&gt;
 #Beispiel: &lt;br /&gt;
 if 4 &amp;lt; 10: &lt;br /&gt;
     print(&amp;quot;4 ist kleiner als 10&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
output &lt;br /&gt;
 4 ist kleiner als 10&lt;br /&gt;
&lt;br /&gt;
=== Funktion === &lt;br /&gt;
* der ''if''-Befehl macht es einem Computerprorgamm möglich auf verschiedene Ereignisse unterschiedlich zu reagieren &lt;br /&gt;
* diese Funktion hebt ein Programm von einer einfachen Rechenanleitung ab &lt;br /&gt;
&lt;br /&gt;
=== Syntax ===&lt;br /&gt;
* nach dem Ausdruck &amp;quot;if&amp;quot; folgt die Bedingung die überprüft werden soll, daraufhin ein Doppelpunkt &lt;br /&gt;
* die folgenden Kommandozeilen, die zum ''if''-Befehl gehören sind dadurch gekennzeichnet, dass sie versetzt sind &lt;br /&gt;
&lt;br /&gt;
=== Ablauf der Schleife ===&lt;br /&gt;
* nach dem Ausdruck &amp;quot;if&amp;quot; wird überprüft ob die darauf folgende Bedingung zutrifft&lt;br /&gt;
* trifft die Bedingung zu, werden die Befehle ausgeführt &lt;br /&gt;
* trifft die Bedingung nicht zu, werden die Befehle übersprungen &lt;br /&gt;
* so ist der Ablauf abhängig von bestimmten Bedingungen und ändert sich je nachdem welche Bedingungen erfüllt bzw. nicht erfüllt werden &lt;br /&gt;
&lt;br /&gt;
=== Bedingungen stellen ===&lt;br /&gt;
* die Gleichheit von zwei Werten lässt sich mit &amp;quot;==&amp;quot; überprüfen &lt;br /&gt;
* damit kann die Gleichheit von int, str, float und bool überprüft werden (s.Beipsiel_2)&lt;br /&gt;
&lt;br /&gt;
 #Befehl&lt;br /&gt;
 if Bedingung_1 == Bedingung_2: &lt;br /&gt;
    Befehl&lt;br /&gt;
 &lt;br /&gt;
 #Beispiel_2:&lt;br /&gt;
 a=1&lt;br /&gt;
 b=&amp;quot;hallo&amp;quot;&lt;br /&gt;
 c=True&lt;br /&gt;
 &lt;br /&gt;
 if a==1:&lt;br /&gt;
     print(a)&lt;br /&gt;
 if b==&amp;quot;hallo&amp;quot;:&lt;br /&gt;
     print(b)&lt;br /&gt;
 if c==True:&lt;br /&gt;
     print(c)&lt;br /&gt;
&lt;br /&gt;
output&lt;br /&gt;
 1&lt;br /&gt;
 hallo&lt;br /&gt;
 True&lt;br /&gt;
&lt;br /&gt;
* um zu überprüfen ob ein Wert größer oder kleiner als ein anderer ist, werden folgende Symbole verwendet:&lt;br /&gt;
&amp;lt;, &amp;lt;=  kleiner, kleiner gleich &lt;br /&gt;
&lt;br /&gt;
&amp;gt;, &amp;gt;=  größer, größer gleich &lt;br /&gt;
* die Ungleichheit lässt sich mit &amp;quot;!=&amp;quot; überprüfen &lt;br /&gt;
* mit diesen einfachen Bedingungen und dem ''if''-Befehl lässt sich ganz einfach ein kleines Ratespiel programmieren, welches abhängig von der Eingabe des Nutzers reagieren kann &lt;br /&gt;
&lt;br /&gt;
 #Beipiel_3: &lt;br /&gt;
 eingabe=eval(input(&amp;quot;Errate die richtige Zahl zwischen 1 und 10: &amp;quot;))&lt;br /&gt;
 zahl=8&lt;br /&gt;
 if eingabe==zahl: &lt;br /&gt;
     print(&amp;quot;du hast de richtige Zahl erraten&amp;quot;)&lt;br /&gt;
 if eingabe!=zahl: &lt;br /&gt;
    print (&amp;quot;leider falsch, versuche es nochmal&amp;quot;)&lt;br /&gt;
 if eingabe&amp;gt;zahl: &lt;br /&gt;
     print(&amp;quot;versuche eine kleinere Zahl&amp;quot;)&lt;br /&gt;
 if eingabe&amp;lt;zahl: &lt;br /&gt;
     print(&amp;quot;versuche eine größere Zahl&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Zusammengesetzte Bedingungen ====&lt;br /&gt;
* wenn mehrere Bedingungen gleichzeitig überprüft werden sollen, können diese durch drei Operatoren miteinander verknüpft werden &lt;br /&gt;
* das macht einen Code kürzer und übersichtlicher, weil nicht mehrer ''if''-Befehle ineinander geschrieben werden müssen&lt;br /&gt;
# &amp;quot;and&amp;quot; wird benutzt wenn zwei oder mehrere Bedingungen gleichzeitig zutreffen müssen &lt;br /&gt;
# &amp;quot;or&amp;quot; wird benutzt wenn eine von mehreren möglichen Bedingungen zutreffen muss&lt;br /&gt;
# &amp;quot;not&amp;quot; wird zur Verneinung genutzt (hier ist zu beachten, dass alles worauf sich das &amp;quot;not&amp;quot; beziehen soll in klammern gesetzt werden muss, sonst bezieht sich der Ausdruck nur auf das erste Element) &lt;br /&gt;
&lt;br /&gt;
 #Beispiel_4:&lt;br /&gt;
 zahl=6&lt;br /&gt;
 if zahl &amp;lt;10 and zahl &amp;gt;5: &lt;br /&gt;
     print(&amp;quot;richtig&amp;quot;)&lt;br /&gt;
 &lt;br /&gt;
 #anstatt&lt;br /&gt;
 if zahl &amp;lt;10:&lt;br /&gt;
     if zahl&amp;gt;5: &lt;br /&gt;
         print(&amp;quot;richtig&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
=== ''else''-Befehl  ===&lt;br /&gt;
&lt;br /&gt;
 #Befehl &lt;br /&gt;
 if Bedingung: &lt;br /&gt;
    Befehl_1&lt;br /&gt;
 else: &lt;br /&gt;
    Befehl_2&lt;br /&gt;
 &lt;br /&gt;
 #Beispiel_1: &lt;br /&gt;
 eingabe=eval(input(&amp;quot;Errate die richtige Zahl zwischen 1 und 10: &amp;quot;))&lt;br /&gt;
 zahl=8&lt;br /&gt;
 &lt;br /&gt;
 if eingabe==zahl: &lt;br /&gt;
     print(&amp;quot;du hast de richtige Zahl erraten&amp;quot;)&lt;br /&gt;
 else: &lt;br /&gt;
 print(&amp;quot;das ist nicht die gesuchte Zahl&amp;quot;) &lt;br /&gt;
&lt;br /&gt;
==== Funktion ====&lt;br /&gt;
* erfüllt die Funktion von ''if not'' &lt;br /&gt;
* erspart dabei Arbeit, weil im Gegensatz zu 'if not' Operator, die Bedingungen, nicht extra im Befehl formuliert werden müssen &lt;br /&gt;
* der 'else'-Befehl schließt automatisch alle Bedingungen ein, die nicht vom ''if''-Befehl abgedeckt werden &lt;br /&gt;
&lt;br /&gt;
==== Syntax ====&lt;br /&gt;
* nach dem Ausdruck &amp;quot;else&amp;quot; folgt ein Doppelpunkt und der Befehl &lt;br /&gt;
* wenn die Bedingung des ''if''-Befehls nicht zutreffen, wird automatisch der ''else''-Befehl ausgeführt &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== ''elif''-Befehl === &lt;br /&gt;
&lt;br /&gt;
 #Befehl&lt;br /&gt;
 if Bedingung_1: &lt;br /&gt;
    Befehl_1&lt;br /&gt;
 elif Bedingung_2: &lt;br /&gt;
    Befehl_2 &lt;br /&gt;
 elif Bedingung_3: &lt;br /&gt;
    Befehl_3 &lt;br /&gt;
&lt;br /&gt;
==== Funktion ==== &lt;br /&gt;
* steht für &amp;quot;else if&amp;quot; &lt;br /&gt;
* ersetzt die Ineinanderschachtelungen von mehreren ''if''-Befehlen &lt;br /&gt;
* ein ''elif''-Befehl wird nur durchgeführt, wenn die vorangegangene ''if''-Bedingung nicht erfüllt wird&lt;br /&gt;
&lt;br /&gt;
==== Syntax ==== &lt;br /&gt;
* nach dem Ausdruck &amp;quot;elif&amp;quot; folgt die Bedingung, ein Doppelpunkt und der Befehl&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Funktionen == &lt;br /&gt;
&lt;br /&gt;
 #Befehl: &lt;br /&gt;
 def funktionsname (evtl. Übergabewerte): &lt;br /&gt;
        Befehl &lt;br /&gt;
 &lt;br /&gt;
 #Besipiel_1: &lt;br /&gt;
 def begrüßung():&lt;br /&gt;
     print(&amp;quot;hallo&amp;quot;)&lt;br /&gt;
 begrüßung()&lt;br /&gt;
&lt;br /&gt;
output&lt;br /&gt;
 hallo&lt;br /&gt;
&lt;br /&gt;
=== Funktion === &lt;br /&gt;
* ein Befehl kann als Funktion abgespeichert werden &lt;br /&gt;
* wird der Befehl in einem Programm häufiger verwendet, muss dieser nicht immer wieder erneut geschrieben werden, stattdessen muss nur die Funktion abgerufen werden &lt;br /&gt;
* erspart Zeit und sorgt für Übersichtlichkeit des Programms &lt;br /&gt;
* noch übersichtlicher wird ein Code, wenn man die Funktionen nicht im Hauptprogramm sondern anderen Daten abspeichern &lt;br /&gt;
&lt;br /&gt;
=== Syntax === &lt;br /&gt;
* nach dem Begriff &amp;quot;def&amp;quot; folg der Name der Funktion (sinnvoll sind Namen, die die Aufgabe der Funktion beschreiben) &lt;br /&gt;
* danach folgt eine runde Klammer, in die Klammer können Werte aus dem Hauptprogramm übernommen werden, z.B. wenn die Funktion eine Rechnung darstellt und im Laufe des Programms mit verschiedenen Werten diese Rechnung durchgeführt werden soll (s. Funktionen mit Argumenten) &lt;br /&gt;
* werden keine Werte übernommen, bleibt die Klammer leer &lt;br /&gt;
&lt;br /&gt;
=== Funktionen mit Argumenten === &lt;br /&gt;
* wird benutzt, wenn ein bestimmter Wert aus dem Hauptprogramm übernommen werden soll und es sich nicht immer um den gleichen Wert handelt &lt;br /&gt;
* die im Beispiel_1 leer geblieben Klammern, haben die Aufgabe einen Wert aus dem Hauptprogramm an die Funktion zu überreichen &lt;br /&gt;
* dabei schreibt man den Wert, der überreicht werden soll in die Klammer hinter den Funktionsnamen im Hauptprogramm --&amp;gt; der Wert wird als Argument bezeichnet &lt;br /&gt;
* in die Klammer hinter dem Funktionsnamen in der Funktion, schreibt man einen Variablennamen, der automatisch für den Wert aus dem Hauptprogramm steht &lt;br /&gt;
* stellvertretend für die Werte aus dem Hauptprogramm, kann mit dem Variablennamen ein Befehl geschrieben werden (s.Beispiel_2) &lt;br /&gt;
&lt;br /&gt;
 #Beispiel_2: &lt;br /&gt;
 def begrüßung(name): &lt;br /&gt;
     print(name, &amp;quot;sagt hallo&amp;quot;)&lt;br /&gt;
 begrüßung(&amp;quot;jack&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
output&lt;br /&gt;
 jack sagt hallo&lt;br /&gt;
&lt;br /&gt;
* die Funktion hallo ist abhängig vom Argument name. Dieses Argument muss der Funktion beim Aufrufen gegeben werden, sonst funktioniert sie nicht&lt;br /&gt;
* der Funktion wird „Jack“ als Argument für Name übergeben&lt;br /&gt;
* es können nicht nur str, sondern auch int, float und alle weiteren Datentypen und Strukturen, einer Funktion übergeben werden &lt;br /&gt;
* es ist auch möglich Funktionen mit mehreren Argumenten zu benutzen, dafür werden die Argumente mit einem Komma voneinander getrennt (s.Beipiel_3) &lt;br /&gt;
&lt;br /&gt;
 #Beispeil_3: &lt;br /&gt;
 def begrüßung(name, zahl): &lt;br /&gt;
    print(&amp;quot;Hallo ich heiße&amp;quot;, name)&lt;br /&gt;
    print(&amp;quot;und bin&amp;quot;, zahl, &amp;quot;Jahre alt&amp;quot;)&lt;br /&gt;
 &lt;br /&gt;
 eingabe_1=input(&amp;quot;Gib hier dienen Namen ein: &amp;quot;)&lt;br /&gt;
 eingabe_2=eval(input(&amp;quot;Gib hier dein Alter ein: &amp;quot;))&lt;br /&gt;
 begrüßung(eingabe_1, eingabe_2)&lt;br /&gt;
&lt;br /&gt;
output&lt;br /&gt;
 Hallo ich heiße Jack  &lt;br /&gt;
 und bin 20 Jahre alt&lt;br /&gt;
&lt;br /&gt;
=== Funktionen mit Rückgabewerten: der ''return-Befehl === &lt;br /&gt;
&lt;br /&gt;
 #Befehl&lt;br /&gt;
 def funktionsname (evtl. Übergabewerte): &lt;br /&gt;
        Ergebnis=Befehl &lt;br /&gt;
        return(Ergebnis) &lt;br /&gt;
&lt;br /&gt;
 #Beispiel_2: &lt;br /&gt;
 def Rechnung(zahl): &lt;br /&gt;
     value=3*zahl**2&lt;br /&gt;
     return(value)&lt;br /&gt;
 Ergebnis=Rechnung(4)&lt;br /&gt;
 print(Ergebnis)&lt;br /&gt;
 &lt;br /&gt;
output&lt;br /&gt;
 48&lt;br /&gt;
&lt;br /&gt;
==== Funktion ====&lt;br /&gt;
* die Ergebnisse aus den Funktionen können dem Hauptprogramm übergeben werden um damit weiter arbeiten zu können &lt;br /&gt;
&lt;br /&gt;
==== Syntax ==== &lt;br /&gt;
* nach dem Schlüsselbegriff &amp;quot;return&amp;quot; folgt eine runde Klammer mit dem Wert der zurückgegeben werden soll &lt;br /&gt;
* dieser Wert selbst kann als Variable abgespeichert werden&lt;br /&gt;
&lt;br /&gt;
== Literatur ==&lt;br /&gt;
Michael Bonacina: Python 3 Programmieren für Einsteiger. 2. Auflage. BMU Verlag, Landshut 2019, ISBN: 978-3-96645-007-2&lt;/div&gt;</summary>
		<author><name>Ani</name></author>
	</entry>
	<entry>
		<id>http://wiki.bioinfo.nat.tu-bs.de/index.php?title=3.Befehle&amp;diff=969</id>
		<title>3.Befehle</title>
		<link rel="alternate" type="text/html" href="http://wiki.bioinfo.nat.tu-bs.de/index.php?title=3.Befehle&amp;diff=969"/>
		<updated>2023-05-28T14:56:31Z</updated>

		<summary type="html">&lt;p&gt;Ani: Print und Input-Dokumentation überarbeitet&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== ''print''-Befehl ==&lt;br /&gt;
‎&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Befehl: &lt;br /&gt;
print()&lt;br /&gt;
 &lt;br /&gt;
# Beispiel: &lt;br /&gt;
print(&amp;quot;hello&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
name = &amp;quot;Max&amp;quot;&lt;br /&gt;
print(f&amp;quot;Hallo, {name}!&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
# Output:&lt;br /&gt;
# hello &lt;br /&gt;
# Hallo, Max!&lt;br /&gt;
‎&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== Funktion ===&lt;br /&gt;
* der entsprechende Inhalt des ''print''-Befehls wird in der Konsole ausgegeben &lt;br /&gt;
&lt;br /&gt;
=== Syntax ===&lt;br /&gt;
* die runden Klammern umschließen das Argument, das ausgegeben wird&lt;br /&gt;
* Wörter, bei denen es sich nicht um einen Variablennamen handelt, müssen in Anführungszeichen gesetzt werden&lt;br /&gt;
* geschieht das nicht, wird ein Syntaxfehler angezeigt (s. Beispiel_2)&lt;br /&gt;
* int und floats werden ohne Anführungszeichen eingegeben&lt;br /&gt;
* soll eine Variable innerhalb eines Strings eingefügt werden, kann ein sogenannter f-String genutzt werden. Dazu wird vor die Anführungszeichen ein f geschrieben, innerhalb des Strings werden die geschweiften Klammern dann durch den darin enthaltenen Ausdruck ersetzt (s. Beispiel_1)&lt;br /&gt;
‎&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Beispiel_2:&lt;br /&gt;
print(falsch)&lt;br /&gt;
&lt;br /&gt;
# Output:&lt;br /&gt;
# NameError: name 'falsch' is not defined&lt;br /&gt;
‎&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* Python geht davon aus, dass es sich bei „falsch“ um eine Variable handelt und möchte den Wert dieser Variablen ausgeben. Es wurde aber keine Variable mit den Namen „falsch“ definiert. Der Fehler kann durch das Hinzufügen von Anführungszeichen behoben werden:&lt;br /&gt;
&lt;br /&gt;
‎&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
print(&amp;quot;falsch&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
# Output:&lt;br /&gt;
# falsch&lt;br /&gt;
‎&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ''type''-Befehl ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Befehl&lt;br /&gt;
type()&lt;br /&gt;
&lt;br /&gt;
# Beispiel_1: &lt;br /&gt;
a = &amp;quot;abc&amp;quot;&lt;br /&gt;
d = True&lt;br /&gt;
print(type(a))&lt;br /&gt;
print(type(1))&lt;br /&gt;
print(type(1.0)&lt;br /&gt;
print(type(d))&lt;br /&gt;
 &lt;br /&gt;
buch_1 = {'Buch': 'Der Herr der Ringe', 'Autor': 'Tolkien', 'Preis': 45}&lt;br /&gt;
print(type(buch_1))&lt;br /&gt;
&lt;br /&gt;
# Output:&lt;br /&gt;
# &amp;lt;class 'str'&amp;gt;&lt;br /&gt;
# &amp;lt;class 'int'&amp;gt;&lt;br /&gt;
# &amp;lt;class 'float'&amp;gt;&lt;br /&gt;
# &amp;lt;class 'bool'&amp;gt;&lt;br /&gt;
# &amp;lt;class 'dict'&amp;gt;&lt;br /&gt;
‎&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
===Funktion===&lt;br /&gt;
* mit dem ''type''-Befehl lässt sich der Datentyp bestimmen&lt;br /&gt;
&lt;br /&gt;
=== Syntax ===&lt;br /&gt;
* um den Datentyp zu bestimmen wird dieser in die Klammern des ''type''-Befehls geschrieben &lt;br /&gt;
* dabei kann es sich direkt um den Datentyp handeln oder einen Variablennamen &lt;br /&gt;
* auch hier ist der print Befehl wieder notwendig, um das Ergebnis ausgeben zu lassen &lt;br /&gt;
* ohne den print -Befehl wird der type -Befehl zwar ausgeführt, aber nicht in der Konsole ausgegeben&lt;br /&gt;
&lt;br /&gt;
== ''input'' -Befehl ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Befehl:&lt;br /&gt;
eingabe = input()&lt;br /&gt;
 &lt;br /&gt;
# Beispiel: &lt;br /&gt;
zahl = input()&lt;br /&gt;
print(zahl)&lt;br /&gt;
&lt;br /&gt;
# output&lt;br /&gt;
 3 # eingegebene Zahl des Nutzers im Eingabefeld  &lt;br /&gt;
 3 # durch print-Befehl ausgegebene Zahl&lt;br /&gt;
‎&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== Funktionen ===&lt;br /&gt;
* ermöglicht dem Nutzer die Interaktion mit dem Programm &lt;br /&gt;
* so kann z.B. ein Rechenprogramm mit jeder beliebigen vom Nutzer eingegebenen Zahl rechnen und nicht nur mit vorab programmierten Zahlen &lt;br /&gt;
&lt;br /&gt;
=== Syntax ===&lt;br /&gt;
* nach den Ausdruck &amp;quot;input&amp;quot; folgt eine Klammer, die bei Ausführung des Programms ein Eingabefeld in der Konsole erzeugt&lt;br /&gt;
* gleichzeitig handelt es sich beim ''input''-Befehl auch um ein ''print''-Befehl, dazu muss der entsprechende Text einfach in die Klammer eingegeben werden (s. Beispiel_2)&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Beispiel_2:&lt;br /&gt;
zahl = input(&amp;quot;Gib hier deine Zahl ein: &amp;quot;)&lt;br /&gt;
 &lt;br /&gt;
print(zahl)&lt;br /&gt;
&lt;br /&gt;
# Output:&lt;br /&gt;
# Gib hier deine Zahl ein: 3&lt;br /&gt;
# 3&lt;br /&gt;
‎&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* die Eingabe des Nutzers wird meist durch eine Variable definiert, d.h.: &lt;br /&gt;
 eingabe = input()&lt;br /&gt;
* da der einzutragende Wert bei der Programmierung nicht bekannt ist, kann so „stellvertretend“ mit der Variablen programmiert werden &lt;br /&gt;
* s. Beispiel_3, bei der die Rechenoperation „* 2“ mit der Variablen „zahl“ programmiert wird, welche später durch die Eingabe des Nutzers einen Zahlenwert erhält&lt;br /&gt;
* der Wert der Variable wird also erst festgelegt, während das Programm läuft &lt;br /&gt;
* in der Konsole entsteht durch den ''input-Befehl'' ein „Eingabefeld“ (nicht direkt sichtbar) in das der Nutzer einen Wert (in Beispiel_1 eine Zahl) eintragen kann &lt;br /&gt;
* ACHTUNG!: jede Eingabe wird durch den input-Befehl automatisch als string gespeichert &lt;br /&gt;
* in Beispiel_3 wird die 3 in string-Form abgespeichert &lt;br /&gt;
* die Rechenoperation wird nicht als Multiplikation mit 2 verstanden sondern als Wiederholung des strings &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Beispiel_3: &lt;br /&gt;
zahl = input(&amp;quot;Gib hier deine Zahl ein: &amp;quot;)&lt;br /&gt;
ergebnis = zahl * 2&lt;br /&gt;
print(ergebnis)&lt;br /&gt;
&lt;br /&gt;
# output&lt;br /&gt;
# Gib hier deine Zahl ein: 3&lt;br /&gt;
# 33&lt;br /&gt;
‎&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* der string 3 wird wiederholt und es kommt 33 statt 6 heraus &lt;br /&gt;
* Lösung: man kann den Datentyp des &amp;quot;inputs&amp;quot; vorab umwandeln:&lt;br /&gt;
 int(input()) , float(input())&lt;br /&gt;
* weiß man vorab nicht, um welchen Datentypen es sich handelt, ist der eval()-Befehl zu empfehlen (s. Beispiel 4) , dieser speichert die Eingabe automatisch unter dem passenden Datentypen ab (string, integer, float) &lt;br /&gt;
* hier ist allerdings zu beachten, das in der Konsole ein string wieder in Anführungszeichen gesetzt werden muss&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Beispiel_4: &lt;br /&gt;
zahl = eval(input(&amp;quot;Gib hier deine Zahl ein: &amp;quot;))&lt;br /&gt;
ergebnis = zahl * 2&lt;br /&gt;
print(ergebnis)&lt;br /&gt;
&lt;br /&gt;
# output&lt;br /&gt;
# Gib hier deine Zahl ein: 3&lt;br /&gt;
# 6&lt;br /&gt;
&lt;br /&gt;
# oder &lt;br /&gt;
&lt;br /&gt;
# Gib hier deine Zahl ein: 2.4&lt;br /&gt;
# 4.8&lt;br /&gt;
&lt;br /&gt;
# oder &lt;br /&gt;
&lt;br /&gt;
# Gib hier deine Zahl ein: &amp;quot;a&amp;quot;&lt;br /&gt;
# aa&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
== ''while''-Schleife ==&lt;br /&gt;
&lt;br /&gt;
 #Befehl&lt;br /&gt;
 while Bedingung:&lt;br /&gt;
     Operation() &amp;lt;br&amp;gt;&lt;br /&gt;
 #Beispiel:&lt;br /&gt;
 n=1&lt;br /&gt;
 while n&amp;lt;10: &lt;br /&gt;
     print(n)&lt;br /&gt;
     n=n+1&lt;br /&gt;
&lt;br /&gt;
output&lt;br /&gt;
 1&lt;br /&gt;
 2&lt;br /&gt;
 3&lt;br /&gt;
 4&lt;br /&gt;
 5&lt;br /&gt;
 6&lt;br /&gt;
 7&lt;br /&gt;
 8&lt;br /&gt;
 9&lt;br /&gt;
&lt;br /&gt;
=== Funktion ===&lt;br /&gt;
* bestimmte Operationen werden automatisch wiederholt &lt;br /&gt;
* erspart viel Programmierarbeit, da nicht alle Operationen einzeln programmiert werden müssen &lt;br /&gt;
&lt;br /&gt;
=== Syntax ===&lt;br /&gt;
* die Schleife wird mit dem Ausdruck &amp;quot;while&amp;quot; begonnen &lt;br /&gt;
* darauf folgt eine Bedingung, die überprüft wird (z.B. n&amp;lt;10) gefolgt von einem Doppelpunkt&lt;br /&gt;
* in den nächsten Zeilen folgen die Operationen, die innerhalb der Schleife durchgeführt werden sollen &lt;br /&gt;
* die zur Schleife gehörenden Operationen sind dadurch gekennzeichnet, dass der Code  eingerückt ist &lt;br /&gt;
* die ''while''-Schleife sollte so programmiert sein, dass sie irgendwann zu einem Ende kommt und nicht endlos weiterläuft, d.h. die zu überprüfende Bedingung darf irgendwann nicht mehr zutreffen &lt;br /&gt;
* --&amp;gt; ansonsten kommt es zu einer endlosen Schleife  &lt;br /&gt;
&lt;br /&gt;
==== Ablauf der Schleife ====&lt;br /&gt;
* am besten wird die Funktion und die Syntax einer Schleife klar, wenn man sie Schritt für Schritt durchgeht, hier am Beispiel_1: &lt;br /&gt;
* '''ersten Zeile: der Variablen n wir der Wert 1 zugeordnet''' &lt;br /&gt;
* '''zweite Zeile: so lange n kleiner als 10 ist werden folgende Operationen durchgeführt''' &lt;br /&gt;
*(hier wird die Bedingung überprüft, trifft sie zu werden die Operationen der Schleife durchgeführt)  &lt;br /&gt;
* '''dritte Zeile: gebe den Wert von n aus''' &lt;br /&gt;
* (im ersten Durchlauf beträgt der Wert, wie in der ersten Zeile definiert, den Wert 1) &lt;br /&gt;
* '''vierte Zeile: definiere die Variable n neu, indem du den Wert von n nimmst und 1 addierst'''&lt;br /&gt;
* (n wird neu definiert als der alte Wert von n plus eins, also 1+1, damit ist n jetzt 2) &lt;br /&gt;
* sobald die Operationen der Schleife durchgeführt sind, beginnt sie wieder von Neuem, also mit der Überprüfung der Bedingung &lt;br /&gt;
* so wird der Wert n immer größer&lt;br /&gt;
* erst wenn n=10, trifft die Bedingung nicht zu, die Operationen der Schleife werden nicht durchgeführt &lt;br /&gt;
* finden sich weiter Programmzeilen unterhalb der Schleife, die nicht Teil der Schleife sind, werden diese Programmzeilen erst nach Beendigung der Schleife ausgeführt&lt;br /&gt;
[[File:Flow diagram while_schleife.png|200px|thumb|center|flowchart ''while''-Schleife]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== ''len''-Befehl ==&lt;br /&gt;
&lt;br /&gt;
 #Befehl&lt;br /&gt;
 len(liste)&lt;br /&gt;
 &lt;br /&gt;
 #Beipiel_1:&lt;br /&gt;
 tier_1=[&amp;quot;Hund&amp;quot;,100,399,99,True]&lt;br /&gt;
 print(len(tier_1))&lt;br /&gt;
&lt;br /&gt;
output&lt;br /&gt;
 5&lt;br /&gt;
&lt;br /&gt;
=== Funktion ===&lt;br /&gt;
* gibt die Anzahl an Elementen in einer Liste, Dictionary, Tupel etc. an&lt;br /&gt;
&lt;br /&gt;
=== Syntax ===&lt;br /&gt;
* hinter dem Ausdruck &amp;quot;len&amp;quot; wird der Name der Liste in Klammern geschrieben &lt;br /&gt;
&lt;br /&gt;
=== Anwendungsmöglichkeiten ===&lt;br /&gt;
&lt;br /&gt;
==== ''len''-Befehl und ''while''-Schleife ====&lt;br /&gt;
* wenn mit der ''while''-Schleife eine Liste ausgeben werden soll, muss die Schleife so programmiert werden, dass die Variable die für die Indexzahl steht maximal so groß wird, wie die Anzahl an Elementen in der Liste (s.Beispiel_2)&lt;br /&gt;
&lt;br /&gt;
 #Beispiel_2&lt;br /&gt;
 i=0&lt;br /&gt;
 tier_1=[&amp;quot;Hund&amp;quot;,100,399,99,True]&lt;br /&gt;
 while i &amp;lt; 5:&lt;br /&gt;
     print(tier_1[i])&lt;br /&gt;
     i=i+1&lt;br /&gt;
 &lt;br /&gt;
 # wird die Variabel &amp;quot;i&amp;quot; größer als die Länge der Liste &lt;br /&gt;
 &lt;br /&gt;
 i=0&lt;br /&gt;
 tier_1=[&amp;quot;Hund&amp;quot;,100,399,99,True]&lt;br /&gt;
 while i &amp;lt; 6:&lt;br /&gt;
     print(tier_1[i])&lt;br /&gt;
     i=i+1&lt;br /&gt;
&lt;br /&gt;
output &lt;br /&gt;
 Hund&lt;br /&gt;
 100&lt;br /&gt;
 399&lt;br /&gt;
 99&lt;br /&gt;
 True&lt;br /&gt;
 &lt;br /&gt;
 # wird die Variabel &amp;quot;i&amp;quot; größer als die Länge der Liste&lt;br /&gt;
 &lt;br /&gt;
 IndexError: list index out of range&lt;br /&gt;
&lt;br /&gt;
* ist die Länge einer Liste unbekannt oder zu umständlich diese zu ermitteln, hilft der ''len''-Befehl &lt;br /&gt;
* statt einer Zahl steht dann &amp;quot;len(name_der_liste)&amp;quot; in der Schleife, dadurch wird die Länge der Liste automatisch ermittelt (s.Beispiel_3)&lt;br /&gt;
&lt;br /&gt;
 #Beipiel_3 &lt;br /&gt;
 i=0&lt;br /&gt;
 tier_1=[&amp;quot;Hund&amp;quot;,100,399,99,True]&lt;br /&gt;
 while i &amp;lt; len(tier_1):&lt;br /&gt;
    print(tier_1[i])&lt;br /&gt;
    i=i+1&lt;br /&gt;
&lt;br /&gt;
output&lt;br /&gt;
 Hund&lt;br /&gt;
 100&lt;br /&gt;
 399&lt;br /&gt;
 99&lt;br /&gt;
 True&lt;br /&gt;
&lt;br /&gt;
== ''for''- Schleife ==&lt;br /&gt;
 &lt;br /&gt;
 #Befehl: &lt;br /&gt;
 for element in sammlung: &lt;br /&gt;
 	befehl()&lt;br /&gt;
 &lt;br /&gt;
 #Beispiel_1:&lt;br /&gt;
 liste=[“Python”, 1, 4.5, True]&lt;br /&gt;
 &lt;br /&gt;
 for element in liste: &lt;br /&gt;
 	print(element)&lt;br /&gt;
&lt;br /&gt;
output&lt;br /&gt;
 Python&lt;br /&gt;
 1&lt;br /&gt;
 4.5&lt;br /&gt;
 True&lt;br /&gt;
&lt;br /&gt;
=== Funktion ===&lt;br /&gt;
* erlaubt, wie die ‘‘while‘‘- Schleife, die automatische Wiederholung von Befehlen &lt;br /&gt;
* bietet im Gegensatz zur ‘‘while‘‘-Schleife einige Vorteile (viele Funktionen der ''for''-Schleife wären zwar auch mit einer ''while''-Schleifen lösbar, die ''for''-Schleifen macht die Programmierung jedoch deutlich einfacher) &lt;br /&gt;
* die ''for''- Schleife eignet sich besonders gut für die einzelne Ausgabe der Elemente von Dictionaries &lt;br /&gt;
* sowie die Durchführung von Befehlen, die für jedes Element einer Sequenz (z.B. str) oder Sammlung (z.B. Liste) einmal durchgeführt werden soll&lt;br /&gt;
&lt;br /&gt;
=== Syntax ===&lt;br /&gt;
* nach den Ausdruck &amp;quot;for&amp;quot; kommt der  Name der Variablen, dieser steht stellvertretend für jedes Element einer Sammlung oder Sequenz&lt;br /&gt;
* beim ''input''-Befehl war es vorteilhaft die beim Programmieren noch nicht bekannte (weil erst später durch den Nutzer erfolgende) Eingabe bereits im Programmcode stellvertretende durch eine Variable zu definieren&lt;br /&gt;
* so konnte z.B. eine Rechnungen mit einer nicht bekannten Zahl programmiert werden &lt;br /&gt;
* das gleiche Prinzip gilt auch für die Variable der &amp;quot;for&amp;quot;-Schleife (diese kann natürlich jeden beliebigen Namen annehmen)  &lt;br /&gt;
* im Beispiel_1 steht die Variable &amp;quot;element&amp;quot; für die Elemente der Liste namens &amp;quot;liste&amp;quot;&lt;br /&gt;
* die Variable &amp;quot;element&amp;quot; steht zwar für alle Elemente der Liste, also “Python”, 1, 4.5 und True, aber nicht gleichzeitig &lt;br /&gt;
* im ersten Durchlauf der Schleife steht sie für das erste Element der Liste (&amp;quot;Python&amp;quot;), nun werden die Befehle der Schleife ausgeführt:&lt;br /&gt;
* print(element) wird im ersten Durchlauf also zu print(&amp;quot;Python&amp;quot;) &lt;br /&gt;
* im zweiten Durchlauf steht die Variable für das zweite Element (1), print(element) wird im zweiten Durchlauf also zu print(1) usw.&lt;br /&gt;
* der  darauf folgende Ausdruck &amp;quot;in&amp;quot; dient dazu die Liste, das Dictionary, den String etc. anzugeben, mit dessen Elemente die Schleife durchgeführt werden soll&lt;br /&gt;
* dementsprechend folgt darauf der Namen einer Liste, eines Dictionaries oder eines Strings (ein String kann durch eine Variable gespeichert sein oder direkt angegeben werden), daraufhin folgt ein Doppelpunkt&lt;br /&gt;
* die zur Schleife gehörenden Operationen sind dadurch gekennzeichnet, dass der Code  eingerückt ist  &lt;br /&gt;
&lt;br /&gt;
==== Ablauf der Schleife ==== &lt;br /&gt;
* es wird überprüft ob es ein Element gibt, wessen Wert die Variabel annehmen kann &lt;br /&gt;
* trifft das zu laufen die Befehl der Schleife ab, wobei die Variable immer für den entsprechenden Wert des Elements steht &lt;br /&gt;
* gibt es keine Elemente mehr, dessen Wert noch nicht angenommen wurde, bricht die Schleife ab&lt;br /&gt;
* somit läuft eine for-Schleife immer für jedes Element einmal ab und läuft so häufig ab wie es Elemente gibt (ohne Modifikationen s. unten)&lt;br /&gt;
&lt;br /&gt;
[[File:flowchart ''for''-Schleife.png|200px|thumb|center|flowchart ''for''-Schleife]]&lt;br /&gt;
&lt;br /&gt;
=== Anwendungsmöglichkeiten ===&lt;br /&gt;
&lt;br /&gt;
==== Ausgabe von Dictionaries ====&lt;br /&gt;
* einen großen Vorteil bringt die ''for''-Schleife bei der Ausgabe von Dictionaries &lt;br /&gt;
* da der Zugriff auf die Elemente in einem Dictionary über keys und nicht Indexzahlen erfolgt, ist die Ausgabe von Dictionaries über eine while Schleife sehr kompliziert und kann nicht in der Form s. Ausgabe von Listen mit ''while''-Schleife erfolgen&lt;br /&gt;
* die Ausgabe über die ''for''-Schleife ist sehr einfach und erfolgt wie bei der Ausgabe der Liste &lt;br /&gt;
* zu beachten ist, dass hier die Variable nicht den Wert der Elemente, sondern der keys aufnimmt&lt;br /&gt;
* schreibt man slo wie in Beispiel_2 die Variable in den ''print''-Befehl der Schleife, werden nur die keys des Dictionaries ausgegeben &lt;br /&gt;
&lt;br /&gt;
 #Beispiel_2: &lt;br /&gt;
 buch_1={&amp;quot;Buch&amp;quot;:&amp;quot;Der Herr der Ringe&amp;quot;, &amp;quot;Autor&amp;quot;:&amp;quot;Tolkien&amp;quot;, &amp;quot;Preis&amp;quot;:45}&lt;br /&gt;
 &lt;br /&gt;
 for element in buch_1: &lt;br /&gt;
     print(element)&lt;br /&gt;
&lt;br /&gt;
output&lt;br /&gt;
 Buch&lt;br /&gt;
 Autor&lt;br /&gt;
 Preis&lt;br /&gt;
&lt;br /&gt;
* um den Wert des entsprechenden keys ausgeben zu lassen, ist es notwendig die Variable als Index der Liste anzugeben (s. Beispiel_3)&lt;br /&gt;
 #Beispiel_3:&lt;br /&gt;
 buch_1={&amp;quot;Buch&amp;quot;:&amp;quot;Der Herr der Ringe&amp;quot;, &amp;quot;Autor&amp;quot;:&amp;quot;Tolkien&amp;quot;, &amp;quot;Preis&amp;quot;:45} &lt;br /&gt;
 &lt;br /&gt;
 for element in buch_1:&lt;br /&gt;
    print(buch_1[element])&lt;br /&gt;
&lt;br /&gt;
output&lt;br /&gt;
 Der Herr der Ringe&lt;br /&gt;
 Tolkien&lt;br /&gt;
 45&lt;br /&gt;
&lt;br /&gt;
* das klingt erstmal kompliziert, ergibt aber Sinn &lt;br /&gt;
* die Ausgabe von Dictionaries erfolgt über die Angabe des keys in eckigen Klammern hinter dem Namen des Dictionaries, dabei steht der key stellvertretend für das jeweilige Element der Liste &lt;br /&gt;
* da die Variable der ''for''-Schleife den Wert der keys aufnimmt, wird folglich die Variable in die eckigen Klammern hinter dem Namen des Dictionaries geschrieben&lt;br /&gt;
&lt;br /&gt;
== ''range''-Befehl ==&lt;br /&gt;
 #Befehl&lt;br /&gt;
 for element in range(Anzahl):&lt;br /&gt;
     befehl()&lt;br /&gt;
 &lt;br /&gt;
 #Beipiel_1: &lt;br /&gt;
 for element in range(10):&lt;br /&gt;
     print(element)&lt;br /&gt;
&lt;br /&gt;
output: &lt;br /&gt;
 0&lt;br /&gt;
 1&lt;br /&gt;
 2&lt;br /&gt;
 3&lt;br /&gt;
 4&lt;br /&gt;
 5&lt;br /&gt;
 6&lt;br /&gt;
 7&lt;br /&gt;
 8&lt;br /&gt;
 9&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Funktion === &lt;br /&gt;
* für die Wiederholung eines Vorgangs mit einer festen Anzahl an Wiederholungen&lt;br /&gt;
* ist auch mit ''while''-Schleife lösbar, wird durch ''range''-Befehl deutlich einfacher&lt;br /&gt;
&lt;br /&gt;
=== Syntax === &lt;br /&gt;
* hinter dem Ausdruck &amp;quot;range&amp;quot; kommt eine Klammer mit der einer Zahl&lt;br /&gt;
&lt;br /&gt;
==== range(stop) ==== &lt;br /&gt;
* schreibt man in den ''range''-Befehl nur eine Zahl, wird diese als Stoppwert genommen; automatisch ist 0 der Startwert als 1 die Schrittgröße (step)&lt;br /&gt;
&lt;br /&gt;
==== range(start, stop) ==== &lt;br /&gt;
* schreibt man in den range Befehl zwei Zahlen durch ein Komma getrennt, wird die erste Zahl als Startwert und die zweite als Stoppwert definiert(Stoppwert wird nicht ausgegeben); nimmt 1 als step an  &lt;br /&gt;
&lt;br /&gt;
==== range(start, stop, step) ==== &lt;br /&gt;
* schreibt man in den ''Range''-Befehl drei Zahlen, die jeweils mit einem Komma getrennt sind, wird die dritte Zahl als step definiert&lt;br /&gt;
&lt;br /&gt;
== ''append''-Befehl ==&lt;br /&gt;
&lt;br /&gt;
 #Befehl&lt;br /&gt;
 liste=[element_1,element_2]&lt;br /&gt;
 liste.append(element_3)&lt;br /&gt;
 &lt;br /&gt;
 #Beispiel_1: &lt;br /&gt;
 liste=[1,2,&amp;quot;Apfel&amp;quot;]&lt;br /&gt;
 liste.append(&amp;quot;Baum&amp;quot;)&lt;br /&gt;
 &lt;br /&gt;
 print(liste) &lt;br /&gt;
&lt;br /&gt;
output &lt;br /&gt;
 [1, 2, 'Apfel', 'Baum']&lt;br /&gt;
&lt;br /&gt;
=== Funktion ===&lt;br /&gt;
* fügt einer Liste ein Element hinzu &lt;br /&gt;
* wie in Beispiel_1 gezeigt, wird der Liste das Levent &amp;quot;Baum&amp;quot; hinzugefügt &lt;br /&gt;
&lt;br /&gt;
=== Syntax === &lt;br /&gt;
* hinter dem Namen der Liste folgt ein Punkt und der Ausdruck &amp;quot;append&amp;quot;, dahinter folg in Klammern das Element, welches der Liste hinzugefügt werden soll &lt;br /&gt;
* es ist auch möglich einer Liste mehrere Elemente hinzuzufügen, der Name der hinzuzufügenden Liste wird in den ''append''-Befehl geschrieben &lt;br /&gt;
* die Elemente müssen allerdings auch als Liste strukturiert sein (s.Beispiel_2) &lt;br /&gt;
&lt;br /&gt;
 #Beispiel_2:&lt;br /&gt;
 liste_1=[1,2,3,&amp;quot;Baum&amp;quot;]&lt;br /&gt;
 liste_2=[4,5,6,&amp;quot;Strauch&amp;quot;]&lt;br /&gt;
 liste_1.append(liste_2)&lt;br /&gt;
 &lt;br /&gt;
 print(liste_1)&lt;br /&gt;
&lt;br /&gt;
output&lt;br /&gt;
 [1, 2, 3, 'Baum', [4, 5, 6, 'Strauch']]&lt;br /&gt;
&lt;br /&gt;
* nun wurden zwar die Elemente der liste_2 der liste_1 hinzugefügt, allerdings als Liste in der Liste &lt;br /&gt;
* der Grund dafür ist, das der ''append''-Befehl einer Liste immer nur ein Element hinzufügt &lt;br /&gt;
* so wird eine Liste, die hinzugefügt werden soll, erst als ein einzelnes Element abgespeichert und dann hinzugefügt&lt;br /&gt;
* das Problem lässt sich einfach lösen, indem die Elemente der liste_2 einzeln und nacheinander der liste_1 hinzufügt werden, dafür eignet sich besonders gut eine ''for''-Schleife (s.Beispiel_3) &lt;br /&gt;
&lt;br /&gt;
 #Beispeil_3: &lt;br /&gt;
 liste_1=[1,2,3,&amp;quot;Baum&amp;quot;]&lt;br /&gt;
 liste_2=[4,5,6,&amp;quot;Strauch&amp;quot;]&lt;br /&gt;
 for element in liste_2: &lt;br /&gt;
     liste_1.append(element)&lt;br /&gt;
    &lt;br /&gt;
 print(liste_1)&lt;br /&gt;
&lt;br /&gt;
output&lt;br /&gt;
 [1, 2, 3, 'Baum', 4, 5, 6, 'Strauch']&lt;br /&gt;
&lt;br /&gt;
== ''if''-Befehl ==&lt;br /&gt;
&lt;br /&gt;
 #Befehl&lt;br /&gt;
 if Bedingung: &lt;br /&gt;
    Befehl &lt;br /&gt;
 &lt;br /&gt;
 #Beispiel: &lt;br /&gt;
 if 4 &amp;lt; 10: &lt;br /&gt;
     print(&amp;quot;4 ist kleiner als 10&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
output &lt;br /&gt;
 4 ist kleiner als 10&lt;br /&gt;
&lt;br /&gt;
=== Funktion === &lt;br /&gt;
* der ''if''-Befehl macht es einem Computerprorgamm möglich auf verschiedene Ereignisse unterschiedlich zu reagieren &lt;br /&gt;
* diese Funktion hebt ein Programm von einer einfachen Rechenanleitung ab &lt;br /&gt;
&lt;br /&gt;
=== Syntax ===&lt;br /&gt;
* nach dem Ausdruck &amp;quot;if&amp;quot; folgt die Bedingung die überprüft werden soll, daraufhin ein Doppelpunkt &lt;br /&gt;
* die folgenden Kommandozeilen, die zum ''if''-Befehl gehören sind dadurch gekennzeichnet, dass sie versetzt sind &lt;br /&gt;
&lt;br /&gt;
=== Ablauf der Schleife ===&lt;br /&gt;
* nach dem Ausdruck &amp;quot;if&amp;quot; wird überprüft ob die darauf folgende Bedingung zutrifft&lt;br /&gt;
* trifft die Bedingung zu, werden die Befehle ausgeführt &lt;br /&gt;
* trifft die Bedingung nicht zu, werden die Befehle übersprungen &lt;br /&gt;
* so ist der Ablauf abhängig von bestimmten Bedingungen und ändert sich je nachdem welche Bedingungen erfüllt bzw. nicht erfüllt werden &lt;br /&gt;
&lt;br /&gt;
=== Bedingungen stellen ===&lt;br /&gt;
* die Gleichheit von zwei Werten lässt sich mit &amp;quot;==&amp;quot; überprüfen &lt;br /&gt;
* damit kann die Gleichheit von int, str, float und bool überprüft werden (s.Beipsiel_2)&lt;br /&gt;
&lt;br /&gt;
 #Befehl&lt;br /&gt;
 if Bedingung_1 == Bedingung_2: &lt;br /&gt;
    Befehl&lt;br /&gt;
 &lt;br /&gt;
 #Beispiel_2:&lt;br /&gt;
 a=1&lt;br /&gt;
 b=&amp;quot;hallo&amp;quot;&lt;br /&gt;
 c=True&lt;br /&gt;
 &lt;br /&gt;
 if a==1:&lt;br /&gt;
     print(a)&lt;br /&gt;
 if b==&amp;quot;hallo&amp;quot;:&lt;br /&gt;
     print(b)&lt;br /&gt;
 if c==True:&lt;br /&gt;
     print(c)&lt;br /&gt;
&lt;br /&gt;
output&lt;br /&gt;
 1&lt;br /&gt;
 hallo&lt;br /&gt;
 True&lt;br /&gt;
&lt;br /&gt;
* um zu überprüfen ob ein Wert größer oder kleiner als ein anderer ist, werden folgende Symbole verwendet:&lt;br /&gt;
&amp;lt;, &amp;lt;=  kleiner, kleiner gleich &lt;br /&gt;
&lt;br /&gt;
&amp;gt;, &amp;gt;=  größer, größer gleich &lt;br /&gt;
* die Ungleichheit lässt sich mit &amp;quot;!=&amp;quot; überprüfen &lt;br /&gt;
* mit diesen einfachen Bedingungen und dem ''if''-Befehl lässt sich ganz einfach ein kleines Ratespiel programmieren, welches abhängig von der Eingabe des Nutzers reagieren kann &lt;br /&gt;
&lt;br /&gt;
 #Beipiel_3: &lt;br /&gt;
 eingabe=eval(input(&amp;quot;Errate die richtige Zahl zwischen 1 und 10: &amp;quot;))&lt;br /&gt;
 zahl=8&lt;br /&gt;
 if eingabe==zahl: &lt;br /&gt;
     print(&amp;quot;du hast de richtige Zahl erraten&amp;quot;)&lt;br /&gt;
 if eingabe!=zahl: &lt;br /&gt;
    print (&amp;quot;leider falsch, versuche es nochmal&amp;quot;)&lt;br /&gt;
 if eingabe&amp;gt;zahl: &lt;br /&gt;
     print(&amp;quot;versuche eine kleinere Zahl&amp;quot;)&lt;br /&gt;
 if eingabe&amp;lt;zahl: &lt;br /&gt;
     print(&amp;quot;versuche eine größere Zahl&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Zusammengesetzte Bedingungen ====&lt;br /&gt;
* wenn mehrere Bedingungen gleichzeitig überprüft werden sollen, können diese durch drei Operatoren miteinander verknüpft werden &lt;br /&gt;
* das macht einen Code kürzer und übersichtlicher, weil nicht mehrer ''if''-Befehle ineinander geschrieben werden müssen&lt;br /&gt;
# &amp;quot;and&amp;quot; wird benutzt wenn zwei oder mehrere Bedingungen gleichzeitig zutreffen müssen &lt;br /&gt;
# &amp;quot;or&amp;quot; wird benutzt wenn eine von mehreren möglichen Bedingungen zutreffen muss&lt;br /&gt;
# &amp;quot;not&amp;quot; wird zur Verneinung genutzt (hier ist zu beachten, dass alles worauf sich das &amp;quot;not&amp;quot; beziehen soll in klammern gesetzt werden muss, sonst bezieht sich der Ausdruck nur auf das erste Element) &lt;br /&gt;
&lt;br /&gt;
 #Beispiel_4:&lt;br /&gt;
 zahl=6&lt;br /&gt;
 if zahl &amp;lt;10 and zahl &amp;gt;5: &lt;br /&gt;
     print(&amp;quot;richtig&amp;quot;)&lt;br /&gt;
 &lt;br /&gt;
 #anstatt&lt;br /&gt;
 if zahl &amp;lt;10:&lt;br /&gt;
     if zahl&amp;gt;5: &lt;br /&gt;
         print(&amp;quot;richtig&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
=== ''else''-Befehl  ===&lt;br /&gt;
&lt;br /&gt;
 #Befehl &lt;br /&gt;
 if Bedingung: &lt;br /&gt;
    Befehl_1&lt;br /&gt;
 else: &lt;br /&gt;
    Befehl_2&lt;br /&gt;
 &lt;br /&gt;
 #Beispiel_1: &lt;br /&gt;
 eingabe=eval(input(&amp;quot;Errate die richtige Zahl zwischen 1 und 10: &amp;quot;))&lt;br /&gt;
 zahl=8&lt;br /&gt;
 &lt;br /&gt;
 if eingabe==zahl: &lt;br /&gt;
     print(&amp;quot;du hast de richtige Zahl erraten&amp;quot;)&lt;br /&gt;
 else: &lt;br /&gt;
 print(&amp;quot;das ist nicht die gesuchte Zahl&amp;quot;) &lt;br /&gt;
&lt;br /&gt;
==== Funktion ====&lt;br /&gt;
* erfüllt die Funktion von ''if not'' &lt;br /&gt;
* erspart dabei Arbeit, weil im Gegensatz zu 'if not' Operator, die Bedingungen, nicht extra im Befehl formuliert werden müssen &lt;br /&gt;
* der 'else'-Befehl schließt automatisch alle Bedingungen ein, die nicht vom ''if''-Befehl abgedeckt werden &lt;br /&gt;
&lt;br /&gt;
==== Syntax ====&lt;br /&gt;
* nach dem Ausdruck &amp;quot;else&amp;quot; folgt ein Doppelpunkt und der Befehl &lt;br /&gt;
* wenn die Bedingung des ''if''-Befehls nicht zutreffen, wird automatisch der ''else''-Befehl ausgeführt &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== ''elif''-Befehl === &lt;br /&gt;
&lt;br /&gt;
 #Befehl&lt;br /&gt;
 if Bedingung_1: &lt;br /&gt;
    Befehl_1&lt;br /&gt;
 elif Bedingung_2: &lt;br /&gt;
    Befehl_2 &lt;br /&gt;
 elif Bedingung_3: &lt;br /&gt;
    Befehl_3 &lt;br /&gt;
&lt;br /&gt;
==== Funktion ==== &lt;br /&gt;
* steht für &amp;quot;else if&amp;quot; &lt;br /&gt;
* ersetzt die Ineinanderschachtelungen von mehreren ''if''-Befehlen &lt;br /&gt;
* ein ''elif''-Befehl wird nur durchgeführt, wenn die vorangegangene ''if''-Bedingung nicht erfüllt wird&lt;br /&gt;
&lt;br /&gt;
==== Syntax ==== &lt;br /&gt;
* nach dem Ausdruck &amp;quot;elif&amp;quot; folgt die Bedingung, ein Doppelpunkt und der Befehl&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Funktionen == &lt;br /&gt;
&lt;br /&gt;
 #Befehl: &lt;br /&gt;
 def funktionsname (evtl. Übergabewerte): &lt;br /&gt;
        Befehl &lt;br /&gt;
 &lt;br /&gt;
 #Besipiel_1: &lt;br /&gt;
 def begrüßung():&lt;br /&gt;
     print(&amp;quot;hallo&amp;quot;)&lt;br /&gt;
 begrüßung()&lt;br /&gt;
&lt;br /&gt;
output&lt;br /&gt;
 hallo&lt;br /&gt;
&lt;br /&gt;
=== Funktion === &lt;br /&gt;
* ein Befehl kann als Funktion abgespeichert werden &lt;br /&gt;
* wird der Befehl in einem Programm häufiger verwendet, muss dieser nicht immer wieder erneut geschrieben werden, stattdessen muss nur die Funktion abgerufen werden &lt;br /&gt;
* erspart Zeit und sorgt für Übersichtlichkeit des Programms &lt;br /&gt;
* noch übersichtlicher wird ein Code, wenn man die Funktionen nicht im Hauptprogramm sondern anderen Daten abspeichern &lt;br /&gt;
&lt;br /&gt;
=== Syntax === &lt;br /&gt;
* nach dem Begriff &amp;quot;def&amp;quot; folg der Name der Funktion (sinnvoll sind Namen, die die Aufgabe der Funktion beschreiben) &lt;br /&gt;
* danach folgt eine runde Klammer, in die Klammer können Werte aus dem Hauptprogramm übernommen werden, z.B. wenn die Funktion eine Rechnung darstellt und im Laufe des Programms mit verschiedenen Werten diese Rechnung durchgeführt werden soll (s. Funktionen mit Argumenten) &lt;br /&gt;
* werden keine Werte übernommen, bleibt die Klammer leer &lt;br /&gt;
&lt;br /&gt;
=== Funktionen mit Argumenten === &lt;br /&gt;
* wird benutzt, wenn ein bestimmter Wert aus dem Hauptprogramm übernommen werden soll und es sich nicht immer um den gleichen Wert handelt &lt;br /&gt;
* die im Beispiel_1 leer geblieben Klammern, haben die Aufgabe einen Wert aus dem Hauptprogramm an die Funktion zu überreichen &lt;br /&gt;
* dabei schreibt man den Wert, der überreicht werden soll in die Klammer hinter den Funktionsnamen im Hauptprogramm --&amp;gt; der Wert wird als Argument bezeichnet &lt;br /&gt;
* in die Klammer hinter dem Funktionsnamen in der Funktion, schreibt man einen Variablennamen, der automatisch für den Wert aus dem Hauptprogramm steht &lt;br /&gt;
* stellvertretend für die Werte aus dem Hauptprogramm, kann mit dem Variablennamen ein Befehl geschrieben werden (s.Beispiel_2) &lt;br /&gt;
&lt;br /&gt;
 #Beispiel_2: &lt;br /&gt;
 def begrüßung(name): &lt;br /&gt;
     print(name, &amp;quot;sagt hallo&amp;quot;)&lt;br /&gt;
 begrüßung(&amp;quot;jack&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
output&lt;br /&gt;
 jack sagt hallo&lt;br /&gt;
&lt;br /&gt;
* die Funktion hallo ist abhängig vom Argument name. Dieses Argument muss der Funktion beim Aufrufen gegeben werden, sonst funktioniert sie nicht&lt;br /&gt;
* der Funktion wird „Jack“ als Argument für Name übergeben&lt;br /&gt;
* es können nicht nur str, sondern auch int, float und alle weiteren Datentypen und Strukturen, einer Funktion übergeben werden &lt;br /&gt;
* es ist auch möglich Funktionen mit mehreren Argumenten zu benutzen, dafür werden die Argumente mit einem Komma voneinander getrennt (s.Beipiel_3) &lt;br /&gt;
&lt;br /&gt;
 #Beispeil_3: &lt;br /&gt;
 def begrüßung(name, zahl): &lt;br /&gt;
    print(&amp;quot;Hallo ich heiße&amp;quot;, name)&lt;br /&gt;
    print(&amp;quot;und bin&amp;quot;, zahl, &amp;quot;Jahre alt&amp;quot;)&lt;br /&gt;
 &lt;br /&gt;
 eingabe_1=input(&amp;quot;Gib hier dienen Namen ein: &amp;quot;)&lt;br /&gt;
 eingabe_2=eval(input(&amp;quot;Gib hier dein Alter ein: &amp;quot;))&lt;br /&gt;
 begrüßung(eingabe_1, eingabe_2)&lt;br /&gt;
&lt;br /&gt;
output&lt;br /&gt;
 Hallo ich heiße Jack  &lt;br /&gt;
 und bin 20 Jahre alt&lt;br /&gt;
&lt;br /&gt;
=== Funktionen mit Rückgabewerten: der ''return-Befehl === &lt;br /&gt;
&lt;br /&gt;
 #Befehl&lt;br /&gt;
 def funktionsname (evtl. Übergabewerte): &lt;br /&gt;
        Ergebnis=Befehl &lt;br /&gt;
        return(Ergebnis) &lt;br /&gt;
&lt;br /&gt;
 #Beispiel_2: &lt;br /&gt;
 def Rechnung(zahl): &lt;br /&gt;
     value=3*zahl**2&lt;br /&gt;
     return(value)&lt;br /&gt;
 Ergebnis=Rechnung(4)&lt;br /&gt;
 print(Ergebnis)&lt;br /&gt;
 &lt;br /&gt;
output&lt;br /&gt;
 48&lt;br /&gt;
&lt;br /&gt;
==== Funktion ====&lt;br /&gt;
* die Ergebnisse aus den Funktionen können dem Hauptprogramm übergeben werden um damit weiter arbeiten zu können &lt;br /&gt;
&lt;br /&gt;
==== Syntax ==== &lt;br /&gt;
* nach dem Schlüsselbegriff &amp;quot;return&amp;quot; folgt eine runde Klammer mit dem Wert der zurückgegeben werden soll &lt;br /&gt;
* dieser Wert selbst kann als Variable abgespeichert werden&lt;br /&gt;
&lt;br /&gt;
== Literatur ==&lt;br /&gt;
Michael Bonacina: Python 3 Programmieren für Einsteiger. 2. Auflage. BMU Verlag, Landshut 2019, ISBN: 978-3-96645-007-2&lt;/div&gt;</summary>
		<author><name>Ani</name></author>
	</entry>
	<entry>
		<id>http://wiki.bioinfo.nat.tu-bs.de/index.php?title=2.Datentypen_und_Datenstrukturen&amp;diff=968</id>
		<title>2.Datentypen und Datenstrukturen</title>
		<link rel="alternate" type="text/html" href="http://wiki.bioinfo.nat.tu-bs.de/index.php?title=2.Datentypen_und_Datenstrukturen&amp;diff=968"/>
		<updated>2023-05-28T12:57:28Z</updated>

		<summary type="html">&lt;p&gt;Ani: /* Tupel */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Datentypen ==&lt;br /&gt;
&lt;br /&gt;
In Python unterscheidet man vier verschiedene Datentypen (Klassen):&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Datentyp !! Abkürzung !! Bedeutung  !! Beispiel&lt;br /&gt;
|-&lt;br /&gt;
| String || str || Zeichenkette || &amp;quot;abc&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Integer || int || Ganze Zahl || 1&lt;br /&gt;
|-&lt;br /&gt;
| Float || float || Dezimalzahl || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| Boolean || bool || Wahrheitsgehalt || True, False&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Der Datentyp kann durch den ''type''-Befehl abgefragt werden.&lt;br /&gt;
&amp;lt;br&amp;gt; Beispiel:&lt;br /&gt;
‎&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
sequence = &amp;quot;ACGT&amp;quot;&lt;br /&gt;
result = type(sequence)&lt;br /&gt;
print(result)&lt;br /&gt;
# Output: &amp;lt;class 'str'&amp;gt;&lt;br /&gt;
‎&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Datenstrukturen ==&lt;br /&gt;
&lt;br /&gt;
Man unterscheidet zwischen drei verscheiden Datenstrukturen: &lt;br /&gt;
Listen, Dictionary und Tupel. Alle diese Datenstrukturen stellen Organisationsformen&lt;br /&gt;
von Daten in Python dar. Das heißt sie erleichtern vor allem die Handhabung größerer Datenmengen,&lt;br /&gt;
indem sie diese in geeigneter Form darstellen und speichern. &lt;br /&gt;
Sie unterscheiden sich jedoch in ihrem Aufbau und ihren spezifischen Funktionen.&lt;br /&gt;
&lt;br /&gt;
=== Listen ===&lt;br /&gt;
&lt;br /&gt;
‎&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
#Befehl:&lt;br /&gt;
liste = ['string', variable, 1, 2.0, True]&lt;br /&gt;
&lt;br /&gt;
# Beispiel_1:&lt;br /&gt;
&lt;br /&gt;
hund = ['Hund', 100, 399, 99, True]&lt;br /&gt;
katze = ['Katze', 60, 249, 99, True]&lt;br /&gt;
fisch = ['Fisch', 3, 1, 50, False]&lt;br /&gt;
 &lt;br /&gt;
print(hund)&lt;br /&gt;
print(katze)&lt;br /&gt;
print(fisch)&lt;br /&gt;
&lt;br /&gt;
# output&lt;br /&gt;
# ['Hund', 100, 399, 99, True]&lt;br /&gt;
# ['Katze', 60, 249, 99, True]&lt;br /&gt;
# ['Fisch', 3, 1, 50, False]&lt;br /&gt;
‎&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== Funktion ====&lt;br /&gt;
* haben dieselbe Funktion wie Listen im echten Leben &lt;br /&gt;
* mit Listen können mehrere Werte unter einem Namen abgespeichert werden&lt;br /&gt;
* macht das Programm übersichtlicher und erleichtert die Arbeit, weil nicht jeder einzelne Wert mit einem eigenen Variablennamen gespeichert werden muss&lt;br /&gt;
&lt;br /&gt;
==== Syntax ====&lt;br /&gt;
* die Liste erhält einen Namen, welcher wie eine Variable durch ein Gleichheitszeichen den Elementen der Liste zugeordnet wird&lt;br /&gt;
* die Elemente der Liste werden in eckige Klammern gesetzt und müssen mit einem Komma voneinander getrennt werden &lt;br /&gt;
* in einer Liste können verschiedene Datentypen auf einmal vorkommen&lt;br /&gt;
&lt;br /&gt;
===== Liste ausgeben lassen =====&lt;br /&gt;
* die ganze Liste lässt sich durch einen print-Befehl ausgeben (s. Beispiel_1)&lt;br /&gt;
&lt;br /&gt;
====== einzelne Elemente der Liste ausgeben lassen ======&lt;br /&gt;
* auch einzelne Elemente der Liste können ausgegeben werden (s. Beispiel_2)&lt;br /&gt;
* dabei wird die Position des auszugebenden Elements durch eine Indexzahl in eckigen Klammern nach dem Listennamen angegeben &lt;br /&gt;
* Achtung: grundsätzlich zählt man von 0 ausgehend, d.h. das erste Element in der Liste besitzt die Position 0, das zweite die Position 1 etc.&lt;br /&gt;
* es kann auch von hinten gezählt werden, dabei besitzt das erste Element (welches von vorne gezählt das letzte wäre) die Position -1 usw.&lt;br /&gt;
&lt;br /&gt;
====== Bereich der Liste ausgeben lassen  ======&lt;br /&gt;
* es lässt sich auch ein bestimmter Bereich der Liste ausgeben, wobei die Positionen der Elemente durch einen Doppelpunkt getrennt werden (s.Beispiel_2)&lt;br /&gt;
* die erste Indexzahl schließt die Position des Elements ein, welche ausgegeben wird  (engl. inclusive)&lt;br /&gt;
* die zweite gibt die Position des Elements an, welches nicht mehr im Bereich liegt und demnach nicht ausgegeben wird (engl. exclusive)&lt;br /&gt;
* um die Syntax des Befehls zu verstehen, ist es sinnvoll, die verschiedenen Möglichkeiten einmal selbst auszuprobieren und die Aufgaben 4 und 5 auf dem Aufgabenblatt zu bearbeiten &lt;br /&gt;
‎&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
 # Befehl:&lt;br /&gt;
 print(liste[Position])&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel_2:&lt;br /&gt;
 tier_1 = [&amp;quot;Hund&amp;quot;, 100, 399, 99, True]&lt;br /&gt;
 &lt;br /&gt;
 print(tier_1[0])&lt;br /&gt;
 print(tier_1[1])&lt;br /&gt;
 print(tier_1[-1])&lt;br /&gt;
 print(tier_1[0:4])&lt;br /&gt;
&lt;br /&gt;
# output&lt;br /&gt;
# Hund&lt;br /&gt;
# 100&lt;br /&gt;
# True&lt;br /&gt;
# ['Hund', 100, 399, 99]&lt;br /&gt;
‎‎&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Liste verändern =====&lt;br /&gt;
* wie Variablen sind auch Listen veränderbar, es können Elemente hinzugefügt, geändert und sogar gelöscht werden &lt;br /&gt;
&lt;br /&gt;
====== Element in Liste verändern ======&lt;br /&gt;
* Elemente der Liste lassen sich verändern, genau wie auch der Wert von Variablen neu definiert werden kann &lt;br /&gt;
* dafür schreibt man den Namen der Liste, dahinter eine Indexzahl in eckigen Klammern, wobei die Indexzahl die Position des zu verändernden Elements angibt&lt;br /&gt;
* die Zuweisung des neuen Werts erfolgt durch ein Gleichheitszeichen und den neuen Wert, den das Element der Liste annehmen soll (s. Beispiel_3)&lt;br /&gt;
‎&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
 # Befehl:&lt;br /&gt;
 liste[Position]= neuer_Wert&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel_3:&lt;br /&gt;
 tier_1 = ['Hund', 100, 399, 99, True]&lt;br /&gt;
 print(tier_1)&lt;br /&gt;
 tier_1[0] = &amp;quot;Tiger&amp;quot;&lt;br /&gt;
 tier_1[1] = 500&lt;br /&gt;
 print(tier_1)&lt;br /&gt;
&lt;br /&gt;
# output&lt;br /&gt;
# ['Hund', 100, 399, 99, True]&lt;br /&gt;
# ['Tiger', 500, 399, 99, True]&lt;br /&gt;
‎&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
====== Element zu einer Liste hinzufügen ======&lt;br /&gt;
* Listen können erweitert werden &lt;br /&gt;
* dazu schreibt man den Namen der Liste ein Gleichheitszeichen, erneut den Namen der Liste, ein „+“ und das Element das hinzugefügt werden soll in eckigen Klammern (s. Beispiel_4)&lt;br /&gt;
‎&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
 # Befehl:&lt;br /&gt;
 liste = liste + [neues_Element]&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel_4:&lt;br /&gt;
 tier_1 = ['Hund', 100, 399, 99, True]&lt;br /&gt;
 print(tier_1)&lt;br /&gt;
 tier_1 = tier_1 + [&amp;quot;Elefant&amp;quot;]&lt;br /&gt;
 print(tier_1)&lt;br /&gt;
&lt;br /&gt;
# output&lt;br /&gt;
# ['Hund', 100, 399, 99, True]&lt;br /&gt;
# ['Hund', 100, 399, 99, True, 'Elefant']&lt;br /&gt;
‎&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
====== Element aus Liste löschen ======&lt;br /&gt;
* Elemente lassen sich mit dem del-Befehl aus der Liste entfernen (s. Beispiel_5)&lt;br /&gt;
* nach „del“ folgt der Listenname und die Position des zu löschenden Elements in eckigen Klammern &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Befehl:&lt;br /&gt;
del liste[Position]&lt;br /&gt;
 &lt;br /&gt;
# Beispiel_5:&lt;br /&gt;
tier_1 = ['Hund', 100, 399, 99, True]&lt;br /&gt;
del tier_1[1]&lt;br /&gt;
print(tier_1)&lt;br /&gt;
&lt;br /&gt;
# Output: ['Hund', 399, 99, True]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Addition und Multiplikation von Listen =====&lt;br /&gt;
* Listen können miteinander addiert oder mit Zahlen multipliziert werden&lt;br /&gt;
(s. Beispiel_6)&lt;br /&gt;
* werden zwei Listen addiert, wird der Inhalt der Listen hintereinander ausgegeben &lt;br /&gt;
* wird eine Liste mit einer Zahl multipliziert, wird der Inhalt der Liste entsprechend oft hintereinander ausgegeben&lt;br /&gt;
&lt;br /&gt;
‎&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Beispiel_6:&lt;br /&gt;
tier_1 = ['Hund', 100, 399, 99, True]&lt;br /&gt;
tier_2 = ['Katze', 60, 249, 99, True]&lt;br /&gt;
tier_3 = ['Fisch', 3, 1, 50, False]&lt;br /&gt;
 &lt;br /&gt;
print(tier_1 + tier_2)&lt;br /&gt;
print(tier_1 * 2)&lt;br /&gt;
‎&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
output&lt;br /&gt;
‎&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
 ['Hund', 100, 399, 99, True, 'Katze', 60, 249, 99, True]&lt;br /&gt;
 ['Hund', 100, 399, 99, True, 'Hund', 100, 399, 99, True]&lt;br /&gt;
‎&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Listen in Listen ===== &lt;br /&gt;
* Elemente einer Liste können selbst eine Liste sein, so erhält man Listen in einer Liste (s. Beispiel_7, engl. nested lists) &lt;br /&gt;
* es entsteht eine zweidimensionale Liste mit einer übergeordneten Liste (im Beispiel: alle_tiere) und den untergeordneten Listen (tier_1, tier_2, tier_3) &lt;br /&gt;
* auf die Elemente der übergeordneten Liste lässt sich wie oben gezeigt zugreifen &lt;br /&gt;
* möchte man nur auf ein Element der untergeordneten Liste zugreifen, sind zwei Indexzahlen notwendig&lt;br /&gt;
* die erste Indexzahl gibt die Position des Elements in der übergeordneten Liste an&lt;br /&gt;
* die zweite Indexzahl gibt die Position des Elements in der untergeordneten Liste an (s. Beispiel_7)&lt;br /&gt;
‎&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Befehl&lt;br /&gt;
print(liste[Position][Position])&lt;br /&gt;
&lt;br /&gt;
# Beispiel_7:&lt;br /&gt;
&lt;br /&gt;
tier_1 = ['Hund', 100, 399, 99, True]&lt;br /&gt;
tier_2 = ['Katze', 60, 249, 99, True]&lt;br /&gt;
tier_3 = ['Fisch', 3, 1, 50, False]&lt;br /&gt;
&lt;br /&gt;
alle_tiere = [tier_1, tier_2, tier_3]&lt;br /&gt;
print(alle_tiere)&lt;br /&gt;
print(alle_tiere[0])&lt;br /&gt;
print(alle_tiere[0][0])&lt;br /&gt;
&lt;br /&gt;
# output&lt;br /&gt;
# [['Hund', 100, 399, 99, True], ['Katze', 60, 249, 99, True], ['Fisch', 3, 1, 50, False]]&lt;br /&gt;
# ['Hund', 100, 399, 99, True]&lt;br /&gt;
# Hund&lt;br /&gt;
‎&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Dictionaries ===&lt;br /&gt;
‎&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Befehl&lt;br /&gt;
dictionary = {'key_1': Element_1, 'key_2': Element_2}&lt;br /&gt;
&lt;br /&gt;
# Beispiel_1:&lt;br /&gt;
&lt;br /&gt;
buch_1 = {'Buch': 'Der Herr der Ringe', 'Autor': 'Tolkien', 'Preis': 45}&lt;br /&gt;
 &lt;br /&gt;
print(buch_1) &lt;br /&gt;
print(buch_1[&amp;quot;Buch&amp;quot;])&lt;br /&gt;
print(buch_1[&amp;quot;Autor&amp;quot;])&lt;br /&gt;
print(buch_1[&amp;quot;Preis&amp;quot;])&lt;br /&gt;
&lt;br /&gt;
# output&lt;br /&gt;
# {'Buch': 'Der Herr der Ringe', 'Autor': 'Tolkien', 'Preis': 45}&lt;br /&gt;
# Der Herr der Ringe&lt;br /&gt;
# Tolkien&lt;br /&gt;
# 45&lt;br /&gt;
‎&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== Funktion ====&lt;br /&gt;
Listen sind zwar geeignet, um größere Mengen an Daten in übersichtlicher &lt;br /&gt;
und gut manipulierbarer Weise abzuspeichern, haben aber einen entscheidenden Nachteil:&lt;br /&gt;
Um auf ein Element in einer Liste zugreifen zu können, ist es notwendig die Position &lt;br /&gt;
des Elements in der Liste zu kennen. Bei kürzeren Listen lässt sich vielleicht noch der Überblick behalten. Sobald Listen aber eine gewisse Zahl an Elementen überschreiten, &lt;br /&gt;
in einem Programm mehrere Listen verwendet werden oder sogar Listen in Listen gespeichert sind, &lt;br /&gt;
ist jeglicher Versuch sich die Positionen der Elemente zu merken vergebens. &lt;br /&gt;
Hier bringen die sogenannten Dictionaries den entscheidenden Vorteil. &lt;br /&gt;
Dictionaries funktionieren wie Listen, wenn es darum geht, Informationen abzuspeichern. &lt;br /&gt;
Doch der Zugriff auf die Elemente erfolgt nicht durch eine Indexnummer, sondern über ein sogenannten key oder Schlüsselbegriff. &lt;br /&gt;
Um auf die Elemente über einen key zugreifen zu können, wird den Elementen im Dictionary jeweils ein Schlüsselbegriff zugeordnet. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Syntax ====&lt;br /&gt;
* nach dem Namen des Dictionary und dem Gleichheitszeichen folgt eine geschweifte Klammer {}&lt;br /&gt;
* danach folgt der Key, dabei kann es sich um ein integer, float, bool oder string handeln &lt;br /&gt;
* darauf folgt das Listenelement, getrennt durch einen Doppelpunkt vom Key und durch ein Komma vom nächsten Key-Element Paar &lt;br /&gt;
&lt;br /&gt;
===== Dictionary ausgeben lassen =====&lt;br /&gt;
* das ganze Dictionary lässt sich durch einen print-Befehl ausgeben (s. Beispiel_1)&lt;br /&gt;
&lt;br /&gt;
====== einzelne Elemente des Dictionaries ausgeben ======&lt;br /&gt;
* der Zugriff erfolgt durch den key &lt;br /&gt;
* die Syntax ist analog zum Abruf der Elemente einer Liste, nur das statt der Indexzahl der key in die eckige Klammer geschrieben wird (s.Beispiel_1)&lt;br /&gt;
&lt;br /&gt;
===== Dictionary verändern =====&lt;br /&gt;
* wie Listen sind auch Dictionaries veränderbar, es können Elemente hinzugefügt, geändert und sogar gelöscht werden&lt;br /&gt;
&lt;br /&gt;
====== Element in Dictionary verändern ======&lt;br /&gt;
* die Syntax ist analog zur Veränderung eines Elements in Listen, nur hier wird der key, statt der Position in die eckigen Klammern hinter dem Namen des Dictionaries gesetzt (s. Beispiel_2)&lt;br /&gt;
‎&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Befehl: &lt;br /&gt;
dictionary[(bestehender)key] = &amp;quot;neuer Wert&amp;quot;&lt;br /&gt;
# Beispiel_2:&lt;br /&gt;
buch_1 = {'Buch': 'Der Herr der Ringe', 'Autor': 'Tolkien', 'Preis': 45}&lt;br /&gt;
buch_1[&amp;quot;Preis&amp;quot;] = 23&lt;br /&gt;
print(buch_1)&lt;br /&gt;
&lt;br /&gt;
# output&lt;br /&gt;
# {'Buch': 'Der Herr der Ringe', 'Autor': 'Tolkien', 'Preis': 23}&lt;br /&gt;
‎&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
====== Element zum Dictionary hinzufügen ======&lt;br /&gt;
* um Elemente zum Dictionary hinzuzufügen, ist es notwendig auch gleichzeitig einen key für das Element zu definieren &lt;br /&gt;
* nach dem Listennamen und dem Key in eckigen Klammern folgt ein Gleichheitszeichen und der Wert des neuen Elements (s. Beispiel_3)&lt;br /&gt;
‎&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Befehl:&lt;br /&gt;
dictionary[&amp;quot;(neuer) key&amp;quot;] = &amp;quot;neues Element&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
# Beispiel_3:&lt;br /&gt;
buch_1 = {'Buch': 'Der Herr der Ringe', 'Autor': 'Tolkien', 'Preis': 45}&lt;br /&gt;
 &lt;br /&gt;
buch_1[&amp;quot;Erscheinungsjahr&amp;quot;] = 1954&lt;br /&gt;
buch_1[&amp;quot;Bewertung&amp;quot;] = &amp;quot;sehr gut&amp;quot;&lt;br /&gt;
print(buch_1)&lt;br /&gt;
&lt;br /&gt;
# output &lt;br /&gt;
# {'Buch': 'Der Herr der Ringe', 'Autor': 'Tolkien', 'Preis': 45, 'Erscheinungsjahr': 1954, 'Bewertung':   'sehr gut'}&lt;br /&gt;
‎&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
====== Element aus Dictionary löschen ======&lt;br /&gt;
* analoger Aufbau zum del-Befehl bei Listen &lt;br /&gt;
* hier wird wieder anstatt der Indexzahl der key in die eckigen Klammern gesetzt (s. Besipiel_4)&lt;br /&gt;
‎&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Befehl:&lt;br /&gt;
del dictionary[key] &lt;br /&gt;
 &lt;br /&gt;
# Beispiel_4:&lt;br /&gt;
buch_1 = {'Buch': 'Der Herr der Ringe', 'Autor': 'Tolkien', 'Preis': 45}&lt;br /&gt;
 &lt;br /&gt;
del buch_1[&amp;quot;Preis&amp;quot;]&lt;br /&gt;
print(buch_1)&lt;br /&gt;
&lt;br /&gt;
# output &lt;br /&gt;
# {'Buch': 'Der Herr der Ringe', 'Autor': 'Tolkien'}&lt;br /&gt;
‎&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Tupel ===&lt;br /&gt;
‎&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Befehl:&lt;br /&gt;
tupel = (element_1, element_2)&lt;br /&gt;
&lt;br /&gt;
# Beispiel_1:&lt;br /&gt;
tier_1 = (&amp;quot;Hund&amp;quot;, 100, 399, 99, True)&lt;br /&gt;
print(tier_1)&lt;br /&gt;
print(tier_1[0])&lt;br /&gt;
&lt;br /&gt;
# output&lt;br /&gt;
# ('Hund', 100, 399, 99, True)&lt;br /&gt;
# Hund&lt;br /&gt;
‎&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== Funktion ==== &lt;br /&gt;
* Tupel sind eine unveränderliche Datenstruktur d.h. die Elemente eines Tupels sind im Gegensatz zu Listen und Dictionaries nicht veränderbar oder löschbar &lt;br /&gt;
* sie können jedoch ergänzt werden &lt;br /&gt;
* Tupel werden genutzt, um Daten zu speichern, die nicht geändert werden sollen (z. B. Konstanten)&lt;br /&gt;
* man könnte diese natürlich auch in Dictionaries und Listen speichern, so geht man aber sicher, dass die Daten nicht ausversehen geändert werden  &lt;br /&gt;
&lt;br /&gt;
==== Syntax ==== &lt;br /&gt;
* die Erstellung von Tupeln ist analog zur Erstellung von Listen, nur werden hier runde Klammern benötigt (s. Beispiel_1) &lt;br /&gt;
* der Zugriff auf die Elemente des Tupels ist analog zur Syntax bei Listen (s. Beispiel_1)&lt;br /&gt;
&lt;br /&gt;
=====Tupel ausgeben lassen =====&lt;br /&gt;
* sowohl das Ausgeben des ganzen Tupels, als auch der einzelnen Elemente, folgt der selben Syntax der Listen   &lt;br /&gt;
&lt;br /&gt;
===== Erweiterung eines Tupels =====&lt;br /&gt;
* auch hier ist die Syntax analog zur Erweiterung von Listen&lt;br /&gt;
* das neue Element muss selbst ein Tupel sein, um es zum Tupel hinzufügen zu können &lt;br /&gt;
* dazu muss das neue Element erst als Tupel abgespeichert werden &lt;br /&gt;
* um ein neues Element als Tupel zu speichern, wird ein Tupel mit nur einem Element erstellt &lt;br /&gt;
* nun kann dieser Tupel dem alten hinzugefügt werden (s. Beispiel_2)&lt;br /&gt;
‎&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Beispiel_2:&lt;br /&gt;
tier_1 = (&amp;quot;Hund&amp;quot;, 100, 399, 99, True)&lt;br /&gt;
farbe = (&amp;quot;braun&amp;quot;,)&lt;br /&gt;
tier_1 = tier_1 + farbe&lt;br /&gt;
print(tier_1)&lt;br /&gt;
&lt;br /&gt;
# output&lt;br /&gt;
# ('Hund', 100, 399, 99, True, 'braun')&lt;br /&gt;
‎&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Literatur ==&lt;br /&gt;
Michael Bonacina: Python 3 Programmieren für Einsteiger. 2. Auflage. BMU Verlag, Landshut 2019, ISBN: 978-3-96645-007-2&lt;/div&gt;</summary>
		<author><name>Ani</name></author>
	</entry>
	<entry>
		<id>http://wiki.bioinfo.nat.tu-bs.de/index.php?title=2.Datentypen_und_Datenstrukturen&amp;diff=967</id>
		<title>2.Datentypen und Datenstrukturen</title>
		<link rel="alternate" type="text/html" href="http://wiki.bioinfo.nat.tu-bs.de/index.php?title=2.Datentypen_und_Datenstrukturen&amp;diff=967"/>
		<updated>2023-05-28T11:57:48Z</updated>

		<summary type="html">&lt;p&gt;Ani: /* Dictionaries */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Datentypen ==&lt;br /&gt;
&lt;br /&gt;
In Python unterscheidet man vier verschiedene Datentypen (Klassen):&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Datentyp !! Abkürzung !! Bedeutung  !! Beispiel&lt;br /&gt;
|-&lt;br /&gt;
| String || str || Zeichenkette || &amp;quot;abc&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Integer || int || Ganze Zahl || 1&lt;br /&gt;
|-&lt;br /&gt;
| Float || float || Dezimalzahl || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| Boolean || bool || Wahrheitsgehalt || True, False&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Der Datentyp kann durch den ''type''-Befehl abgefragt werden.&lt;br /&gt;
&amp;lt;br&amp;gt; Beispiel:&lt;br /&gt;
‎&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
sequence = &amp;quot;ACGT&amp;quot;&lt;br /&gt;
result = type(sequence)&lt;br /&gt;
print(result)&lt;br /&gt;
# Output: &amp;lt;class 'str'&amp;gt;&lt;br /&gt;
‎&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Datenstrukturen ==&lt;br /&gt;
&lt;br /&gt;
Man unterscheidet zwischen drei verscheiden Datenstrukturen: &lt;br /&gt;
Listen, Dictionary und Tupel. Alle diese Datenstrukturen stellen Organisationsformen&lt;br /&gt;
von Daten in Python dar. Das heißt sie erleichtern vor allem die Handhabung größerer Datenmengen,&lt;br /&gt;
indem sie diese in geeigneter Form darstellen und speichern. &lt;br /&gt;
Sie unterscheiden sich jedoch in ihrem Aufbau und ihren spezifischen Funktionen.&lt;br /&gt;
&lt;br /&gt;
=== Listen ===&lt;br /&gt;
&lt;br /&gt;
‎&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
#Befehl:&lt;br /&gt;
liste = ['string', variable, 1, 2.0, True]&lt;br /&gt;
&lt;br /&gt;
# Beispiel_1:&lt;br /&gt;
&lt;br /&gt;
hund = ['Hund', 100, 399, 99, True]&lt;br /&gt;
katze = ['Katze', 60, 249, 99, True]&lt;br /&gt;
fisch = ['Fisch', 3, 1, 50, False]&lt;br /&gt;
 &lt;br /&gt;
print(hund)&lt;br /&gt;
print(katze)&lt;br /&gt;
print(fisch)&lt;br /&gt;
&lt;br /&gt;
# output&lt;br /&gt;
# ['Hund', 100, 399, 99, True]&lt;br /&gt;
# ['Katze', 60, 249, 99, True]&lt;br /&gt;
# ['Fisch', 3, 1, 50, False]&lt;br /&gt;
‎&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== Funktion ====&lt;br /&gt;
* haben dieselbe Funktion wie Listen im echten Leben &lt;br /&gt;
* mit Listen können mehrere Werte unter einem Namen abgespeichert werden&lt;br /&gt;
* macht das Programm übersichtlicher und erleichtert die Arbeit, weil nicht jeder einzelne Wert mit einem eigenen Variablennamen gespeichert werden muss&lt;br /&gt;
&lt;br /&gt;
==== Syntax ====&lt;br /&gt;
* die Liste erhält einen Namen, welcher wie eine Variable durch ein Gleichheitszeichen den Elementen der Liste zugeordnet wird&lt;br /&gt;
* die Elemente der Liste werden in eckige Klammern gesetzt und müssen mit einem Komma voneinander getrennt werden &lt;br /&gt;
* in einer Liste können verschiedene Datentypen auf einmal vorkommen&lt;br /&gt;
&lt;br /&gt;
===== Liste ausgeben lassen =====&lt;br /&gt;
* die ganze Liste lässt sich durch einen print-Befehl ausgeben (s. Beispiel_1)&lt;br /&gt;
&lt;br /&gt;
====== einzelne Elemente der Liste ausgeben lassen ======&lt;br /&gt;
* auch einzelne Elemente der Liste können ausgegeben werden (s. Beispiel_2)&lt;br /&gt;
* dabei wird die Position des auszugebenden Elements durch eine Indexzahl in eckigen Klammern nach dem Listennamen angegeben &lt;br /&gt;
* Achtung: grundsätzlich zählt man von 0 ausgehend, d.h. das erste Element in der Liste besitzt die Position 0, das zweite die Position 1 etc.&lt;br /&gt;
* es kann auch von hinten gezählt werden, dabei besitzt das erste Element (welches von vorne gezählt das letzte wäre) die Position -1 usw.&lt;br /&gt;
&lt;br /&gt;
====== Bereich der Liste ausgeben lassen  ======&lt;br /&gt;
* es lässt sich auch ein bestimmter Bereich der Liste ausgeben, wobei die Positionen der Elemente durch einen Doppelpunkt getrennt werden (s.Beispiel_2)&lt;br /&gt;
* die erste Indexzahl schließt die Position des Elements ein, welche ausgegeben wird  (engl. inclusive)&lt;br /&gt;
* die zweite gibt die Position des Elements an, welches nicht mehr im Bereich liegt und demnach nicht ausgegeben wird (engl. exclusive)&lt;br /&gt;
* um die Syntax des Befehls zu verstehen, ist es sinnvoll, die verschiedenen Möglichkeiten einmal selbst auszuprobieren und die Aufgaben 4 und 5 auf dem Aufgabenblatt zu bearbeiten &lt;br /&gt;
‎&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
 # Befehl:&lt;br /&gt;
 print(liste[Position])&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel_2:&lt;br /&gt;
 tier_1 = [&amp;quot;Hund&amp;quot;, 100, 399, 99, True]&lt;br /&gt;
 &lt;br /&gt;
 print(tier_1[0])&lt;br /&gt;
 print(tier_1[1])&lt;br /&gt;
 print(tier_1[-1])&lt;br /&gt;
 print(tier_1[0:4])&lt;br /&gt;
&lt;br /&gt;
# output&lt;br /&gt;
# Hund&lt;br /&gt;
# 100&lt;br /&gt;
# True&lt;br /&gt;
# ['Hund', 100, 399, 99]&lt;br /&gt;
‎‎&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Liste verändern =====&lt;br /&gt;
* wie Variablen sind auch Listen veränderbar, es können Elemente hinzugefügt, geändert und sogar gelöscht werden &lt;br /&gt;
&lt;br /&gt;
====== Element in Liste verändern ======&lt;br /&gt;
* Elemente der Liste lassen sich verändern, genau wie auch der Wert von Variablen neu definiert werden kann &lt;br /&gt;
* dafür schreibt man den Namen der Liste, dahinter eine Indexzahl in eckigen Klammern, wobei die Indexzahl die Position des zu verändernden Elements angibt&lt;br /&gt;
* die Zuweisung des neuen Werts erfolgt durch ein Gleichheitszeichen und den neuen Wert, den das Element der Liste annehmen soll (s. Beispiel_3)&lt;br /&gt;
‎&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
 # Befehl:&lt;br /&gt;
 liste[Position]= neuer_Wert&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel_3:&lt;br /&gt;
 tier_1 = ['Hund', 100, 399, 99, True]&lt;br /&gt;
 print(tier_1)&lt;br /&gt;
 tier_1[0] = &amp;quot;Tiger&amp;quot;&lt;br /&gt;
 tier_1[1] = 500&lt;br /&gt;
 print(tier_1)&lt;br /&gt;
&lt;br /&gt;
# output&lt;br /&gt;
# ['Hund', 100, 399, 99, True]&lt;br /&gt;
# ['Tiger', 500, 399, 99, True]&lt;br /&gt;
‎&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
====== Element zu einer Liste hinzufügen ======&lt;br /&gt;
* Listen können erweitert werden &lt;br /&gt;
* dazu schreibt man den Namen der Liste ein Gleichheitszeichen, erneut den Namen der Liste, ein „+“ und das Element das hinzugefügt werden soll in eckigen Klammern (s. Beispiel_4)&lt;br /&gt;
‎&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
 # Befehl:&lt;br /&gt;
 liste = liste + [neues_Element]&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel_4:&lt;br /&gt;
 tier_1 = ['Hund', 100, 399, 99, True]&lt;br /&gt;
 print(tier_1)&lt;br /&gt;
 tier_1 = tier_1 + [&amp;quot;Elefant&amp;quot;]&lt;br /&gt;
 print(tier_1)&lt;br /&gt;
&lt;br /&gt;
# output&lt;br /&gt;
# ['Hund', 100, 399, 99, True]&lt;br /&gt;
# ['Hund', 100, 399, 99, True, 'Elefant']&lt;br /&gt;
‎&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
====== Element aus Liste löschen ======&lt;br /&gt;
* Elemente lassen sich mit dem del-Befehl aus der Liste entfernen (s. Beispiel_5)&lt;br /&gt;
* nach „del“ folgt der Listenname und die Position des zu löschenden Elements in eckigen Klammern &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Befehl:&lt;br /&gt;
del liste[Position]&lt;br /&gt;
 &lt;br /&gt;
# Beispiel_5:&lt;br /&gt;
tier_1 = ['Hund', 100, 399, 99, True]&lt;br /&gt;
del tier_1[1]&lt;br /&gt;
print(tier_1)&lt;br /&gt;
&lt;br /&gt;
# Output: ['Hund', 399, 99, True]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Addition und Multiplikation von Listen =====&lt;br /&gt;
* Listen können miteinander addiert oder mit Zahlen multipliziert werden&lt;br /&gt;
(s. Beispiel_6)&lt;br /&gt;
* werden zwei Listen addiert, wird der Inhalt der Listen hintereinander ausgegeben &lt;br /&gt;
* wird eine Liste mit einer Zahl multipliziert, wird der Inhalt der Liste entsprechend oft hintereinander ausgegeben&lt;br /&gt;
&lt;br /&gt;
‎&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Beispiel_6:&lt;br /&gt;
tier_1 = ['Hund', 100, 399, 99, True]&lt;br /&gt;
tier_2 = ['Katze', 60, 249, 99, True]&lt;br /&gt;
tier_3 = ['Fisch', 3, 1, 50, False]&lt;br /&gt;
 &lt;br /&gt;
print(tier_1 + tier_2)&lt;br /&gt;
print(tier_1 * 2)&lt;br /&gt;
‎&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
output&lt;br /&gt;
‎&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
 ['Hund', 100, 399, 99, True, 'Katze', 60, 249, 99, True]&lt;br /&gt;
 ['Hund', 100, 399, 99, True, 'Hund', 100, 399, 99, True]&lt;br /&gt;
‎&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Listen in Listen ===== &lt;br /&gt;
* Elemente einer Liste können selbst eine Liste sein, so erhält man Listen in einer Liste (s. Beispiel_7, engl. nested lists) &lt;br /&gt;
* es entsteht eine zweidimensionale Liste mit einer übergeordneten Liste (im Beispiel: alle_tiere) und den untergeordneten Listen (tier_1, tier_2, tier_3) &lt;br /&gt;
* auf die Elemente der übergeordneten Liste lässt sich wie oben gezeigt zugreifen &lt;br /&gt;
* möchte man nur auf ein Element der untergeordneten Liste zugreifen, sind zwei Indexzahlen notwendig&lt;br /&gt;
* die erste Indexzahl gibt die Position des Elements in der übergeordneten Liste an&lt;br /&gt;
* die zweite Indexzahl gibt die Position des Elements in der untergeordneten Liste an (s. Beispiel_7)&lt;br /&gt;
‎&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Befehl&lt;br /&gt;
print(liste[Position][Position])&lt;br /&gt;
&lt;br /&gt;
# Beispiel_7:&lt;br /&gt;
&lt;br /&gt;
tier_1 = ['Hund', 100, 399, 99, True]&lt;br /&gt;
tier_2 = ['Katze', 60, 249, 99, True]&lt;br /&gt;
tier_3 = ['Fisch', 3, 1, 50, False]&lt;br /&gt;
&lt;br /&gt;
alle_tiere = [tier_1, tier_2, tier_3]&lt;br /&gt;
print(alle_tiere)&lt;br /&gt;
print(alle_tiere[0])&lt;br /&gt;
print(alle_tiere[0][0])&lt;br /&gt;
&lt;br /&gt;
# output&lt;br /&gt;
# [['Hund', 100, 399, 99, True], ['Katze', 60, 249, 99, True], ['Fisch', 3, 1, 50, False]]&lt;br /&gt;
# ['Hund', 100, 399, 99, True]&lt;br /&gt;
# Hund&lt;br /&gt;
‎&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Dictionaries ===&lt;br /&gt;
‎&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Befehl&lt;br /&gt;
dictionary = {'key_1': Element_1, 'key_2': Element_2}&lt;br /&gt;
&lt;br /&gt;
# Beispiel_1:&lt;br /&gt;
&lt;br /&gt;
buch_1 = {'Buch': 'Der Herr der Ringe', 'Autor': 'Tolkien', 'Preis': 45}&lt;br /&gt;
 &lt;br /&gt;
print(buch_1) &lt;br /&gt;
print(buch_1[&amp;quot;Buch&amp;quot;])&lt;br /&gt;
print(buch_1[&amp;quot;Autor&amp;quot;])&lt;br /&gt;
print(buch_1[&amp;quot;Preis&amp;quot;])&lt;br /&gt;
&lt;br /&gt;
# output&lt;br /&gt;
# {'Buch': 'Der Herr der Ringe', 'Autor': 'Tolkien', 'Preis': 45}&lt;br /&gt;
# Der Herr der Ringe&lt;br /&gt;
# Tolkien&lt;br /&gt;
# 45&lt;br /&gt;
‎&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== Funktion ====&lt;br /&gt;
Listen sind zwar geeignet, um größere Mengen an Daten in übersichtlicher &lt;br /&gt;
und gut manipulierbarer Weise abzuspeichern, haben aber einen entscheidenden Nachteil:&lt;br /&gt;
Um auf ein Element in einer Liste zugreifen zu können, ist es notwendig die Position &lt;br /&gt;
des Elements in der Liste zu kennen. Bei kürzeren Listen lässt sich vielleicht noch der Überblick behalten. Sobald Listen aber eine gewisse Zahl an Elementen überschreiten, &lt;br /&gt;
in einem Programm mehrere Listen verwendet werden oder sogar Listen in Listen gespeichert sind, &lt;br /&gt;
ist jeglicher Versuch sich die Positionen der Elemente zu merken vergebens. &lt;br /&gt;
Hier bringen die sogenannten Dictionaries den entscheidenden Vorteil. &lt;br /&gt;
Dictionaries funktionieren wie Listen, wenn es darum geht, Informationen abzuspeichern. &lt;br /&gt;
Doch der Zugriff auf die Elemente erfolgt nicht durch eine Indexnummer, sondern über ein sogenannten key oder Schlüsselbegriff. &lt;br /&gt;
Um auf die Elemente über einen key zugreifen zu können, wird den Elementen im Dictionary jeweils ein Schlüsselbegriff zugeordnet. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Syntax ====&lt;br /&gt;
* nach dem Namen des Dictionary und dem Gleichheitszeichen folgt eine geschweifte Klammer {}&lt;br /&gt;
* danach folgt der Key, dabei kann es sich um ein integer, float, bool oder string handeln &lt;br /&gt;
* darauf folgt das Listenelement, getrennt durch einen Doppelpunkt vom Key und durch ein Komma vom nächsten Key-Element Paar &lt;br /&gt;
&lt;br /&gt;
===== Dictionary ausgeben lassen =====&lt;br /&gt;
* das ganze Dictionary lässt sich durch einen print-Befehl ausgeben (s. Beispiel_1)&lt;br /&gt;
&lt;br /&gt;
====== einzelne Elemente des Dictionaries ausgeben ======&lt;br /&gt;
* der Zugriff erfolgt durch den key &lt;br /&gt;
* die Syntax ist analog zum Abruf der Elemente einer Liste, nur das statt der Indexzahl der key in die eckige Klammer geschrieben wird (s.Beispiel_1)&lt;br /&gt;
&lt;br /&gt;
===== Dictionary verändern =====&lt;br /&gt;
* wie Listen sind auch Dictionaries veränderbar, es können Elemente hinzugefügt, geändert und sogar gelöscht werden&lt;br /&gt;
&lt;br /&gt;
====== Element in Dictionary verändern ======&lt;br /&gt;
* die Syntax ist analog zur Veränderung eines Elements in Listen, nur hier wird der key, statt der Position in die eckigen Klammern hinter dem Namen des Dictionaries gesetzt (s. Beispiel_2)&lt;br /&gt;
‎&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Befehl: &lt;br /&gt;
dictionary[(bestehender)key] = &amp;quot;neuer Wert&amp;quot;&lt;br /&gt;
# Beispiel_2:&lt;br /&gt;
buch_1 = {'Buch': 'Der Herr der Ringe', 'Autor': 'Tolkien', 'Preis': 45}&lt;br /&gt;
buch_1[&amp;quot;Preis&amp;quot;] = 23&lt;br /&gt;
print(buch_1)&lt;br /&gt;
&lt;br /&gt;
# output&lt;br /&gt;
# {'Buch': 'Der Herr der Ringe', 'Autor': 'Tolkien', 'Preis': 23}&lt;br /&gt;
‎&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
====== Element zum Dictionary hinzufügen ======&lt;br /&gt;
* um Elemente zum Dictionary hinzuzufügen, ist es notwendig auch gleichzeitig einen key für das Element zu definieren &lt;br /&gt;
* nach dem Listennamen und dem Key in eckigen Klammern folgt ein Gleichheitszeichen und der Wert des neuen Elements (s. Beispiel_3)&lt;br /&gt;
‎&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Befehl:&lt;br /&gt;
dictionary[&amp;quot;(neuer) key&amp;quot;] = &amp;quot;neues Element&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
# Beispiel_3:&lt;br /&gt;
buch_1 = {'Buch': 'Der Herr der Ringe', 'Autor': 'Tolkien', 'Preis': 45}&lt;br /&gt;
 &lt;br /&gt;
buch_1[&amp;quot;Erscheinungsjahr&amp;quot;] = 1954&lt;br /&gt;
buch_1[&amp;quot;Bewertung&amp;quot;] = &amp;quot;sehr gut&amp;quot;&lt;br /&gt;
print(buch_1)&lt;br /&gt;
&lt;br /&gt;
# output &lt;br /&gt;
# {'Buch': 'Der Herr der Ringe', 'Autor': 'Tolkien', 'Preis': 45, 'Erscheinungsjahr': 1954, 'Bewertung':   'sehr gut'}&lt;br /&gt;
‎&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
====== Element aus Dictionary löschen ======&lt;br /&gt;
* analoger Aufbau zum del-Befehl bei Listen &lt;br /&gt;
* hier wird wieder anstatt der Indexzahl der key in die eckigen Klammern gesetzt (s. Besipiel_4)&lt;br /&gt;
‎&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Befehl:&lt;br /&gt;
del dictionary[key] &lt;br /&gt;
 &lt;br /&gt;
# Beispiel_4:&lt;br /&gt;
buch_1 = {'Buch': 'Der Herr der Ringe', 'Autor': 'Tolkien', 'Preis': 45}&lt;br /&gt;
 &lt;br /&gt;
del buch_1[&amp;quot;Preis&amp;quot;]&lt;br /&gt;
print(buch_1)&lt;br /&gt;
&lt;br /&gt;
# output &lt;br /&gt;
# {'Buch': 'Der Herr der Ringe', 'Autor': 'Tolkien'}&lt;br /&gt;
‎&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Tupel ===&lt;br /&gt;
 #Befehl:&lt;br /&gt;
 tupel= element_1, element_2 &amp;lt;br&amp;gt;&lt;br /&gt;
 #Beispiel_1:&lt;br /&gt;
 tier_1=&amp;quot;Hund&amp;quot;,100,399,99,True&amp;lt;br&amp;gt;&lt;br /&gt;
 print(tier_1)&lt;br /&gt;
 print(tier_1[0])&lt;br /&gt;
&lt;br /&gt;
output&lt;br /&gt;
 ('Hund', 100, 399, 99, True)&lt;br /&gt;
 Hund&lt;br /&gt;
&lt;br /&gt;
==== Funktion ==== &lt;br /&gt;
* Tupelo sind unveränderliche Daten, d.h. die Elemente eines Tupels sind im Gegensatz zu Listen und Dictionaries nicht veränderbar oder löschbar &lt;br /&gt;
* sie können jedoch ergänzt werden &lt;br /&gt;
* Tupel werden genutzt, um Daten zu speichern, die nicht geändert werden sollen &lt;br /&gt;
* (man könnte diese natürlich auch in Dictionarie und Listen speichern, so geht man aber sicher, dass die Daten nicht ausersehen geändert werden; außerdem ist die Speicherperformance besser)  &lt;br /&gt;
&lt;br /&gt;
==== Syntax ==== &lt;br /&gt;
* die Erstellung von Tupeln ist analog zur Erstellung von Listen, nur hier werden keine Klammern benötigt (s.Beispiel_1) &lt;br /&gt;
* der Zugriff auf die Elemente des Tupels ist analog zur Syntax bei Listen (s.Beispiel_1)&lt;br /&gt;
&lt;br /&gt;
=====Tupel ausgeben lassen =====&lt;br /&gt;
* sowohl das ausgeben des ganzen Tupels, als auch der einzelnen Elemente folgt der selben Syntax der Listen   &lt;br /&gt;
&lt;br /&gt;
===== Erweiterung eines Tupels =====&lt;br /&gt;
* auch hier ist die Syntax analog zur Erweiterung von Listen&lt;br /&gt;
* das neue Element muss selbst ein Tupel sein, um es zum Tupel hinzufügen zu können &lt;br /&gt;
* dazu muss das neue Element erst als Tupel abgespeichert werden &lt;br /&gt;
* um ein neues Element als Tupel zu speichern, wird ein Tupel mit nur einem Element erstellt &lt;br /&gt;
* nun kann dieser Tupel dem alten hinzugefügt werden (s.Beispiel_2)&lt;br /&gt;
&lt;br /&gt;
 #Beispiel_2:&lt;br /&gt;
 tier_1=&amp;quot;Hund&amp;quot;,100,399,99,True&lt;br /&gt;
 farbe= &amp;quot;braun&amp;quot;,&lt;br /&gt;
 tier_1=tier_1 + farbe&lt;br /&gt;
 print(tier_1)&lt;br /&gt;
&lt;br /&gt;
output&lt;br /&gt;
 ('Hund', 100, 399, 99, True, 'braun')&lt;br /&gt;
&lt;br /&gt;
== Literatur ==&lt;br /&gt;
Michael Bonacina: Python 3 Programmieren für Einsteiger. 2. Auflage. BMU Verlag, Landshut 2019, ISBN: 978-3-96645-007-2&lt;/div&gt;</summary>
		<author><name>Ani</name></author>
	</entry>
	<entry>
		<id>http://wiki.bioinfo.nat.tu-bs.de/index.php?title=2.Datentypen_und_Datenstrukturen&amp;diff=966</id>
		<title>2.Datentypen und Datenstrukturen</title>
		<link rel="alternate" type="text/html" href="http://wiki.bioinfo.nat.tu-bs.de/index.php?title=2.Datentypen_und_Datenstrukturen&amp;diff=966"/>
		<updated>2023-05-28T11:47:14Z</updated>

		<summary type="html">&lt;p&gt;Ani: /* Listen in Listen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Datentypen ==&lt;br /&gt;
&lt;br /&gt;
In Python unterscheidet man vier verschiedene Datentypen (Klassen):&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Datentyp !! Abkürzung !! Bedeutung  !! Beispiel&lt;br /&gt;
|-&lt;br /&gt;
| String || str || Zeichenkette || &amp;quot;abc&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Integer || int || Ganze Zahl || 1&lt;br /&gt;
|-&lt;br /&gt;
| Float || float || Dezimalzahl || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| Boolean || bool || Wahrheitsgehalt || True, False&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Der Datentyp kann durch den ''type''-Befehl abgefragt werden.&lt;br /&gt;
&amp;lt;br&amp;gt; Beispiel:&lt;br /&gt;
‎&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
sequence = &amp;quot;ACGT&amp;quot;&lt;br /&gt;
result = type(sequence)&lt;br /&gt;
print(result)&lt;br /&gt;
# Output: &amp;lt;class 'str'&amp;gt;&lt;br /&gt;
‎&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Datenstrukturen ==&lt;br /&gt;
&lt;br /&gt;
Man unterscheidet zwischen drei verscheiden Datenstrukturen: &lt;br /&gt;
Listen, Dictionary und Tupel. Alle diese Datenstrukturen stellen Organisationsformen&lt;br /&gt;
von Daten in Python dar. Das heißt sie erleichtern vor allem die Handhabung größerer Datenmengen,&lt;br /&gt;
indem sie diese in geeigneter Form darstellen und speichern. &lt;br /&gt;
Sie unterscheiden sich jedoch in ihrem Aufbau und ihren spezifischen Funktionen.&lt;br /&gt;
&lt;br /&gt;
=== Listen ===&lt;br /&gt;
&lt;br /&gt;
‎&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
#Befehl:&lt;br /&gt;
liste = ['string', variable, 1, 2.0, True]&lt;br /&gt;
&lt;br /&gt;
# Beispiel_1:&lt;br /&gt;
&lt;br /&gt;
hund = ['Hund', 100, 399, 99, True]&lt;br /&gt;
katze = ['Katze', 60, 249, 99, True]&lt;br /&gt;
fisch = ['Fisch', 3, 1, 50, False]&lt;br /&gt;
 &lt;br /&gt;
print(hund)&lt;br /&gt;
print(katze)&lt;br /&gt;
print(fisch)&lt;br /&gt;
&lt;br /&gt;
# output&lt;br /&gt;
# ['Hund', 100, 399, 99, True]&lt;br /&gt;
# ['Katze', 60, 249, 99, True]&lt;br /&gt;
# ['Fisch', 3, 1, 50, False]&lt;br /&gt;
‎&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== Funktion ====&lt;br /&gt;
* haben dieselbe Funktion wie Listen im echten Leben &lt;br /&gt;
* mit Listen können mehrere Werte unter einem Namen abgespeichert werden&lt;br /&gt;
* macht das Programm übersichtlicher und erleichtert die Arbeit, weil nicht jeder einzelne Wert mit einem eigenen Variablennamen gespeichert werden muss&lt;br /&gt;
&lt;br /&gt;
==== Syntax ====&lt;br /&gt;
* die Liste erhält einen Namen, welcher wie eine Variable durch ein Gleichheitszeichen den Elementen der Liste zugeordnet wird&lt;br /&gt;
* die Elemente der Liste werden in eckige Klammern gesetzt und müssen mit einem Komma voneinander getrennt werden &lt;br /&gt;
* in einer Liste können verschiedene Datentypen auf einmal vorkommen&lt;br /&gt;
&lt;br /&gt;
===== Liste ausgeben lassen =====&lt;br /&gt;
* die ganze Liste lässt sich durch einen print-Befehl ausgeben (s. Beispiel_1)&lt;br /&gt;
&lt;br /&gt;
====== einzelne Elemente der Liste ausgeben lassen ======&lt;br /&gt;
* auch einzelne Elemente der Liste können ausgegeben werden (s. Beispiel_2)&lt;br /&gt;
* dabei wird die Position des auszugebenden Elements durch eine Indexzahl in eckigen Klammern nach dem Listennamen angegeben &lt;br /&gt;
* Achtung: grundsätzlich zählt man von 0 ausgehend, d.h. das erste Element in der Liste besitzt die Position 0, das zweite die Position 1 etc.&lt;br /&gt;
* es kann auch von hinten gezählt werden, dabei besitzt das erste Element (welches von vorne gezählt das letzte wäre) die Position -1 usw.&lt;br /&gt;
&lt;br /&gt;
====== Bereich der Liste ausgeben lassen  ======&lt;br /&gt;
* es lässt sich auch ein bestimmter Bereich der Liste ausgeben, wobei die Positionen der Elemente durch einen Doppelpunkt getrennt werden (s.Beispiel_2)&lt;br /&gt;
* die erste Indexzahl schließt die Position des Elements ein, welche ausgegeben wird  (engl. inclusive)&lt;br /&gt;
* die zweite gibt die Position des Elements an, welches nicht mehr im Bereich liegt und demnach nicht ausgegeben wird (engl. exclusive)&lt;br /&gt;
* um die Syntax des Befehls zu verstehen, ist es sinnvoll, die verschiedenen Möglichkeiten einmal selbst auszuprobieren und die Aufgaben 4 und 5 auf dem Aufgabenblatt zu bearbeiten &lt;br /&gt;
‎&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
 # Befehl:&lt;br /&gt;
 print(liste[Position])&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel_2:&lt;br /&gt;
 tier_1 = [&amp;quot;Hund&amp;quot;, 100, 399, 99, True]&lt;br /&gt;
 &lt;br /&gt;
 print(tier_1[0])&lt;br /&gt;
 print(tier_1[1])&lt;br /&gt;
 print(tier_1[-1])&lt;br /&gt;
 print(tier_1[0:4])&lt;br /&gt;
&lt;br /&gt;
# output&lt;br /&gt;
# Hund&lt;br /&gt;
# 100&lt;br /&gt;
# True&lt;br /&gt;
# ['Hund', 100, 399, 99]&lt;br /&gt;
‎‎&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Liste verändern =====&lt;br /&gt;
* wie Variablen sind auch Listen veränderbar, es können Elemente hinzugefügt, geändert und sogar gelöscht werden &lt;br /&gt;
&lt;br /&gt;
====== Element in Liste verändern ======&lt;br /&gt;
* Elemente der Liste lassen sich verändern, genau wie auch der Wert von Variablen neu definiert werden kann &lt;br /&gt;
* dafür schreibt man den Namen der Liste, dahinter eine Indexzahl in eckigen Klammern, wobei die Indexzahl die Position des zu verändernden Elements angibt&lt;br /&gt;
* die Zuweisung des neuen Werts erfolgt durch ein Gleichheitszeichen und den neuen Wert, den das Element der Liste annehmen soll (s. Beispiel_3)&lt;br /&gt;
‎&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
 # Befehl:&lt;br /&gt;
 liste[Position]= neuer_Wert&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel_3:&lt;br /&gt;
 tier_1 = ['Hund', 100, 399, 99, True]&lt;br /&gt;
 print(tier_1)&lt;br /&gt;
 tier_1[0] = &amp;quot;Tiger&amp;quot;&lt;br /&gt;
 tier_1[1] = 500&lt;br /&gt;
 print(tier_1)&lt;br /&gt;
&lt;br /&gt;
# output&lt;br /&gt;
# ['Hund', 100, 399, 99, True]&lt;br /&gt;
# ['Tiger', 500, 399, 99, True]&lt;br /&gt;
‎&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
====== Element zu einer Liste hinzufügen ======&lt;br /&gt;
* Listen können erweitert werden &lt;br /&gt;
* dazu schreibt man den Namen der Liste ein Gleichheitszeichen, erneut den Namen der Liste, ein „+“ und das Element das hinzugefügt werden soll in eckigen Klammern (s. Beispiel_4)&lt;br /&gt;
‎&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
 # Befehl:&lt;br /&gt;
 liste = liste + [neues_Element]&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel_4:&lt;br /&gt;
 tier_1 = ['Hund', 100, 399, 99, True]&lt;br /&gt;
 print(tier_1)&lt;br /&gt;
 tier_1 = tier_1 + [&amp;quot;Elefant&amp;quot;]&lt;br /&gt;
 print(tier_1)&lt;br /&gt;
&lt;br /&gt;
# output&lt;br /&gt;
# ['Hund', 100, 399, 99, True]&lt;br /&gt;
# ['Hund', 100, 399, 99, True, 'Elefant']&lt;br /&gt;
‎&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
====== Element aus Liste löschen ======&lt;br /&gt;
* Elemente lassen sich mit dem del-Befehl aus der Liste entfernen (s. Beispiel_5)&lt;br /&gt;
* nach „del“ folgt der Listenname und die Position des zu löschenden Elements in eckigen Klammern &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Befehl:&lt;br /&gt;
del liste[Position]&lt;br /&gt;
 &lt;br /&gt;
# Beispiel_5:&lt;br /&gt;
tier_1 = ['Hund', 100, 399, 99, True]&lt;br /&gt;
del tier_1[1]&lt;br /&gt;
print(tier_1)&lt;br /&gt;
&lt;br /&gt;
# Output: ['Hund', 399, 99, True]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Addition und Multiplikation von Listen =====&lt;br /&gt;
* Listen können miteinander addiert oder mit Zahlen multipliziert werden&lt;br /&gt;
(s. Beispiel_6)&lt;br /&gt;
* werden zwei Listen addiert, wird der Inhalt der Listen hintereinander ausgegeben &lt;br /&gt;
* wird eine Liste mit einer Zahl multipliziert, wird der Inhalt der Liste entsprechend oft hintereinander ausgegeben&lt;br /&gt;
&lt;br /&gt;
‎&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Beispiel_6:&lt;br /&gt;
tier_1 = ['Hund', 100, 399, 99, True]&lt;br /&gt;
tier_2 = ['Katze', 60, 249, 99, True]&lt;br /&gt;
tier_3 = ['Fisch', 3, 1, 50, False]&lt;br /&gt;
 &lt;br /&gt;
print(tier_1 + tier_2)&lt;br /&gt;
print(tier_1 * 2)&lt;br /&gt;
‎&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
output&lt;br /&gt;
‎&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
 ['Hund', 100, 399, 99, True, 'Katze', 60, 249, 99, True]&lt;br /&gt;
 ['Hund', 100, 399, 99, True, 'Hund', 100, 399, 99, True]&lt;br /&gt;
‎&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Listen in Listen ===== &lt;br /&gt;
* Elemente einer Liste können selbst eine Liste sein, so erhält man Listen in einer Liste (s. Beispiel_7, engl. nested lists) &lt;br /&gt;
* es entsteht eine zweidimensionale Liste mit einer übergeordneten Liste (im Beispiel: alle_tiere) und den untergeordneten Listen (tier_1, tier_2, tier_3) &lt;br /&gt;
* auf die Elemente der übergeordneten Liste lässt sich wie oben gezeigt zugreifen &lt;br /&gt;
* möchte man nur auf ein Element der untergeordneten Liste zugreifen, sind zwei Indexzahlen notwendig&lt;br /&gt;
* die erste Indexzahl gibt die Position des Elements in der übergeordneten Liste an&lt;br /&gt;
* die zweite Indexzahl gibt die Position des Elements in der untergeordneten Liste an (s. Beispiel_7)&lt;br /&gt;
‎&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Befehl&lt;br /&gt;
print(liste[Position][Position])&lt;br /&gt;
&lt;br /&gt;
# Beispiel_7:&lt;br /&gt;
&lt;br /&gt;
tier_1 = ['Hund', 100, 399, 99, True]&lt;br /&gt;
tier_2 = ['Katze', 60, 249, 99, True]&lt;br /&gt;
tier_3 = ['Fisch', 3, 1, 50, False]&lt;br /&gt;
&lt;br /&gt;
alle_tiere = [tier_1, tier_2, tier_3]&lt;br /&gt;
print(alle_tiere)&lt;br /&gt;
print(alle_tiere[0])&lt;br /&gt;
print(alle_tiere[0][0])&lt;br /&gt;
&lt;br /&gt;
# output&lt;br /&gt;
# [['Hund', 100, 399, 99, True], ['Katze', 60, 249, 99, True], ['Fisch', 3, 1, 50, False]]&lt;br /&gt;
# ['Hund', 100, 399, 99, True]&lt;br /&gt;
# Hund&lt;br /&gt;
‎&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Dictionaries ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 #Befehl:&lt;br /&gt;
 dictionary={&amp;quot;key_1&amp;quot;:Element_1,&amp;quot;key_2&amp;quot;:Element_2}&lt;br /&gt;
 &lt;br /&gt;
 #Beispiel_1:&lt;br /&gt;
 buch_1={&amp;quot;Buch&amp;quot;:&amp;quot;Der Herr der Ringe&amp;quot;, &amp;quot;Autor&amp;quot;:&amp;quot;Tolkien&amp;quot;, &amp;quot;Preis&amp;quot;:45}&lt;br /&gt;
 &lt;br /&gt;
 print(buch_1) &lt;br /&gt;
 print(buch_1[&amp;quot;Buch&amp;quot;])&lt;br /&gt;
 print(buch_1[&amp;quot;Autor&amp;quot;])&lt;br /&gt;
 print(buch_1[&amp;quot;Preis&amp;quot;])&lt;br /&gt;
&lt;br /&gt;
output&lt;br /&gt;
 {'Buch': 'Der Herr der Ringe', 'Autor': 'Tolkien', 'Preis': 45}&lt;br /&gt;
 Der Herr der Ringe&lt;br /&gt;
 Tolkien&lt;br /&gt;
 45&lt;br /&gt;
&lt;br /&gt;
==== Funktion ====&lt;br /&gt;
Listen sind zwar geeignet, um größere Mengen an Daten in übersichtlicher &lt;br /&gt;
und gut manipulierbarer Weise abzuspeichern, haben aber einen entscheidenden Nachteil.&lt;br /&gt;
Um auf ein Element in einer Liste zugreifen zu können, ist es notwendig die Position &lt;br /&gt;
des Elements in der Liste zu kennen. Bei kürzeren Listen lässt sich vielleicht noch der Überblick behalten. Sobald Listen aber eine gewissen Anzahl an Elementen überschreiten, &lt;br /&gt;
in einem Programm mehrere Listen verwendet werden oder sogar Listen in Listen gespeichert sind, &lt;br /&gt;
ist jeglicher Versuch sich die Positionen der Elemente zu merken vergebens. &lt;br /&gt;
Hier bringen die sogenannten Dictionaries den entscheidenden Vorteil. &lt;br /&gt;
Dictionaries funktionieren wie Listen, wenn es darum geht Informationen abzuspeichern. &lt;br /&gt;
Doch der Zugriff auf die Elemente folgt nicht durch eine Indexnummer sondern über ein sogenannten key oder Schlüsselbegriff. &lt;br /&gt;
Um auf die Elemente über einen key zugreifen zu können, werden den Elementen im Dictionary ein Schlüsselbegriff zugeordnet. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Syntax ====&lt;br /&gt;
* nach dem Namen des Dictionary und dem Gleichheitszeichen folgt eine geschweifte Klammer {}&lt;br /&gt;
* danach folgt der Key, dabei kann es sich um ein integer, float, bool oder string handeln &lt;br /&gt;
* darauf folgt das Listenelement, getrennt durch einen Doppelpunkt vom Key und durch ein Komma vom nächsten Key-Element Paar &lt;br /&gt;
&lt;br /&gt;
===== Dictionary ausgeben lassen =====&lt;br /&gt;
* das ganze Dictionary lässt sich durch einen print-Befehl ausgeben (s. Beispie_1)&lt;br /&gt;
&lt;br /&gt;
====== einzelne Elemente des Dictionaries ausgeben ======&lt;br /&gt;
* der Zugriff erfolgt durch den key &lt;br /&gt;
* die Syntax ist analog zum Abruf der Elemente einer Liste, nur das statt der Indexzahl der key in die eckige Klammer geschrieben wird (s.Beispeil_1)&lt;br /&gt;
&lt;br /&gt;
===== Dictionary verändern =====&lt;br /&gt;
* wie Listen sind auch Dictionaries veränderbar, es können Elemente hinzugefügt, geändert und sogar gelöscht werden&lt;br /&gt;
&lt;br /&gt;
====== Element in Dictionary verändern ======&lt;br /&gt;
* die Syntax ist analog zur Veränderung eines Elements in Listen, nur hier wird der key, statt der Position in die eckigen Klammern hinter dem Namen des Dictionaries gesetzt (s.Beispiel_2)&lt;br /&gt;
&lt;br /&gt;
 #Befehl: &lt;br /&gt;
 dictionary[(bestehender)key]= neuer Wert&amp;lt;br&amp;gt;&lt;br /&gt;
 #Beispiel_2:&lt;br /&gt;
 buch_1={&amp;quot;Buch&amp;quot;:&amp;quot;Der Herr der Ringe&amp;quot;, &amp;quot;Autor&amp;quot;:&amp;quot;Tolkien&amp;quot;, &amp;quot;Preis&amp;quot;:45}&lt;br /&gt;
 buch_1[&amp;quot;Preis&amp;quot;]= 23&lt;br /&gt;
 print(buch_1)&lt;br /&gt;
&lt;br /&gt;
output&lt;br /&gt;
 {'Buch': 'Der Herr der Ringe', 'Autor': 'Tolkien', 'Preis': 23}&lt;br /&gt;
&lt;br /&gt;
====== Element zum Dictionary hinzufügen ======&lt;br /&gt;
* um Elemente zum Dictionary hinzuzufügen ist es notwendig auch gleichzeitig ein key für das Element zu definieren &lt;br /&gt;
* nach dem Listennamen und dem Key in eckigen Klammern folg ein Gleichheitszeichen und der Wert des neuen Elements (s.Beispiel_3)&lt;br /&gt;
&lt;br /&gt;
 #Befehl:&lt;br /&gt;
 dictionary[(neuer) key]= neues Element&lt;br /&gt;
 &lt;br /&gt;
 #Beispiel_3:&lt;br /&gt;
 buch_1={&amp;quot;Buch&amp;quot;:&amp;quot;Der Herr der Ringe&amp;quot;, &amp;quot;Autor&amp;quot;:&amp;quot;Tolkien&amp;quot;, &amp;quot;Preis&amp;quot;:45}&lt;br /&gt;
 &lt;br /&gt;
 buch_1[&amp;quot;Erscheinungsjahr&amp;quot;]= 1954&lt;br /&gt;
 buch_1[&amp;quot;Bewertung&amp;quot;]=&amp;quot;sehr gut&amp;quot;&lt;br /&gt;
 print(buch_1)&lt;br /&gt;
&lt;br /&gt;
output &lt;br /&gt;
 {'Buch': 'Der Herr der Ringe', 'Autor': 'Tolkien', 'Preis': 45, 'Erscheinungsjahr': 1954, 'Bewertung':   'sehr gut'}&lt;br /&gt;
&lt;br /&gt;
====== Element aus Dictionary löschen ======&lt;br /&gt;
* analoger Aufbau zum del-Befehl bei Listen &lt;br /&gt;
* hier wird wieder anstatt der Indexzahl der key in die eckigen Klammern gesetzt (s.Besipiel_4)&lt;br /&gt;
&lt;br /&gt;
 #Befehl:&lt;br /&gt;
 del dictionary[key] &lt;br /&gt;
 &lt;br /&gt;
 #Beispiel_4:&lt;br /&gt;
 buch_1={&amp;quot;Buch&amp;quot;:&amp;quot;Der Herr der Ringe&amp;quot;, &amp;quot;Autor&amp;quot;:&amp;quot;Tolkien&amp;quot;, &amp;quot;Preis&amp;quot;:45}&lt;br /&gt;
 &lt;br /&gt;
 del buch_1[&amp;quot;Preis&amp;quot;]&lt;br /&gt;
 print(buch_1)&lt;br /&gt;
&lt;br /&gt;
output &lt;br /&gt;
 {'Buch': 'Der Herr der Ringe', 'Autor': 'Tolkien'}&lt;br /&gt;
&lt;br /&gt;
=== Tupel ===&lt;br /&gt;
 #Befehl:&lt;br /&gt;
 tupel= element_1, element_2 &amp;lt;br&amp;gt;&lt;br /&gt;
 #Beispiel_1:&lt;br /&gt;
 tier_1=&amp;quot;Hund&amp;quot;,100,399,99,True&amp;lt;br&amp;gt;&lt;br /&gt;
 print(tier_1)&lt;br /&gt;
 print(tier_1[0])&lt;br /&gt;
&lt;br /&gt;
output&lt;br /&gt;
 ('Hund', 100, 399, 99, True)&lt;br /&gt;
 Hund&lt;br /&gt;
&lt;br /&gt;
==== Funktion ==== &lt;br /&gt;
* Tupelo sind unveränderliche Daten, d.h. die Elemente eines Tupels sind im Gegensatz zu Listen und Dictionaries nicht veränderbar oder löschbar &lt;br /&gt;
* sie können jedoch ergänzt werden &lt;br /&gt;
* Tupel werden genutzt, um Daten zu speichern, die nicht geändert werden sollen &lt;br /&gt;
* (man könnte diese natürlich auch in Dictionarie und Listen speichern, so geht man aber sicher, dass die Daten nicht ausersehen geändert werden; außerdem ist die Speicherperformance besser)  &lt;br /&gt;
&lt;br /&gt;
==== Syntax ==== &lt;br /&gt;
* die Erstellung von Tupeln ist analog zur Erstellung von Listen, nur hier werden keine Klammern benötigt (s.Beispiel_1) &lt;br /&gt;
* der Zugriff auf die Elemente des Tupels ist analog zur Syntax bei Listen (s.Beispiel_1)&lt;br /&gt;
&lt;br /&gt;
=====Tupel ausgeben lassen =====&lt;br /&gt;
* sowohl das ausgeben des ganzen Tupels, als auch der einzelnen Elemente folgt der selben Syntax der Listen   &lt;br /&gt;
&lt;br /&gt;
===== Erweiterung eines Tupels =====&lt;br /&gt;
* auch hier ist die Syntax analog zur Erweiterung von Listen&lt;br /&gt;
* das neue Element muss selbst ein Tupel sein, um es zum Tupel hinzufügen zu können &lt;br /&gt;
* dazu muss das neue Element erst als Tupel abgespeichert werden &lt;br /&gt;
* um ein neues Element als Tupel zu speichern, wird ein Tupel mit nur einem Element erstellt &lt;br /&gt;
* nun kann dieser Tupel dem alten hinzugefügt werden (s.Beispiel_2)&lt;br /&gt;
&lt;br /&gt;
 #Beispiel_2:&lt;br /&gt;
 tier_1=&amp;quot;Hund&amp;quot;,100,399,99,True&lt;br /&gt;
 farbe= &amp;quot;braun&amp;quot;,&lt;br /&gt;
 tier_1=tier_1 + farbe&lt;br /&gt;
 print(tier_1)&lt;br /&gt;
&lt;br /&gt;
output&lt;br /&gt;
 ('Hund', 100, 399, 99, True, 'braun')&lt;br /&gt;
&lt;br /&gt;
== Literatur ==&lt;br /&gt;
Michael Bonacina: Python 3 Programmieren für Einsteiger. 2. Auflage. BMU Verlag, Landshut 2019, ISBN: 978-3-96645-007-2&lt;/div&gt;</summary>
		<author><name>Ani</name></author>
	</entry>
	<entry>
		<id>http://wiki.bioinfo.nat.tu-bs.de/index.php?title=2.Datentypen_und_Datenstrukturen&amp;diff=965</id>
		<title>2.Datentypen und Datenstrukturen</title>
		<link rel="alternate" type="text/html" href="http://wiki.bioinfo.nat.tu-bs.de/index.php?title=2.Datentypen_und_Datenstrukturen&amp;diff=965"/>
		<updated>2023-05-28T11:40:07Z</updated>

		<summary type="html">&lt;p&gt;Ani: /* Addition und Multiplikation von Listen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Datentypen ==&lt;br /&gt;
&lt;br /&gt;
In Python unterscheidet man vier verschiedene Datentypen (Klassen):&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Datentyp !! Abkürzung !! Bedeutung  !! Beispiel&lt;br /&gt;
|-&lt;br /&gt;
| String || str || Zeichenkette || &amp;quot;abc&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Integer || int || Ganze Zahl || 1&lt;br /&gt;
|-&lt;br /&gt;
| Float || float || Dezimalzahl || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| Boolean || bool || Wahrheitsgehalt || True, False&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Der Datentyp kann durch den ''type''-Befehl abgefragt werden.&lt;br /&gt;
&amp;lt;br&amp;gt; Beispiel:&lt;br /&gt;
‎&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
sequence = &amp;quot;ACGT&amp;quot;&lt;br /&gt;
result = type(sequence)&lt;br /&gt;
print(result)&lt;br /&gt;
# Output: &amp;lt;class 'str'&amp;gt;&lt;br /&gt;
‎&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Datenstrukturen ==&lt;br /&gt;
&lt;br /&gt;
Man unterscheidet zwischen drei verscheiden Datenstrukturen: &lt;br /&gt;
Listen, Dictionary und Tupel. Alle diese Datenstrukturen stellen Organisationsformen&lt;br /&gt;
von Daten in Python dar. Das heißt sie erleichtern vor allem die Handhabung größerer Datenmengen,&lt;br /&gt;
indem sie diese in geeigneter Form darstellen und speichern. &lt;br /&gt;
Sie unterscheiden sich jedoch in ihrem Aufbau und ihren spezifischen Funktionen.&lt;br /&gt;
&lt;br /&gt;
=== Listen ===&lt;br /&gt;
&lt;br /&gt;
‎&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
#Befehl:&lt;br /&gt;
liste = ['string', variable, 1, 2.0, True]&lt;br /&gt;
&lt;br /&gt;
# Beispiel_1:&lt;br /&gt;
&lt;br /&gt;
hund = ['Hund', 100, 399, 99, True]&lt;br /&gt;
katze = ['Katze', 60, 249, 99, True]&lt;br /&gt;
fisch = ['Fisch', 3, 1, 50, False]&lt;br /&gt;
 &lt;br /&gt;
print(hund)&lt;br /&gt;
print(katze)&lt;br /&gt;
print(fisch)&lt;br /&gt;
&lt;br /&gt;
# output&lt;br /&gt;
# ['Hund', 100, 399, 99, True]&lt;br /&gt;
# ['Katze', 60, 249, 99, True]&lt;br /&gt;
# ['Fisch', 3, 1, 50, False]&lt;br /&gt;
‎&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== Funktion ====&lt;br /&gt;
* haben dieselbe Funktion wie Listen im echten Leben &lt;br /&gt;
* mit Listen können mehrere Werte unter einem Namen abgespeichert werden&lt;br /&gt;
* macht das Programm übersichtlicher und erleichtert die Arbeit, weil nicht jeder einzelne Wert mit einem eigenen Variablennamen gespeichert werden muss&lt;br /&gt;
&lt;br /&gt;
==== Syntax ====&lt;br /&gt;
* die Liste erhält einen Namen, welcher wie eine Variable durch ein Gleichheitszeichen den Elementen der Liste zugeordnet wird&lt;br /&gt;
* die Elemente der Liste werden in eckige Klammern gesetzt und müssen mit einem Komma voneinander getrennt werden &lt;br /&gt;
* in einer Liste können verschiedene Datentypen auf einmal vorkommen&lt;br /&gt;
&lt;br /&gt;
===== Liste ausgeben lassen =====&lt;br /&gt;
* die ganze Liste lässt sich durch einen print-Befehl ausgeben (s. Beispiel_1)&lt;br /&gt;
&lt;br /&gt;
====== einzelne Elemente der Liste ausgeben lassen ======&lt;br /&gt;
* auch einzelne Elemente der Liste können ausgegeben werden (s. Beispiel_2)&lt;br /&gt;
* dabei wird die Position des auszugebenden Elements durch eine Indexzahl in eckigen Klammern nach dem Listennamen angegeben &lt;br /&gt;
* Achtung: grundsätzlich zählt man von 0 ausgehend, d.h. das erste Element in der Liste besitzt die Position 0, das zweite die Position 1 etc.&lt;br /&gt;
* es kann auch von hinten gezählt werden, dabei besitzt das erste Element (welches von vorne gezählt das letzte wäre) die Position -1 usw.&lt;br /&gt;
&lt;br /&gt;
====== Bereich der Liste ausgeben lassen  ======&lt;br /&gt;
* es lässt sich auch ein bestimmter Bereich der Liste ausgeben, wobei die Positionen der Elemente durch einen Doppelpunkt getrennt werden (s.Beispiel_2)&lt;br /&gt;
* die erste Indexzahl schließt die Position des Elements ein, welche ausgegeben wird  (engl. inclusive)&lt;br /&gt;
* die zweite gibt die Position des Elements an, welches nicht mehr im Bereich liegt und demnach nicht ausgegeben wird (engl. exclusive)&lt;br /&gt;
* um die Syntax des Befehls zu verstehen, ist es sinnvoll, die verschiedenen Möglichkeiten einmal selbst auszuprobieren und die Aufgaben 4 und 5 auf dem Aufgabenblatt zu bearbeiten &lt;br /&gt;
‎&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
 # Befehl:&lt;br /&gt;
 print(liste[Position])&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel_2:&lt;br /&gt;
 tier_1 = [&amp;quot;Hund&amp;quot;, 100, 399, 99, True]&lt;br /&gt;
 &lt;br /&gt;
 print(tier_1[0])&lt;br /&gt;
 print(tier_1[1])&lt;br /&gt;
 print(tier_1[-1])&lt;br /&gt;
 print(tier_1[0:4])&lt;br /&gt;
&lt;br /&gt;
# output&lt;br /&gt;
# Hund&lt;br /&gt;
# 100&lt;br /&gt;
# True&lt;br /&gt;
# ['Hund', 100, 399, 99]&lt;br /&gt;
‎‎&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Liste verändern =====&lt;br /&gt;
* wie Variablen sind auch Listen veränderbar, es können Elemente hinzugefügt, geändert und sogar gelöscht werden &lt;br /&gt;
&lt;br /&gt;
====== Element in Liste verändern ======&lt;br /&gt;
* Elemente der Liste lassen sich verändern, genau wie auch der Wert von Variablen neu definiert werden kann &lt;br /&gt;
* dafür schreibt man den Namen der Liste, dahinter eine Indexzahl in eckigen Klammern, wobei die Indexzahl die Position des zu verändernden Elements angibt&lt;br /&gt;
* die Zuweisung des neuen Werts erfolgt durch ein Gleichheitszeichen und den neuen Wert, den das Element der Liste annehmen soll (s. Beispiel_3)&lt;br /&gt;
‎&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
 # Befehl:&lt;br /&gt;
 liste[Position]= neuer_Wert&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel_3:&lt;br /&gt;
 tier_1 = ['Hund', 100, 399, 99, True]&lt;br /&gt;
 print(tier_1)&lt;br /&gt;
 tier_1[0] = &amp;quot;Tiger&amp;quot;&lt;br /&gt;
 tier_1[1] = 500&lt;br /&gt;
 print(tier_1)&lt;br /&gt;
&lt;br /&gt;
# output&lt;br /&gt;
# ['Hund', 100, 399, 99, True]&lt;br /&gt;
# ['Tiger', 500, 399, 99, True]&lt;br /&gt;
‎&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
====== Element zu einer Liste hinzufügen ======&lt;br /&gt;
* Listen können erweitert werden &lt;br /&gt;
* dazu schreibt man den Namen der Liste ein Gleichheitszeichen, erneut den Namen der Liste, ein „+“ und das Element das hinzugefügt werden soll in eckigen Klammern (s. Beispiel_4)&lt;br /&gt;
‎&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
 # Befehl:&lt;br /&gt;
 liste = liste + [neues_Element]&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel_4:&lt;br /&gt;
 tier_1 = ['Hund', 100, 399, 99, True]&lt;br /&gt;
 print(tier_1)&lt;br /&gt;
 tier_1 = tier_1 + [&amp;quot;Elefant&amp;quot;]&lt;br /&gt;
 print(tier_1)&lt;br /&gt;
&lt;br /&gt;
# output&lt;br /&gt;
# ['Hund', 100, 399, 99, True]&lt;br /&gt;
# ['Hund', 100, 399, 99, True, 'Elefant']&lt;br /&gt;
‎&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
====== Element aus Liste löschen ======&lt;br /&gt;
* Elemente lassen sich mit dem del-Befehl aus der Liste entfernen (s. Beispiel_5)&lt;br /&gt;
* nach „del“ folgt der Listenname und die Position des zu löschenden Elements in eckigen Klammern &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Befehl:&lt;br /&gt;
del liste[Position]&lt;br /&gt;
 &lt;br /&gt;
# Beispiel_5:&lt;br /&gt;
tier_1 = ['Hund', 100, 399, 99, True]&lt;br /&gt;
del tier_1[1]&lt;br /&gt;
print(tier_1)&lt;br /&gt;
&lt;br /&gt;
# Output: ['Hund', 399, 99, True]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Addition und Multiplikation von Listen =====&lt;br /&gt;
* Listen können miteinander addiert oder mit Zahlen multipliziert werden&lt;br /&gt;
(s. Beispiel_6)&lt;br /&gt;
* werden zwei Listen addiert, wird der Inhalt der Listen hintereinander ausgegeben &lt;br /&gt;
* wird eine Liste mit einer Zahl multipliziert, wird der Inhalt der Liste entsprechend oft hintereinander ausgegeben&lt;br /&gt;
&lt;br /&gt;
‎&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Beispiel_6:&lt;br /&gt;
tier_1 = ['Hund', 100, 399, 99, True]&lt;br /&gt;
tier_2 = ['Katze', 60, 249, 99, True]&lt;br /&gt;
tier_3 = ['Fisch', 3, 1, 50, False]&lt;br /&gt;
 &lt;br /&gt;
print(tier_1 + tier_2)&lt;br /&gt;
print(tier_1 * 2)&lt;br /&gt;
‎&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
output&lt;br /&gt;
‎&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
 ['Hund', 100, 399, 99, True, 'Katze', 60, 249, 99, True]&lt;br /&gt;
 ['Hund', 100, 399, 99, True, 'Hund', 100, 399, 99, True]&lt;br /&gt;
‎&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Listen in Listen ===== &lt;br /&gt;
* Elemente einer Liste können selbst eine Liste sein, so erhält man Listen in einer Liste (s.Beispiel_7) &lt;br /&gt;
* es entsteht eine zweidimensionale Liste mit einer übergeordneten Liste (im Beispiel: alle_tiere) und den untergeordneten Listen ( tier_1, tier_2, tier_3) &lt;br /&gt;
* auf die Elemente der übergeordneten Liste lässt sich wie oben gezeigt zugreifen &lt;br /&gt;
* möchte man nur auf ein Element der untergeordneten Liste zugreifen, sind zwei Indexzahlen notwendig&lt;br /&gt;
* die erste Indexzahl gibt die Position des Elements in der übergeordneten Liste an&lt;br /&gt;
* die zweite Indexzahl gibt die Position des Elements in der untergeordneten Liste an (s.Beispiel_7)&lt;br /&gt;
&lt;br /&gt;
 #Befehl:&lt;br /&gt;
 print(liste[Position][Position])&lt;br /&gt;
 &lt;br /&gt;
 #Beispiel_7:&lt;br /&gt;
 tier_1=[&amp;quot;Hund&amp;quot;,100,399,99,True]&lt;br /&gt;
 tier_2=[&amp;quot;Katze&amp;quot;,60,249,99,True]&lt;br /&gt;
 tier_3=[&amp;quot;Fisch&amp;quot;,3,1 ,50,False]&lt;br /&gt;
 &lt;br /&gt;
 alle_tiere=[tier_1, tier_2, tier_3]&lt;br /&gt;
 print(alle_tiere)&lt;br /&gt;
 print(alle_tiere[0])&lt;br /&gt;
 print(alle_tiere[0][0])&lt;br /&gt;
&lt;br /&gt;
output&lt;br /&gt;
 [[&amp;quot;Hund&amp;quot;,100,399,99,True],[&amp;quot;Katze&amp;quot;,60,249,99,True],[&amp;quot;Fisch&amp;quot;,3,1 ,50,False]]&lt;br /&gt;
 ['Hund', 100, 399, 99, True]&lt;br /&gt;
 Hund&lt;br /&gt;
&lt;br /&gt;
=== Dictionaries ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 #Befehl:&lt;br /&gt;
 dictionary={&amp;quot;key_1&amp;quot;:Element_1,&amp;quot;key_2&amp;quot;:Element_2}&lt;br /&gt;
 &lt;br /&gt;
 #Beispiel_1:&lt;br /&gt;
 buch_1={&amp;quot;Buch&amp;quot;:&amp;quot;Der Herr der Ringe&amp;quot;, &amp;quot;Autor&amp;quot;:&amp;quot;Tolkien&amp;quot;, &amp;quot;Preis&amp;quot;:45}&lt;br /&gt;
 &lt;br /&gt;
 print(buch_1) &lt;br /&gt;
 print(buch_1[&amp;quot;Buch&amp;quot;])&lt;br /&gt;
 print(buch_1[&amp;quot;Autor&amp;quot;])&lt;br /&gt;
 print(buch_1[&amp;quot;Preis&amp;quot;])&lt;br /&gt;
&lt;br /&gt;
output&lt;br /&gt;
 {'Buch': 'Der Herr der Ringe', 'Autor': 'Tolkien', 'Preis': 45}&lt;br /&gt;
 Der Herr der Ringe&lt;br /&gt;
 Tolkien&lt;br /&gt;
 45&lt;br /&gt;
&lt;br /&gt;
==== Funktion ====&lt;br /&gt;
Listen sind zwar geeignet, um größere Mengen an Daten in übersichtlicher &lt;br /&gt;
und gut manipulierbarer Weise abzuspeichern, haben aber einen entscheidenden Nachteil.&lt;br /&gt;
Um auf ein Element in einer Liste zugreifen zu können, ist es notwendig die Position &lt;br /&gt;
des Elements in der Liste zu kennen. Bei kürzeren Listen lässt sich vielleicht noch der Überblick behalten. Sobald Listen aber eine gewissen Anzahl an Elementen überschreiten, &lt;br /&gt;
in einem Programm mehrere Listen verwendet werden oder sogar Listen in Listen gespeichert sind, &lt;br /&gt;
ist jeglicher Versuch sich die Positionen der Elemente zu merken vergebens. &lt;br /&gt;
Hier bringen die sogenannten Dictionaries den entscheidenden Vorteil. &lt;br /&gt;
Dictionaries funktionieren wie Listen, wenn es darum geht Informationen abzuspeichern. &lt;br /&gt;
Doch der Zugriff auf die Elemente folgt nicht durch eine Indexnummer sondern über ein sogenannten key oder Schlüsselbegriff. &lt;br /&gt;
Um auf die Elemente über einen key zugreifen zu können, werden den Elementen im Dictionary ein Schlüsselbegriff zugeordnet. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Syntax ====&lt;br /&gt;
* nach dem Namen des Dictionary und dem Gleichheitszeichen folgt eine geschweifte Klammer {}&lt;br /&gt;
* danach folgt der Key, dabei kann es sich um ein integer, float, bool oder string handeln &lt;br /&gt;
* darauf folgt das Listenelement, getrennt durch einen Doppelpunkt vom Key und durch ein Komma vom nächsten Key-Element Paar &lt;br /&gt;
&lt;br /&gt;
===== Dictionary ausgeben lassen =====&lt;br /&gt;
* das ganze Dictionary lässt sich durch einen print-Befehl ausgeben (s. Beispie_1)&lt;br /&gt;
&lt;br /&gt;
====== einzelne Elemente des Dictionaries ausgeben ======&lt;br /&gt;
* der Zugriff erfolgt durch den key &lt;br /&gt;
* die Syntax ist analog zum Abruf der Elemente einer Liste, nur das statt der Indexzahl der key in die eckige Klammer geschrieben wird (s.Beispeil_1)&lt;br /&gt;
&lt;br /&gt;
===== Dictionary verändern =====&lt;br /&gt;
* wie Listen sind auch Dictionaries veränderbar, es können Elemente hinzugefügt, geändert und sogar gelöscht werden&lt;br /&gt;
&lt;br /&gt;
====== Element in Dictionary verändern ======&lt;br /&gt;
* die Syntax ist analog zur Veränderung eines Elements in Listen, nur hier wird der key, statt der Position in die eckigen Klammern hinter dem Namen des Dictionaries gesetzt (s.Beispiel_2)&lt;br /&gt;
&lt;br /&gt;
 #Befehl: &lt;br /&gt;
 dictionary[(bestehender)key]= neuer Wert&amp;lt;br&amp;gt;&lt;br /&gt;
 #Beispiel_2:&lt;br /&gt;
 buch_1={&amp;quot;Buch&amp;quot;:&amp;quot;Der Herr der Ringe&amp;quot;, &amp;quot;Autor&amp;quot;:&amp;quot;Tolkien&amp;quot;, &amp;quot;Preis&amp;quot;:45}&lt;br /&gt;
 buch_1[&amp;quot;Preis&amp;quot;]= 23&lt;br /&gt;
 print(buch_1)&lt;br /&gt;
&lt;br /&gt;
output&lt;br /&gt;
 {'Buch': 'Der Herr der Ringe', 'Autor': 'Tolkien', 'Preis': 23}&lt;br /&gt;
&lt;br /&gt;
====== Element zum Dictionary hinzufügen ======&lt;br /&gt;
* um Elemente zum Dictionary hinzuzufügen ist es notwendig auch gleichzeitig ein key für das Element zu definieren &lt;br /&gt;
* nach dem Listennamen und dem Key in eckigen Klammern folg ein Gleichheitszeichen und der Wert des neuen Elements (s.Beispiel_3)&lt;br /&gt;
&lt;br /&gt;
 #Befehl:&lt;br /&gt;
 dictionary[(neuer) key]= neues Element&lt;br /&gt;
 &lt;br /&gt;
 #Beispiel_3:&lt;br /&gt;
 buch_1={&amp;quot;Buch&amp;quot;:&amp;quot;Der Herr der Ringe&amp;quot;, &amp;quot;Autor&amp;quot;:&amp;quot;Tolkien&amp;quot;, &amp;quot;Preis&amp;quot;:45}&lt;br /&gt;
 &lt;br /&gt;
 buch_1[&amp;quot;Erscheinungsjahr&amp;quot;]= 1954&lt;br /&gt;
 buch_1[&amp;quot;Bewertung&amp;quot;]=&amp;quot;sehr gut&amp;quot;&lt;br /&gt;
 print(buch_1)&lt;br /&gt;
&lt;br /&gt;
output &lt;br /&gt;
 {'Buch': 'Der Herr der Ringe', 'Autor': 'Tolkien', 'Preis': 45, 'Erscheinungsjahr': 1954, 'Bewertung':   'sehr gut'}&lt;br /&gt;
&lt;br /&gt;
====== Element aus Dictionary löschen ======&lt;br /&gt;
* analoger Aufbau zum del-Befehl bei Listen &lt;br /&gt;
* hier wird wieder anstatt der Indexzahl der key in die eckigen Klammern gesetzt (s.Besipiel_4)&lt;br /&gt;
&lt;br /&gt;
 #Befehl:&lt;br /&gt;
 del dictionary[key] &lt;br /&gt;
 &lt;br /&gt;
 #Beispiel_4:&lt;br /&gt;
 buch_1={&amp;quot;Buch&amp;quot;:&amp;quot;Der Herr der Ringe&amp;quot;, &amp;quot;Autor&amp;quot;:&amp;quot;Tolkien&amp;quot;, &amp;quot;Preis&amp;quot;:45}&lt;br /&gt;
 &lt;br /&gt;
 del buch_1[&amp;quot;Preis&amp;quot;]&lt;br /&gt;
 print(buch_1)&lt;br /&gt;
&lt;br /&gt;
output &lt;br /&gt;
 {'Buch': 'Der Herr der Ringe', 'Autor': 'Tolkien'}&lt;br /&gt;
&lt;br /&gt;
=== Tupel ===&lt;br /&gt;
 #Befehl:&lt;br /&gt;
 tupel= element_1, element_2 &amp;lt;br&amp;gt;&lt;br /&gt;
 #Beispiel_1:&lt;br /&gt;
 tier_1=&amp;quot;Hund&amp;quot;,100,399,99,True&amp;lt;br&amp;gt;&lt;br /&gt;
 print(tier_1)&lt;br /&gt;
 print(tier_1[0])&lt;br /&gt;
&lt;br /&gt;
output&lt;br /&gt;
 ('Hund', 100, 399, 99, True)&lt;br /&gt;
 Hund&lt;br /&gt;
&lt;br /&gt;
==== Funktion ==== &lt;br /&gt;
* Tupelo sind unveränderliche Daten, d.h. die Elemente eines Tupels sind im Gegensatz zu Listen und Dictionaries nicht veränderbar oder löschbar &lt;br /&gt;
* sie können jedoch ergänzt werden &lt;br /&gt;
* Tupel werden genutzt, um Daten zu speichern, die nicht geändert werden sollen &lt;br /&gt;
* (man könnte diese natürlich auch in Dictionarie und Listen speichern, so geht man aber sicher, dass die Daten nicht ausersehen geändert werden; außerdem ist die Speicherperformance besser)  &lt;br /&gt;
&lt;br /&gt;
==== Syntax ==== &lt;br /&gt;
* die Erstellung von Tupeln ist analog zur Erstellung von Listen, nur hier werden keine Klammern benötigt (s.Beispiel_1) &lt;br /&gt;
* der Zugriff auf die Elemente des Tupels ist analog zur Syntax bei Listen (s.Beispiel_1)&lt;br /&gt;
&lt;br /&gt;
=====Tupel ausgeben lassen =====&lt;br /&gt;
* sowohl das ausgeben des ganzen Tupels, als auch der einzelnen Elemente folgt der selben Syntax der Listen   &lt;br /&gt;
&lt;br /&gt;
===== Erweiterung eines Tupels =====&lt;br /&gt;
* auch hier ist die Syntax analog zur Erweiterung von Listen&lt;br /&gt;
* das neue Element muss selbst ein Tupel sein, um es zum Tupel hinzufügen zu können &lt;br /&gt;
* dazu muss das neue Element erst als Tupel abgespeichert werden &lt;br /&gt;
* um ein neues Element als Tupel zu speichern, wird ein Tupel mit nur einem Element erstellt &lt;br /&gt;
* nun kann dieser Tupel dem alten hinzugefügt werden (s.Beispiel_2)&lt;br /&gt;
&lt;br /&gt;
 #Beispiel_2:&lt;br /&gt;
 tier_1=&amp;quot;Hund&amp;quot;,100,399,99,True&lt;br /&gt;
 farbe= &amp;quot;braun&amp;quot;,&lt;br /&gt;
 tier_1=tier_1 + farbe&lt;br /&gt;
 print(tier_1)&lt;br /&gt;
&lt;br /&gt;
output&lt;br /&gt;
 ('Hund', 100, 399, 99, True, 'braun')&lt;br /&gt;
&lt;br /&gt;
== Literatur ==&lt;br /&gt;
Michael Bonacina: Python 3 Programmieren für Einsteiger. 2. Auflage. BMU Verlag, Landshut 2019, ISBN: 978-3-96645-007-2&lt;/div&gt;</summary>
		<author><name>Ani</name></author>
	</entry>
	<entry>
		<id>http://wiki.bioinfo.nat.tu-bs.de/index.php?title=2.Datentypen_und_Datenstrukturen&amp;diff=964</id>
		<title>2.Datentypen und Datenstrukturen</title>
		<link rel="alternate" type="text/html" href="http://wiki.bioinfo.nat.tu-bs.de/index.php?title=2.Datentypen_und_Datenstrukturen&amp;diff=964"/>
		<updated>2023-05-28T11:38:16Z</updated>

		<summary type="html">&lt;p&gt;Ani: /* Element aus Liste löschen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Datentypen ==&lt;br /&gt;
&lt;br /&gt;
In Python unterscheidet man vier verschiedene Datentypen (Klassen):&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Datentyp !! Abkürzung !! Bedeutung  !! Beispiel&lt;br /&gt;
|-&lt;br /&gt;
| String || str || Zeichenkette || &amp;quot;abc&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Integer || int || Ganze Zahl || 1&lt;br /&gt;
|-&lt;br /&gt;
| Float || float || Dezimalzahl || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| Boolean || bool || Wahrheitsgehalt || True, False&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Der Datentyp kann durch den ''type''-Befehl abgefragt werden.&lt;br /&gt;
&amp;lt;br&amp;gt; Beispiel:&lt;br /&gt;
‎&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
sequence = &amp;quot;ACGT&amp;quot;&lt;br /&gt;
result = type(sequence)&lt;br /&gt;
print(result)&lt;br /&gt;
# Output: &amp;lt;class 'str'&amp;gt;&lt;br /&gt;
‎&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Datenstrukturen ==&lt;br /&gt;
&lt;br /&gt;
Man unterscheidet zwischen drei verscheiden Datenstrukturen: &lt;br /&gt;
Listen, Dictionary und Tupel. Alle diese Datenstrukturen stellen Organisationsformen&lt;br /&gt;
von Daten in Python dar. Das heißt sie erleichtern vor allem die Handhabung größerer Datenmengen,&lt;br /&gt;
indem sie diese in geeigneter Form darstellen und speichern. &lt;br /&gt;
Sie unterscheiden sich jedoch in ihrem Aufbau und ihren spezifischen Funktionen.&lt;br /&gt;
&lt;br /&gt;
=== Listen ===&lt;br /&gt;
&lt;br /&gt;
‎&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
#Befehl:&lt;br /&gt;
liste = ['string', variable, 1, 2.0, True]&lt;br /&gt;
&lt;br /&gt;
# Beispiel_1:&lt;br /&gt;
&lt;br /&gt;
hund = ['Hund', 100, 399, 99, True]&lt;br /&gt;
katze = ['Katze', 60, 249, 99, True]&lt;br /&gt;
fisch = ['Fisch', 3, 1, 50, False]&lt;br /&gt;
 &lt;br /&gt;
print(hund)&lt;br /&gt;
print(katze)&lt;br /&gt;
print(fisch)&lt;br /&gt;
&lt;br /&gt;
# output&lt;br /&gt;
# ['Hund', 100, 399, 99, True]&lt;br /&gt;
# ['Katze', 60, 249, 99, True]&lt;br /&gt;
# ['Fisch', 3, 1, 50, False]&lt;br /&gt;
‎&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== Funktion ====&lt;br /&gt;
* haben dieselbe Funktion wie Listen im echten Leben &lt;br /&gt;
* mit Listen können mehrere Werte unter einem Namen abgespeichert werden&lt;br /&gt;
* macht das Programm übersichtlicher und erleichtert die Arbeit, weil nicht jeder einzelne Wert mit einem eigenen Variablennamen gespeichert werden muss&lt;br /&gt;
&lt;br /&gt;
==== Syntax ====&lt;br /&gt;
* die Liste erhält einen Namen, welcher wie eine Variable durch ein Gleichheitszeichen den Elementen der Liste zugeordnet wird&lt;br /&gt;
* die Elemente der Liste werden in eckige Klammern gesetzt und müssen mit einem Komma voneinander getrennt werden &lt;br /&gt;
* in einer Liste können verschiedene Datentypen auf einmal vorkommen&lt;br /&gt;
&lt;br /&gt;
===== Liste ausgeben lassen =====&lt;br /&gt;
* die ganze Liste lässt sich durch einen print-Befehl ausgeben (s. Beispiel_1)&lt;br /&gt;
&lt;br /&gt;
====== einzelne Elemente der Liste ausgeben lassen ======&lt;br /&gt;
* auch einzelne Elemente der Liste können ausgegeben werden (s. Beispiel_2)&lt;br /&gt;
* dabei wird die Position des auszugebenden Elements durch eine Indexzahl in eckigen Klammern nach dem Listennamen angegeben &lt;br /&gt;
* Achtung: grundsätzlich zählt man von 0 ausgehend, d.h. das erste Element in der Liste besitzt die Position 0, das zweite die Position 1 etc.&lt;br /&gt;
* es kann auch von hinten gezählt werden, dabei besitzt das erste Element (welches von vorne gezählt das letzte wäre) die Position -1 usw.&lt;br /&gt;
&lt;br /&gt;
====== Bereich der Liste ausgeben lassen  ======&lt;br /&gt;
* es lässt sich auch ein bestimmter Bereich der Liste ausgeben, wobei die Positionen der Elemente durch einen Doppelpunkt getrennt werden (s.Beispiel_2)&lt;br /&gt;
* die erste Indexzahl schließt die Position des Elements ein, welche ausgegeben wird  (engl. inclusive)&lt;br /&gt;
* die zweite gibt die Position des Elements an, welches nicht mehr im Bereich liegt und demnach nicht ausgegeben wird (engl. exclusive)&lt;br /&gt;
* um die Syntax des Befehls zu verstehen, ist es sinnvoll, die verschiedenen Möglichkeiten einmal selbst auszuprobieren und die Aufgaben 4 und 5 auf dem Aufgabenblatt zu bearbeiten &lt;br /&gt;
‎&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
 # Befehl:&lt;br /&gt;
 print(liste[Position])&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel_2:&lt;br /&gt;
 tier_1 = [&amp;quot;Hund&amp;quot;, 100, 399, 99, True]&lt;br /&gt;
 &lt;br /&gt;
 print(tier_1[0])&lt;br /&gt;
 print(tier_1[1])&lt;br /&gt;
 print(tier_1[-1])&lt;br /&gt;
 print(tier_1[0:4])&lt;br /&gt;
&lt;br /&gt;
# output&lt;br /&gt;
# Hund&lt;br /&gt;
# 100&lt;br /&gt;
# True&lt;br /&gt;
# ['Hund', 100, 399, 99]&lt;br /&gt;
‎‎&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Liste verändern =====&lt;br /&gt;
* wie Variablen sind auch Listen veränderbar, es können Elemente hinzugefügt, geändert und sogar gelöscht werden &lt;br /&gt;
&lt;br /&gt;
====== Element in Liste verändern ======&lt;br /&gt;
* Elemente der Liste lassen sich verändern, genau wie auch der Wert von Variablen neu definiert werden kann &lt;br /&gt;
* dafür schreibt man den Namen der Liste, dahinter eine Indexzahl in eckigen Klammern, wobei die Indexzahl die Position des zu verändernden Elements angibt&lt;br /&gt;
* die Zuweisung des neuen Werts erfolgt durch ein Gleichheitszeichen und den neuen Wert, den das Element der Liste annehmen soll (s. Beispiel_3)&lt;br /&gt;
‎&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
 # Befehl:&lt;br /&gt;
 liste[Position]= neuer_Wert&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel_3:&lt;br /&gt;
 tier_1 = ['Hund', 100, 399, 99, True]&lt;br /&gt;
 print(tier_1)&lt;br /&gt;
 tier_1[0] = &amp;quot;Tiger&amp;quot;&lt;br /&gt;
 tier_1[1] = 500&lt;br /&gt;
 print(tier_1)&lt;br /&gt;
&lt;br /&gt;
# output&lt;br /&gt;
# ['Hund', 100, 399, 99, True]&lt;br /&gt;
# ['Tiger', 500, 399, 99, True]&lt;br /&gt;
‎&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
====== Element zu einer Liste hinzufügen ======&lt;br /&gt;
* Listen können erweitert werden &lt;br /&gt;
* dazu schreibt man den Namen der Liste ein Gleichheitszeichen, erneut den Namen der Liste, ein „+“ und das Element das hinzugefügt werden soll in eckigen Klammern (s. Beispiel_4)&lt;br /&gt;
‎&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
 # Befehl:&lt;br /&gt;
 liste = liste + [neues_Element]&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel_4:&lt;br /&gt;
 tier_1 = ['Hund', 100, 399, 99, True]&lt;br /&gt;
 print(tier_1)&lt;br /&gt;
 tier_1 = tier_1 + [&amp;quot;Elefant&amp;quot;]&lt;br /&gt;
 print(tier_1)&lt;br /&gt;
&lt;br /&gt;
# output&lt;br /&gt;
# ['Hund', 100, 399, 99, True]&lt;br /&gt;
# ['Hund', 100, 399, 99, True, 'Elefant']&lt;br /&gt;
‎&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
====== Element aus Liste löschen ======&lt;br /&gt;
* Elemente lassen sich mit dem del-Befehl aus der Liste entfernen (s. Beispiel_5)&lt;br /&gt;
* nach „del“ folgt der Listenname und die Position des zu löschenden Elements in eckigen Klammern &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# Befehl:&lt;br /&gt;
del liste[Position]&lt;br /&gt;
 &lt;br /&gt;
# Beispiel_5:&lt;br /&gt;
tier_1 = ['Hund', 100, 399, 99, True]&lt;br /&gt;
del tier_1[1]&lt;br /&gt;
print(tier_1)&lt;br /&gt;
&lt;br /&gt;
# Output: ['Hund', 399, 99, True]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Addition und Multiplikation von Listen =====&lt;br /&gt;
* Listen können miteinander addiert oder mit Zahlen multipliziert werden&lt;br /&gt;
(s. Beispiel_6)&lt;br /&gt;
* werden zwei Listen addiert, wird der Inhalt der Listen hintereinander ausgegeben &lt;br /&gt;
* wird eine Liste mit einer Zahl multipliziert, wird der Inhalt der Liste entsprechend oft hintereinander ausgegeben&lt;br /&gt;
&lt;br /&gt;
 #Beispiel_6:&lt;br /&gt;
 tier_1=[&amp;quot;Hund&amp;quot;,100,399,99,True]&lt;br /&gt;
 tier_2=[&amp;quot;Katze&amp;quot;,60,249,99,True]&lt;br /&gt;
 tier_3=[&amp;quot;Fisch&amp;quot;,3,1 ,50,False]&lt;br /&gt;
 &lt;br /&gt;
 print(tier_1 + tier_2)&lt;br /&gt;
 print(tier_1 *2)&lt;br /&gt;
&lt;br /&gt;
output&lt;br /&gt;
 ['Hund', 100, 399, 99, True, 'Katze', 60, 249, 99, True]&lt;br /&gt;
 ['Hund', 100, 399, 99, True, 'Hund', 100, 399, 99, True]&lt;br /&gt;
&lt;br /&gt;
===== Listen in Listen ===== &lt;br /&gt;
* Elemente einer Liste können selbst eine Liste sein, so erhält man Listen in einer Liste (s.Beispiel_7) &lt;br /&gt;
* es entsteht eine zweidimensionale Liste mit einer übergeordneten Liste (im Beispiel: alle_tiere) und den untergeordneten Listen ( tier_1, tier_2, tier_3) &lt;br /&gt;
* auf die Elemente der übergeordneten Liste lässt sich wie oben gezeigt zugreifen &lt;br /&gt;
* möchte man nur auf ein Element der untergeordneten Liste zugreifen, sind zwei Indexzahlen notwendig&lt;br /&gt;
* die erste Indexzahl gibt die Position des Elements in der übergeordneten Liste an&lt;br /&gt;
* die zweite Indexzahl gibt die Position des Elements in der untergeordneten Liste an (s.Beispiel_7)&lt;br /&gt;
&lt;br /&gt;
 #Befehl:&lt;br /&gt;
 print(liste[Position][Position])&lt;br /&gt;
 &lt;br /&gt;
 #Beispiel_7:&lt;br /&gt;
 tier_1=[&amp;quot;Hund&amp;quot;,100,399,99,True]&lt;br /&gt;
 tier_2=[&amp;quot;Katze&amp;quot;,60,249,99,True]&lt;br /&gt;
 tier_3=[&amp;quot;Fisch&amp;quot;,3,1 ,50,False]&lt;br /&gt;
 &lt;br /&gt;
 alle_tiere=[tier_1, tier_2, tier_3]&lt;br /&gt;
 print(alle_tiere)&lt;br /&gt;
 print(alle_tiere[0])&lt;br /&gt;
 print(alle_tiere[0][0])&lt;br /&gt;
&lt;br /&gt;
output&lt;br /&gt;
 [[&amp;quot;Hund&amp;quot;,100,399,99,True],[&amp;quot;Katze&amp;quot;,60,249,99,True],[&amp;quot;Fisch&amp;quot;,3,1 ,50,False]]&lt;br /&gt;
 ['Hund', 100, 399, 99, True]&lt;br /&gt;
 Hund&lt;br /&gt;
&lt;br /&gt;
=== Dictionaries ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 #Befehl:&lt;br /&gt;
 dictionary={&amp;quot;key_1&amp;quot;:Element_1,&amp;quot;key_2&amp;quot;:Element_2}&lt;br /&gt;
 &lt;br /&gt;
 #Beispiel_1:&lt;br /&gt;
 buch_1={&amp;quot;Buch&amp;quot;:&amp;quot;Der Herr der Ringe&amp;quot;, &amp;quot;Autor&amp;quot;:&amp;quot;Tolkien&amp;quot;, &amp;quot;Preis&amp;quot;:45}&lt;br /&gt;
 &lt;br /&gt;
 print(buch_1) &lt;br /&gt;
 print(buch_1[&amp;quot;Buch&amp;quot;])&lt;br /&gt;
 print(buch_1[&amp;quot;Autor&amp;quot;])&lt;br /&gt;
 print(buch_1[&amp;quot;Preis&amp;quot;])&lt;br /&gt;
&lt;br /&gt;
output&lt;br /&gt;
 {'Buch': 'Der Herr der Ringe', 'Autor': 'Tolkien', 'Preis': 45}&lt;br /&gt;
 Der Herr der Ringe&lt;br /&gt;
 Tolkien&lt;br /&gt;
 45&lt;br /&gt;
&lt;br /&gt;
==== Funktion ====&lt;br /&gt;
Listen sind zwar geeignet, um größere Mengen an Daten in übersichtlicher &lt;br /&gt;
und gut manipulierbarer Weise abzuspeichern, haben aber einen entscheidenden Nachteil.&lt;br /&gt;
Um auf ein Element in einer Liste zugreifen zu können, ist es notwendig die Position &lt;br /&gt;
des Elements in der Liste zu kennen. Bei kürzeren Listen lässt sich vielleicht noch der Überblick behalten. Sobald Listen aber eine gewissen Anzahl an Elementen überschreiten, &lt;br /&gt;
in einem Programm mehrere Listen verwendet werden oder sogar Listen in Listen gespeichert sind, &lt;br /&gt;
ist jeglicher Versuch sich die Positionen der Elemente zu merken vergebens. &lt;br /&gt;
Hier bringen die sogenannten Dictionaries den entscheidenden Vorteil. &lt;br /&gt;
Dictionaries funktionieren wie Listen, wenn es darum geht Informationen abzuspeichern. &lt;br /&gt;
Doch der Zugriff auf die Elemente folgt nicht durch eine Indexnummer sondern über ein sogenannten key oder Schlüsselbegriff. &lt;br /&gt;
Um auf die Elemente über einen key zugreifen zu können, werden den Elementen im Dictionary ein Schlüsselbegriff zugeordnet. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Syntax ====&lt;br /&gt;
* nach dem Namen des Dictionary und dem Gleichheitszeichen folgt eine geschweifte Klammer {}&lt;br /&gt;
* danach folgt der Key, dabei kann es sich um ein integer, float, bool oder string handeln &lt;br /&gt;
* darauf folgt das Listenelement, getrennt durch einen Doppelpunkt vom Key und durch ein Komma vom nächsten Key-Element Paar &lt;br /&gt;
&lt;br /&gt;
===== Dictionary ausgeben lassen =====&lt;br /&gt;
* das ganze Dictionary lässt sich durch einen print-Befehl ausgeben (s. Beispie_1)&lt;br /&gt;
&lt;br /&gt;
====== einzelne Elemente des Dictionaries ausgeben ======&lt;br /&gt;
* der Zugriff erfolgt durch den key &lt;br /&gt;
* die Syntax ist analog zum Abruf der Elemente einer Liste, nur das statt der Indexzahl der key in die eckige Klammer geschrieben wird (s.Beispeil_1)&lt;br /&gt;
&lt;br /&gt;
===== Dictionary verändern =====&lt;br /&gt;
* wie Listen sind auch Dictionaries veränderbar, es können Elemente hinzugefügt, geändert und sogar gelöscht werden&lt;br /&gt;
&lt;br /&gt;
====== Element in Dictionary verändern ======&lt;br /&gt;
* die Syntax ist analog zur Veränderung eines Elements in Listen, nur hier wird der key, statt der Position in die eckigen Klammern hinter dem Namen des Dictionaries gesetzt (s.Beispiel_2)&lt;br /&gt;
&lt;br /&gt;
 #Befehl: &lt;br /&gt;
 dictionary[(bestehender)key]= neuer Wert&amp;lt;br&amp;gt;&lt;br /&gt;
 #Beispiel_2:&lt;br /&gt;
 buch_1={&amp;quot;Buch&amp;quot;:&amp;quot;Der Herr der Ringe&amp;quot;, &amp;quot;Autor&amp;quot;:&amp;quot;Tolkien&amp;quot;, &amp;quot;Preis&amp;quot;:45}&lt;br /&gt;
 buch_1[&amp;quot;Preis&amp;quot;]= 23&lt;br /&gt;
 print(buch_1)&lt;br /&gt;
&lt;br /&gt;
output&lt;br /&gt;
 {'Buch': 'Der Herr der Ringe', 'Autor': 'Tolkien', 'Preis': 23}&lt;br /&gt;
&lt;br /&gt;
====== Element zum Dictionary hinzufügen ======&lt;br /&gt;
* um Elemente zum Dictionary hinzuzufügen ist es notwendig auch gleichzeitig ein key für das Element zu definieren &lt;br /&gt;
* nach dem Listennamen und dem Key in eckigen Klammern folg ein Gleichheitszeichen und der Wert des neuen Elements (s.Beispiel_3)&lt;br /&gt;
&lt;br /&gt;
 #Befehl:&lt;br /&gt;
 dictionary[(neuer) key]= neues Element&lt;br /&gt;
 &lt;br /&gt;
 #Beispiel_3:&lt;br /&gt;
 buch_1={&amp;quot;Buch&amp;quot;:&amp;quot;Der Herr der Ringe&amp;quot;, &amp;quot;Autor&amp;quot;:&amp;quot;Tolkien&amp;quot;, &amp;quot;Preis&amp;quot;:45}&lt;br /&gt;
 &lt;br /&gt;
 buch_1[&amp;quot;Erscheinungsjahr&amp;quot;]= 1954&lt;br /&gt;
 buch_1[&amp;quot;Bewertung&amp;quot;]=&amp;quot;sehr gut&amp;quot;&lt;br /&gt;
 print(buch_1)&lt;br /&gt;
&lt;br /&gt;
output &lt;br /&gt;
 {'Buch': 'Der Herr der Ringe', 'Autor': 'Tolkien', 'Preis': 45, 'Erscheinungsjahr': 1954, 'Bewertung':   'sehr gut'}&lt;br /&gt;
&lt;br /&gt;
====== Element aus Dictionary löschen ======&lt;br /&gt;
* analoger Aufbau zum del-Befehl bei Listen &lt;br /&gt;
* hier wird wieder anstatt der Indexzahl der key in die eckigen Klammern gesetzt (s.Besipiel_4)&lt;br /&gt;
&lt;br /&gt;
 #Befehl:&lt;br /&gt;
 del dictionary[key] &lt;br /&gt;
 &lt;br /&gt;
 #Beispiel_4:&lt;br /&gt;
 buch_1={&amp;quot;Buch&amp;quot;:&amp;quot;Der Herr der Ringe&amp;quot;, &amp;quot;Autor&amp;quot;:&amp;quot;Tolkien&amp;quot;, &amp;quot;Preis&amp;quot;:45}&lt;br /&gt;
 &lt;br /&gt;
 del buch_1[&amp;quot;Preis&amp;quot;]&lt;br /&gt;
 print(buch_1)&lt;br /&gt;
&lt;br /&gt;
output &lt;br /&gt;
 {'Buch': 'Der Herr der Ringe', 'Autor': 'Tolkien'}&lt;br /&gt;
&lt;br /&gt;
=== Tupel ===&lt;br /&gt;
 #Befehl:&lt;br /&gt;
 tupel= element_1, element_2 &amp;lt;br&amp;gt;&lt;br /&gt;
 #Beispiel_1:&lt;br /&gt;
 tier_1=&amp;quot;Hund&amp;quot;,100,399,99,True&amp;lt;br&amp;gt;&lt;br /&gt;
 print(tier_1)&lt;br /&gt;
 print(tier_1[0])&lt;br /&gt;
&lt;br /&gt;
output&lt;br /&gt;
 ('Hund', 100, 399, 99, True)&lt;br /&gt;
 Hund&lt;br /&gt;
&lt;br /&gt;
==== Funktion ==== &lt;br /&gt;
* Tupelo sind unveränderliche Daten, d.h. die Elemente eines Tupels sind im Gegensatz zu Listen und Dictionaries nicht veränderbar oder löschbar &lt;br /&gt;
* sie können jedoch ergänzt werden &lt;br /&gt;
* Tupel werden genutzt, um Daten zu speichern, die nicht geändert werden sollen &lt;br /&gt;
* (man könnte diese natürlich auch in Dictionarie und Listen speichern, so geht man aber sicher, dass die Daten nicht ausersehen geändert werden; außerdem ist die Speicherperformance besser)  &lt;br /&gt;
&lt;br /&gt;
==== Syntax ==== &lt;br /&gt;
* die Erstellung von Tupeln ist analog zur Erstellung von Listen, nur hier werden keine Klammern benötigt (s.Beispiel_1) &lt;br /&gt;
* der Zugriff auf die Elemente des Tupels ist analog zur Syntax bei Listen (s.Beispiel_1)&lt;br /&gt;
&lt;br /&gt;
=====Tupel ausgeben lassen =====&lt;br /&gt;
* sowohl das ausgeben des ganzen Tupels, als auch der einzelnen Elemente folgt der selben Syntax der Listen   &lt;br /&gt;
&lt;br /&gt;
===== Erweiterung eines Tupels =====&lt;br /&gt;
* auch hier ist die Syntax analog zur Erweiterung von Listen&lt;br /&gt;
* das neue Element muss selbst ein Tupel sein, um es zum Tupel hinzufügen zu können &lt;br /&gt;
* dazu muss das neue Element erst als Tupel abgespeichert werden &lt;br /&gt;
* um ein neues Element als Tupel zu speichern, wird ein Tupel mit nur einem Element erstellt &lt;br /&gt;
* nun kann dieser Tupel dem alten hinzugefügt werden (s.Beispiel_2)&lt;br /&gt;
&lt;br /&gt;
 #Beispiel_2:&lt;br /&gt;
 tier_1=&amp;quot;Hund&amp;quot;,100,399,99,True&lt;br /&gt;
 farbe= &amp;quot;braun&amp;quot;,&lt;br /&gt;
 tier_1=tier_1 + farbe&lt;br /&gt;
 print(tier_1)&lt;br /&gt;
&lt;br /&gt;
output&lt;br /&gt;
 ('Hund', 100, 399, 99, True, 'braun')&lt;br /&gt;
&lt;br /&gt;
== Literatur ==&lt;br /&gt;
Michael Bonacina: Python 3 Programmieren für Einsteiger. 2. Auflage. BMU Verlag, Landshut 2019, ISBN: 978-3-96645-007-2&lt;/div&gt;</summary>
		<author><name>Ani</name></author>
	</entry>
	<entry>
		<id>http://wiki.bioinfo.nat.tu-bs.de/index.php?title=2.Datentypen_und_Datenstrukturen&amp;diff=963</id>
		<title>2.Datentypen und Datenstrukturen</title>
		<link rel="alternate" type="text/html" href="http://wiki.bioinfo.nat.tu-bs.de/index.php?title=2.Datentypen_und_Datenstrukturen&amp;diff=963"/>
		<updated>2023-05-28T11:20:13Z</updated>

		<summary type="html">&lt;p&gt;Ani: Formatierung und Kleinigkeiten in 1. Hälfte des Artikels verbessert&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Datentypen ==&lt;br /&gt;
&lt;br /&gt;
In Python unterscheidet man vier verschiedene Datentypen (Klassen):&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Datentyp !! Abkürzung !! Bedeutung  !! Beispiel&lt;br /&gt;
|-&lt;br /&gt;
| String || str || Zeichenkette || &amp;quot;abc&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Integer || int || Ganze Zahl || 1&lt;br /&gt;
|-&lt;br /&gt;
| Float || float || Dezimalzahl || 1.0&lt;br /&gt;
|-&lt;br /&gt;
| Boolean || bool || Wahrheitsgehalt || True, False&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Der Datentyp kann durch den ''type''-Befehl abgefragt werden.&lt;br /&gt;
&amp;lt;br&amp;gt; Beispiel:&lt;br /&gt;
‎&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
sequence = &amp;quot;ACGT&amp;quot;&lt;br /&gt;
result = type(sequence)&lt;br /&gt;
print(result)&lt;br /&gt;
# Output: &amp;lt;class 'str'&amp;gt;&lt;br /&gt;
‎&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Datenstrukturen ==&lt;br /&gt;
&lt;br /&gt;
Man unterscheidet zwischen drei verscheiden Datenstrukturen: &lt;br /&gt;
Listen, Dictionary und Tupel. Alle diese Datenstrukturen stellen Organisationsformen&lt;br /&gt;
von Daten in Python dar. Das heißt sie erleichtern vor allem die Handhabung größerer Datenmengen,&lt;br /&gt;
indem sie diese in geeigneter Form darstellen und speichern. &lt;br /&gt;
Sie unterscheiden sich jedoch in ihrem Aufbau und ihren spezifischen Funktionen.&lt;br /&gt;
&lt;br /&gt;
=== Listen ===&lt;br /&gt;
&lt;br /&gt;
‎&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
#Befehl:&lt;br /&gt;
liste = ['string', variable, 1, 2.0, True]&lt;br /&gt;
&lt;br /&gt;
# Beispiel_1:&lt;br /&gt;
&lt;br /&gt;
hund = ['Hund', 100, 399, 99, True]&lt;br /&gt;
katze = ['Katze', 60, 249, 99, True]&lt;br /&gt;
fisch = ['Fisch', 3, 1, 50, False]&lt;br /&gt;
 &lt;br /&gt;
print(hund)&lt;br /&gt;
print(katze)&lt;br /&gt;
print(fisch)&lt;br /&gt;
&lt;br /&gt;
# output&lt;br /&gt;
# ['Hund', 100, 399, 99, True]&lt;br /&gt;
# ['Katze', 60, 249, 99, True]&lt;br /&gt;
# ['Fisch', 3, 1, 50, False]&lt;br /&gt;
‎&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== Funktion ====&lt;br /&gt;
* haben dieselbe Funktion wie Listen im echten Leben &lt;br /&gt;
* mit Listen können mehrere Werte unter einem Namen abgespeichert werden&lt;br /&gt;
* macht das Programm übersichtlicher und erleichtert die Arbeit, weil nicht jeder einzelne Wert mit einem eigenen Variablennamen gespeichert werden muss&lt;br /&gt;
&lt;br /&gt;
==== Syntax ====&lt;br /&gt;
* die Liste erhält einen Namen, welcher wie eine Variable durch ein Gleichheitszeichen den Elementen der Liste zugeordnet wird&lt;br /&gt;
* die Elemente der Liste werden in eckige Klammern gesetzt und müssen mit einem Komma voneinander getrennt werden &lt;br /&gt;
* in einer Liste können verschiedene Datentypen auf einmal vorkommen&lt;br /&gt;
&lt;br /&gt;
===== Liste ausgeben lassen =====&lt;br /&gt;
* die ganze Liste lässt sich durch einen print-Befehl ausgeben (s. Beispiel_1)&lt;br /&gt;
&lt;br /&gt;
====== einzelne Elemente der Liste ausgeben lassen ======&lt;br /&gt;
* auch einzelne Elemente der Liste können ausgegeben werden (s. Beispiel_2)&lt;br /&gt;
* dabei wird die Position des auszugebenden Elements durch eine Indexzahl in eckigen Klammern nach dem Listennamen angegeben &lt;br /&gt;
* Achtung: grundsätzlich zählt man von 0 ausgehend, d.h. das erste Element in der Liste besitzt die Position 0, das zweite die Position 1 etc.&lt;br /&gt;
* es kann auch von hinten gezählt werden, dabei besitzt das erste Element (welches von vorne gezählt das letzte wäre) die Position -1 usw.&lt;br /&gt;
&lt;br /&gt;
====== Bereich der Liste ausgeben lassen  ======&lt;br /&gt;
* es lässt sich auch ein bestimmter Bereich der Liste ausgeben, wobei die Positionen der Elemente durch einen Doppelpunkt getrennt werden (s.Beispiel_2)&lt;br /&gt;
* die erste Indexzahl schließt die Position des Elements ein, welche ausgegeben wird  (engl. inclusive)&lt;br /&gt;
* die zweite gibt die Position des Elements an, welches nicht mehr im Bereich liegt und demnach nicht ausgegeben wird (engl. exclusive)&lt;br /&gt;
* um die Syntax des Befehls zu verstehen, ist es sinnvoll, die verschiedenen Möglichkeiten einmal selbst auszuprobieren und die Aufgaben 4 und 5 auf dem Aufgabenblatt zu bearbeiten &lt;br /&gt;
‎&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
 # Befehl:&lt;br /&gt;
 print(liste[Position])&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel_2:&lt;br /&gt;
 tier_1 = [&amp;quot;Hund&amp;quot;, 100, 399, 99, True]&lt;br /&gt;
 &lt;br /&gt;
 print(tier_1[0])&lt;br /&gt;
 print(tier_1[1])&lt;br /&gt;
 print(tier_1[-1])&lt;br /&gt;
 print(tier_1[0:4])&lt;br /&gt;
&lt;br /&gt;
# output&lt;br /&gt;
# Hund&lt;br /&gt;
# 100&lt;br /&gt;
# True&lt;br /&gt;
# ['Hund', 100, 399, 99]&lt;br /&gt;
‎‎&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Liste verändern =====&lt;br /&gt;
* wie Variablen sind auch Listen veränderbar, es können Elemente hinzugefügt, geändert und sogar gelöscht werden &lt;br /&gt;
&lt;br /&gt;
====== Element in Liste verändern ======&lt;br /&gt;
* Elemente der Liste lassen sich verändern, genau wie auch der Wert von Variablen neu definiert werden kann &lt;br /&gt;
* dafür schreibt man den Namen der Liste, dahinter eine Indexzahl in eckigen Klammern, wobei die Indexzahl die Position des zu verändernden Elements angibt&lt;br /&gt;
* die Zuweisung des neuen Werts erfolgt durch ein Gleichheitszeichen und den neuen Wert, den das Element der Liste annehmen soll (s. Beispiel_3)&lt;br /&gt;
‎&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
 # Befehl:&lt;br /&gt;
 liste[Position]= neuer_Wert&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel_3:&lt;br /&gt;
 tier_1 = ['Hund', 100, 399, 99, True]&lt;br /&gt;
 print(tier_1)&lt;br /&gt;
 tier_1[0] = &amp;quot;Tiger&amp;quot;&lt;br /&gt;
 tier_1[1] = 500&lt;br /&gt;
 print(tier_1)&lt;br /&gt;
&lt;br /&gt;
# output&lt;br /&gt;
# ['Hund', 100, 399, 99, True]&lt;br /&gt;
# ['Tiger', 500, 399, 99, True]&lt;br /&gt;
‎&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
====== Element zu einer Liste hinzufügen ======&lt;br /&gt;
* Listen können erweitert werden &lt;br /&gt;
* dazu schreibt man den Namen der Liste ein Gleichheitszeichen, erneut den Namen der Liste, ein „+“ und das Element das hinzugefügt werden soll in eckigen Klammern (s. Beispiel_4)&lt;br /&gt;
‎&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
 # Befehl:&lt;br /&gt;
 liste = liste + [neues_Element]&lt;br /&gt;
 &lt;br /&gt;
 # Beispiel_4:&lt;br /&gt;
 tier_1 = ['Hund', 100, 399, 99, True]&lt;br /&gt;
 print(tier_1)&lt;br /&gt;
 tier_1 = tier_1 + [&amp;quot;Elefant&amp;quot;]&lt;br /&gt;
 print(tier_1)&lt;br /&gt;
&lt;br /&gt;
# output&lt;br /&gt;
# ['Hund', 100, 399, 99, True]&lt;br /&gt;
# ['Hund', 100, 399, 99, True, 'Elefant']&lt;br /&gt;
‎&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
====== Element aus Liste löschen ======&lt;br /&gt;
* Elemente lassen sich mit dem del-Befehl aus der Liste entfernen (s.Beispiel_5)&lt;br /&gt;
* nach „del“ folgt der Listenname und die Position des zu löschenden Elements in eckigen Klammern &lt;br /&gt;
&lt;br /&gt;
 Befehl:&lt;br /&gt;
 del liste[]&lt;br /&gt;
 &lt;br /&gt;
 #Beispiel_5:&lt;br /&gt;
 tier_1=[&amp;quot;Hund&amp;quot;,100,399,99,True]&amp;lt;br&amp;gt;&lt;br /&gt;
 del tier_1[1]&lt;br /&gt;
 print(tier_1)&lt;br /&gt;
&lt;br /&gt;
output &lt;br /&gt;
 ['Hund', 399, 99, True]&lt;br /&gt;
&lt;br /&gt;
===== Addition und Multiplikation von Listen =====&lt;br /&gt;
* Listen können miteinander addiert oder mit Zahlen multipliziert werden&lt;br /&gt;
(s. Beispiel_6)&lt;br /&gt;
* werden zwei Listen addiert, wird der Inhalt der Listen hintereinander ausgegeben &lt;br /&gt;
* wird eine Liste mit einer Zahl multipliziert, wird der Inhalt der Liste entsprechend oft hintereinander ausgegeben&lt;br /&gt;
&lt;br /&gt;
 #Beispiel_6:&lt;br /&gt;
 tier_1=[&amp;quot;Hund&amp;quot;,100,399,99,True]&lt;br /&gt;
 tier_2=[&amp;quot;Katze&amp;quot;,60,249,99,True]&lt;br /&gt;
 tier_3=[&amp;quot;Fisch&amp;quot;,3,1 ,50,False]&lt;br /&gt;
 &lt;br /&gt;
 print(tier_1 + tier_2)&lt;br /&gt;
 print(tier_1 *2)&lt;br /&gt;
&lt;br /&gt;
output&lt;br /&gt;
 ['Hund', 100, 399, 99, True, 'Katze', 60, 249, 99, True]&lt;br /&gt;
 ['Hund', 100, 399, 99, True, 'Hund', 100, 399, 99, True]&lt;br /&gt;
&lt;br /&gt;
===== Listen in Listen ===== &lt;br /&gt;
* Elemente einer Liste können selbst eine Liste sein, so erhält man Listen in einer Liste (s.Beispiel_7) &lt;br /&gt;
* es entsteht eine zweidimensionale Liste mit einer übergeordneten Liste (im Beispiel: alle_tiere) und den untergeordneten Listen ( tier_1, tier_2, tier_3) &lt;br /&gt;
* auf die Elemente der übergeordneten Liste lässt sich wie oben gezeigt zugreifen &lt;br /&gt;
* möchte man nur auf ein Element der untergeordneten Liste zugreifen, sind zwei Indexzahlen notwendig&lt;br /&gt;
* die erste Indexzahl gibt die Position des Elements in der übergeordneten Liste an&lt;br /&gt;
* die zweite Indexzahl gibt die Position des Elements in der untergeordneten Liste an (s.Beispiel_7)&lt;br /&gt;
&lt;br /&gt;
 #Befehl:&lt;br /&gt;
 print(liste[Position][Position])&lt;br /&gt;
 &lt;br /&gt;
 #Beispiel_7:&lt;br /&gt;
 tier_1=[&amp;quot;Hund&amp;quot;,100,399,99,True]&lt;br /&gt;
 tier_2=[&amp;quot;Katze&amp;quot;,60,249,99,True]&lt;br /&gt;
 tier_3=[&amp;quot;Fisch&amp;quot;,3,1 ,50,False]&lt;br /&gt;
 &lt;br /&gt;
 alle_tiere=[tier_1, tier_2, tier_3]&lt;br /&gt;
 print(alle_tiere)&lt;br /&gt;
 print(alle_tiere[0])&lt;br /&gt;
 print(alle_tiere[0][0])&lt;br /&gt;
&lt;br /&gt;
output&lt;br /&gt;
 [[&amp;quot;Hund&amp;quot;,100,399,99,True],[&amp;quot;Katze&amp;quot;,60,249,99,True],[&amp;quot;Fisch&amp;quot;,3,1 ,50,False]]&lt;br /&gt;
 ['Hund', 100, 399, 99, True]&lt;br /&gt;
 Hund&lt;br /&gt;
&lt;br /&gt;
=== Dictionaries ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 #Befehl:&lt;br /&gt;
 dictionary={&amp;quot;key_1&amp;quot;:Element_1,&amp;quot;key_2&amp;quot;:Element_2}&lt;br /&gt;
 &lt;br /&gt;
 #Beispiel_1:&lt;br /&gt;
 buch_1={&amp;quot;Buch&amp;quot;:&amp;quot;Der Herr der Ringe&amp;quot;, &amp;quot;Autor&amp;quot;:&amp;quot;Tolkien&amp;quot;, &amp;quot;Preis&amp;quot;:45}&lt;br /&gt;
 &lt;br /&gt;
 print(buch_1) &lt;br /&gt;
 print(buch_1[&amp;quot;Buch&amp;quot;])&lt;br /&gt;
 print(buch_1[&amp;quot;Autor&amp;quot;])&lt;br /&gt;
 print(buch_1[&amp;quot;Preis&amp;quot;])&lt;br /&gt;
&lt;br /&gt;
output&lt;br /&gt;
 {'Buch': 'Der Herr der Ringe', 'Autor': 'Tolkien', 'Preis': 45}&lt;br /&gt;
 Der Herr der Ringe&lt;br /&gt;
 Tolkien&lt;br /&gt;
 45&lt;br /&gt;
&lt;br /&gt;
==== Funktion ====&lt;br /&gt;
Listen sind zwar geeignet, um größere Mengen an Daten in übersichtlicher &lt;br /&gt;
und gut manipulierbarer Weise abzuspeichern, haben aber einen entscheidenden Nachteil.&lt;br /&gt;
Um auf ein Element in einer Liste zugreifen zu können, ist es notwendig die Position &lt;br /&gt;
des Elements in der Liste zu kennen. Bei kürzeren Listen lässt sich vielleicht noch der Überblick behalten. Sobald Listen aber eine gewissen Anzahl an Elementen überschreiten, &lt;br /&gt;
in einem Programm mehrere Listen verwendet werden oder sogar Listen in Listen gespeichert sind, &lt;br /&gt;
ist jeglicher Versuch sich die Positionen der Elemente zu merken vergebens. &lt;br /&gt;
Hier bringen die sogenannten Dictionaries den entscheidenden Vorteil. &lt;br /&gt;
Dictionaries funktionieren wie Listen, wenn es darum geht Informationen abzuspeichern. &lt;br /&gt;
Doch der Zugriff auf die Elemente folgt nicht durch eine Indexnummer sondern über ein sogenannten key oder Schlüsselbegriff. &lt;br /&gt;
Um auf die Elemente über einen key zugreifen zu können, werden den Elementen im Dictionary ein Schlüsselbegriff zugeordnet. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Syntax ====&lt;br /&gt;
* nach dem Namen des Dictionary und dem Gleichheitszeichen folgt eine geschweifte Klammer {}&lt;br /&gt;
* danach folgt der Key, dabei kann es sich um ein integer, float, bool oder string handeln &lt;br /&gt;
* darauf folgt das Listenelement, getrennt durch einen Doppelpunkt vom Key und durch ein Komma vom nächsten Key-Element Paar &lt;br /&gt;
&lt;br /&gt;
===== Dictionary ausgeben lassen =====&lt;br /&gt;
* das ganze Dictionary lässt sich durch einen print-Befehl ausgeben (s. Beispie_1)&lt;br /&gt;
&lt;br /&gt;
====== einzelne Elemente des Dictionaries ausgeben ======&lt;br /&gt;
* der Zugriff erfolgt durch den key &lt;br /&gt;
* die Syntax ist analog zum Abruf der Elemente einer Liste, nur das statt der Indexzahl der key in die eckige Klammer geschrieben wird (s.Beispeil_1)&lt;br /&gt;
&lt;br /&gt;
===== Dictionary verändern =====&lt;br /&gt;
* wie Listen sind auch Dictionaries veränderbar, es können Elemente hinzugefügt, geändert und sogar gelöscht werden&lt;br /&gt;
&lt;br /&gt;
====== Element in Dictionary verändern ======&lt;br /&gt;
* die Syntax ist analog zur Veränderung eines Elements in Listen, nur hier wird der key, statt der Position in die eckigen Klammern hinter dem Namen des Dictionaries gesetzt (s.Beispiel_2)&lt;br /&gt;
&lt;br /&gt;
 #Befehl: &lt;br /&gt;
 dictionary[(bestehender)key]= neuer Wert&amp;lt;br&amp;gt;&lt;br /&gt;
 #Beispiel_2:&lt;br /&gt;
 buch_1={&amp;quot;Buch&amp;quot;:&amp;quot;Der Herr der Ringe&amp;quot;, &amp;quot;Autor&amp;quot;:&amp;quot;Tolkien&amp;quot;, &amp;quot;Preis&amp;quot;:45}&lt;br /&gt;
 buch_1[&amp;quot;Preis&amp;quot;]= 23&lt;br /&gt;
 print(buch_1)&lt;br /&gt;
&lt;br /&gt;
output&lt;br /&gt;
 {'Buch': 'Der Herr der Ringe', 'Autor': 'Tolkien', 'Preis': 23}&lt;br /&gt;
&lt;br /&gt;
====== Element zum Dictionary hinzufügen ======&lt;br /&gt;
* um Elemente zum Dictionary hinzuzufügen ist es notwendig auch gleichzeitig ein key für das Element zu definieren &lt;br /&gt;
* nach dem Listennamen und dem Key in eckigen Klammern folg ein Gleichheitszeichen und der Wert des neuen Elements (s.Beispiel_3)&lt;br /&gt;
&lt;br /&gt;
 #Befehl:&lt;br /&gt;
 dictionary[(neuer) key]= neues Element&lt;br /&gt;
 &lt;br /&gt;
 #Beispiel_3:&lt;br /&gt;
 buch_1={&amp;quot;Buch&amp;quot;:&amp;quot;Der Herr der Ringe&amp;quot;, &amp;quot;Autor&amp;quot;:&amp;quot;Tolkien&amp;quot;, &amp;quot;Preis&amp;quot;:45}&lt;br /&gt;
 &lt;br /&gt;
 buch_1[&amp;quot;Erscheinungsjahr&amp;quot;]= 1954&lt;br /&gt;
 buch_1[&amp;quot;Bewertung&amp;quot;]=&amp;quot;sehr gut&amp;quot;&lt;br /&gt;
 print(buch_1)&lt;br /&gt;
&lt;br /&gt;
output &lt;br /&gt;
 {'Buch': 'Der Herr der Ringe', 'Autor': 'Tolkien', 'Preis': 45, 'Erscheinungsjahr': 1954, 'Bewertung':   'sehr gut'}&lt;br /&gt;
&lt;br /&gt;
====== Element aus Dictionary löschen ======&lt;br /&gt;
* analoger Aufbau zum del-Befehl bei Listen &lt;br /&gt;
* hier wird wieder anstatt der Indexzahl der key in die eckigen Klammern gesetzt (s.Besipiel_4)&lt;br /&gt;
&lt;br /&gt;
 #Befehl:&lt;br /&gt;
 del dictionary[key] &lt;br /&gt;
 &lt;br /&gt;
 #Beispiel_4:&lt;br /&gt;
 buch_1={&amp;quot;Buch&amp;quot;:&amp;quot;Der Herr der Ringe&amp;quot;, &amp;quot;Autor&amp;quot;:&amp;quot;Tolkien&amp;quot;, &amp;quot;Preis&amp;quot;:45}&lt;br /&gt;
 &lt;br /&gt;
 del buch_1[&amp;quot;Preis&amp;quot;]&lt;br /&gt;
 print(buch_1)&lt;br /&gt;
&lt;br /&gt;
output &lt;br /&gt;
 {'Buch': 'Der Herr der Ringe', 'Autor': 'Tolkien'}&lt;br /&gt;
&lt;br /&gt;
=== Tupel ===&lt;br /&gt;
 #Befehl:&lt;br /&gt;
 tupel= element_1, element_2 &amp;lt;br&amp;gt;&lt;br /&gt;
 #Beispiel_1:&lt;br /&gt;
 tier_1=&amp;quot;Hund&amp;quot;,100,399,99,True&amp;lt;br&amp;gt;&lt;br /&gt;
 print(tier_1)&lt;br /&gt;
 print(tier_1[0])&lt;br /&gt;
&lt;br /&gt;
output&lt;br /&gt;
 ('Hund', 100, 399, 99, True)&lt;br /&gt;
 Hund&lt;br /&gt;
&lt;br /&gt;
==== Funktion ==== &lt;br /&gt;
* Tupelo sind unveränderliche Daten, d.h. die Elemente eines Tupels sind im Gegensatz zu Listen und Dictionaries nicht veränderbar oder löschbar &lt;br /&gt;
* sie können jedoch ergänzt werden &lt;br /&gt;
* Tupel werden genutzt, um Daten zu speichern, die nicht geändert werden sollen &lt;br /&gt;
* (man könnte diese natürlich auch in Dictionarie und Listen speichern, so geht man aber sicher, dass die Daten nicht ausersehen geändert werden; außerdem ist die Speicherperformance besser)  &lt;br /&gt;
&lt;br /&gt;
==== Syntax ==== &lt;br /&gt;
* die Erstellung von Tupeln ist analog zur Erstellung von Listen, nur hier werden keine Klammern benötigt (s.Beispiel_1) &lt;br /&gt;
* der Zugriff auf die Elemente des Tupels ist analog zur Syntax bei Listen (s.Beispiel_1)&lt;br /&gt;
&lt;br /&gt;
=====Tupel ausgeben lassen =====&lt;br /&gt;
* sowohl das ausgeben des ganzen Tupels, als auch der einzelnen Elemente folgt der selben Syntax der Listen   &lt;br /&gt;
&lt;br /&gt;
===== Erweiterung eines Tupels =====&lt;br /&gt;
* auch hier ist die Syntax analog zur Erweiterung von Listen&lt;br /&gt;
* das neue Element muss selbst ein Tupel sein, um es zum Tupel hinzufügen zu können &lt;br /&gt;
* dazu muss das neue Element erst als Tupel abgespeichert werden &lt;br /&gt;
* um ein neues Element als Tupel zu speichern, wird ein Tupel mit nur einem Element erstellt &lt;br /&gt;
* nun kann dieser Tupel dem alten hinzugefügt werden (s.Beispiel_2)&lt;br /&gt;
&lt;br /&gt;
 #Beispiel_2:&lt;br /&gt;
 tier_1=&amp;quot;Hund&amp;quot;,100,399,99,True&lt;br /&gt;
 farbe= &amp;quot;braun&amp;quot;,&lt;br /&gt;
 tier_1=tier_1 + farbe&lt;br /&gt;
 print(tier_1)&lt;br /&gt;
&lt;br /&gt;
output&lt;br /&gt;
 ('Hund', 100, 399, 99, True, 'braun')&lt;br /&gt;
&lt;br /&gt;
== Literatur ==&lt;br /&gt;
Michael Bonacina: Python 3 Programmieren für Einsteiger. 2. Auflage. BMU Verlag, Landshut 2019, ISBN: 978-3-96645-007-2&lt;/div&gt;</summary>
		<author><name>Ani</name></author>
	</entry>
	<entry>
		<id>http://wiki.bioinfo.nat.tu-bs.de/index.php?title=1.Einf%C3%BChrung&amp;diff=962</id>
		<title>1.Einführung</title>
		<link rel="alternate" type="text/html" href="http://wiki.bioinfo.nat.tu-bs.de/index.php?title=1.Einf%C3%BChrung&amp;diff=962"/>
		<updated>2023-05-28T11:02:50Z</updated>

		<summary type="html">&lt;p&gt;Ani: Inhaltliche und sprachliche Fehler korrigiert&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Was ist Programmieren? ==&lt;br /&gt;
&lt;br /&gt;
Was ist Programmieren? &lt;br /&gt;
„Programmieren bezeichnet die Tätigkeit, Computerprogramme zu erstellen.“&amp;lt;ref group=&amp;quot;Weblinks&amp;quot;&amp;gt; https://de.wikipedia.org/wiki/Programmierung (Stand:[12.07.21]) &amp;lt;/ref&amp;gt; &lt;br /&gt;
Ein Computerprogramm wird in einer sogenannten Programmiersprache verfasst (wir benutzen dafür Python), welche wie gesprochene Sprachen bestimmten Regeln folgen.&lt;br /&gt;
Diese formalen Regeln, also die einzelnen Befehle und Ausdrücke, aus denen Python aufgebaut ist,&lt;br /&gt;
werden als Syntax bezeichnet.&amp;lt;ref group=&amp;quot;Literatur&amp;quot;&amp;gt; Michael Bonacina: ''Python 3 Programmieren für Einsteiger. 2. Auflage.'' BMU Verlag, Landshut 2019, ISBN: 978-3-96645-007-2 &amp;lt;/ref&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Ein Programm besteht also aus einer Abfolge von Anweisungen, verfasst in einer Programmiersprache. Programme dienen dazu bestimmte Aufgaben zu bearbeiten, Funktionen zu erfüllen oder Probleme zu lösen.&amp;lt;ref group=&amp;quot;Weblinks&amp;quot;&amp;gt; https://de.wikipedia.org/wiki/Computerprogramm  (Stand:[12.07.21]) &amp;lt;/ref&amp;gt;&amp;lt;br&amp;gt;   &lt;br /&gt;
Eine Abfolge von Anweisungen, also eine Verarbeitungsvorschrift, die aus einer endlichen Folge von eindeutig ausführbaren Anweisungen besteht, mit der man eine Vielzahl gleichartiger Aufgaben lösen kann, wird als Algorithmus bezeichnet. So lassen sich mit Hilfe von Algorithmen, &lt;br /&gt;
(ausgedrückt in vielen einzelnen Befehlen der Programmiersprache) komplexe Probleme lösen.&lt;br /&gt;
&lt;br /&gt;
Ein Beispiel dafür ist der Smith-Waterman-Algorithmus. Dabei wird das Problem in viele Unterprobleme aufgeteilt, die nacheinander gelöst werden und als Zwischenergebnisse gespeichert werden.&lt;br /&gt;
Diese Art der algorithmischen Lösung eines (Optimierungs-)Problems wird als dynamische Programmierung bezeichnet,&amp;lt;ref group=&amp;quot;Weblinks&amp;quot;&amp;gt; https://en.wikipedia.org/wiki/Dynamic_programming (Stand:[12.07.21]) &amp;lt;/ref&amp;gt; stellt aber nur eine Art der algorithmischen Programmierung dar.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Eine interpretierte Programmiersprache ==&lt;br /&gt;
&lt;br /&gt;
Ein Programm wird zwar nach den Regeln der Syntax verfasst, der Computer kann aber erstmal nichts mit diesem Programm anfangen. &lt;br /&gt;
Das Programm besteht nämlich aus gewöhnlichem Text (Ziffern, Buchstaben und anderen Zeichen).&lt;br /&gt;
Der Computer arbeitet jedoch mit Anweisungen, die binär als Maschinensprache codiert werden. Bei dieser wird jede einzelne Information als ein Bit dargestellt. &lt;br /&gt;
&lt;br /&gt;
Damit der Computer also ein Programm ausführen kann, muss das Programm in Maschinensprache übersetzt werden. Dafür gibt es zwei Möglichkeiten, die Kompilation oder die Interpretation. &lt;br /&gt;
Bei der Kompilation wird nach Verfassen des Codes, das Programm über eine Zwischenstufe in Anweisungen für den Computer übersetzt. Erst dann erhält man ein ausführbares Programm. &lt;br /&gt;
Bei der Interpretation durch einen Interpreter, findet die Übersetzung in den Binärcode während der Ausführung statt. Bei Python wird ein Interpreter verwendet, darum handelt es sich um eine interpretierte Programmiersprache. Diese Beziehungen sind noch mal übersichtlich in der Präsentationsfolie Seite 16 zu sehen (s. unten). &lt;br /&gt;
Beide Methoden haben Vor- und Nachteileile.&amp;lt;ref group=&amp;quot;Literatur&amp;quot;&amp;gt; Michael Bonacina: ''Python 3 Programmieren für Einsteiger. 2. Auflage.'' BMU Verlag, Landshut 2019, ISBN: 978-3-96645-007-2 &amp;lt;/ref&amp;gt; &lt;br /&gt;
[[File:Beziehung Programmiersprache und Computersprache.png|200px|thumb|center|Kommunikationsdiagramm zwischen Computer und Mensch]]&lt;br /&gt;
&lt;br /&gt;
== Literatur ==&lt;br /&gt;
&amp;lt;references group=&amp;quot;Literatur&amp;quot; /&amp;gt;&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
&amp;lt;references group=&amp;quot;Weblinks&amp;quot; /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ani</name></author>
	</entry>
</feed>