477 lines
12 KiB
Plaintext
477 lines
12 KiB
Plaintext
{
|
||
"cells": [
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"# Grundlegende Datentypen und Operationen"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"## Numerische Typen"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 12,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"42\n",
|
||
"23\n",
|
||
"65\n",
|
||
"19\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"# Ganzzahlen (Integers)\n",
|
||
"\n",
|
||
"a = 42\n",
|
||
"b = 23\n",
|
||
"c = 0x20\n",
|
||
"d = 0b1110101\n",
|
||
"#e = calculate()\n",
|
||
"f = 1_000_000\n",
|
||
"print(a)\n",
|
||
"print(b)\n",
|
||
"print(a + b)\n",
|
||
"print(a - b)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 13,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"3.14159\n",
|
||
"<class 'float'>\n",
|
||
"2.71828\n",
|
||
"8.539721265199999\n",
|
||
"<class 'float'>\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"# Fließkommazahlen (Floats)\n",
|
||
"\n",
|
||
"pi = 3.14159\n",
|
||
"e = 2.71828\n",
|
||
"print(pi)\n",
|
||
"print(type(pi))\n",
|
||
"print(e)\n",
|
||
"x = pi * e\n",
|
||
"print(x)\n",
|
||
"print(type(x))"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 14,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"3 1.5 4.5\n",
|
||
"<class 'float'>\n",
|
||
"<class 'float'>\n",
|
||
"0.16666666666666666\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"# Implizite Umwandlung von numerischen Typen\n",
|
||
"\n",
|
||
"i = 3\n",
|
||
"f = 1.5\n",
|
||
"summe = i + f\n",
|
||
"print(i, f, summe)\n",
|
||
"print(type(summe))\n",
|
||
"print(type(e))\n",
|
||
"z = 1\n",
|
||
"n = 6\n",
|
||
"print(z / n)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 15,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"2\n",
|
||
"999\n",
|
||
"144\n",
|
||
"8.0\n",
|
||
"3.8\n",
|
||
"1.0\n",
|
||
"23.799999999999997\n",
|
||
"0.3333333333333333\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"# Grundrechenarten\n",
|
||
"\n",
|
||
"# Integer\n",
|
||
"print(1 + 1)\n",
|
||
"print(1_000 - 1)\n",
|
||
"print(12 * 12) # Vorsicht: Asterisk (\"Sternchen\"), nicht x)\n",
|
||
"print(64 / 8)\n",
|
||
"\n",
|
||
"# Floats\n",
|
||
"print(0.5 + 3.3)\n",
|
||
"print(1.99 - 0.99)\n",
|
||
"print(20.0 * 1.19)\n",
|
||
"print(1.0 / 3.0)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 16,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"64\n",
|
||
"512\n",
|
||
"512\n",
|
||
"285.0043245227213\n",
|
||
"285.0043245227213\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"# X hoch Y\n",
|
||
"\n",
|
||
"x = 8\n",
|
||
"x2 = x ** 2\n",
|
||
"print(x2)\n",
|
||
"print(x ** 3)\n",
|
||
"print(pow(x, 3))\n",
|
||
"\n",
|
||
"print(x ** e)\n",
|
||
"print(pow(x, e)) # pow akzeptiert integer und floats"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 17,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"1\n",
|
||
"<class 'int'>\n",
|
||
"1.2345 1\n",
|
||
"0.23449999999999993\n",
|
||
"-2\n",
|
||
"2.35\n",
|
||
"2\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"# Modulo\n",
|
||
"\n",
|
||
"x = 10\n",
|
||
"y = 3\n",
|
||
"rest = x % 3\n",
|
||
"print(rest)\n",
|
||
"print(type(rest))\n",
|
||
"f = 1.2345\n",
|
||
"i = int(f)\n",
|
||
"print(f, i)\n",
|
||
"print(f % 1)\n",
|
||
"print(int(-2.3456))\n",
|
||
"print(round(2.3455, 2))\n",
|
||
"import math\n",
|
||
"print(math.floor(2.345))"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"# Strings"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 18,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Dies ist ein String!\n",
|
||
"Man kann einfache oder doppelte Anführungszeichen verwenden.\n",
|
||
"Innerhalb der Anführungszeichen kann man den jeweils \"anderen Typ\" verwenden\n",
|
||
"Oder 'andersherum'.\n",
|
||
"Alternativ kann man eine Backslash 'als' \"Escape\"-Zeichen verwenden\n",
|
||
"String-Literale, die direkt hintereinander, durch Leerzeichen getrennt, stehenwerden zusammengefügt.\n",
|
||
"Mit Klammerung klappt das auch über mehrere Zeilen hinweg\n",
|
||
"['joe', 'bob', 'alice', 'jenny']\n",
|
||
"['joe', 'bob', 'alice', 'jenny']\n",
|
||
"['joe', 'bob', 'alice', 'jenny']\n",
|
||
"['joe', 'bob', 'alice', 'jenny']\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"s = \"Dies ist ein String!\"\n",
|
||
"print(s)\n",
|
||
"s2 = 'Man kann einfache oder doppelte Anführungszeichen verwenden.'\n",
|
||
"print(s2)\n",
|
||
"s3a = 'Innerhalb der Anführungszeichen kann man den jeweils \"anderen Typ\" verwenden'\n",
|
||
"print(s3a)\n",
|
||
"s3b = \"Oder 'andersherum'.\"\n",
|
||
"print(s3b)\n",
|
||
"s4 = \"Alternativ kann man eine Backslash \\'als\\' \\\"Escape\\\"-Zeichen verwenden\"\n",
|
||
"print(s4)\n",
|
||
"s5 = \"String-Literale\" \", die direkt hintereinander\" \", durch Leerzeichen getrennt, stehen\" \"werden zusammengefügt.\"\n",
|
||
"print(s5)\n",
|
||
"s6 = (\"Mit Klammerung klappt das auch \"\n",
|
||
" \"über mehrere Zeilen \"\n",
|
||
" \"hinweg\")\n",
|
||
"print(s6)\n",
|
||
"l = [\n",
|
||
" \"joe\",\n",
|
||
" \"bob\",\n",
|
||
" \"alice\",\n",
|
||
" \"jenny\"\n",
|
||
"]\n",
|
||
"print(l)\n",
|
||
"print(l)\n",
|
||
"print(l)\n",
|
||
"print(l)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 19,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Dies ist ein langer String (\"triple quoted string\").\n",
|
||
"Er kann Zeilenumbrüche enthalten.\n",
|
||
"\n",
|
||
"Und Leerzeilen.\n",
|
||
"\n",
|
||
"Und auch 'einfache' oder \"doppelte\" Anführungszeichen.\n",
|
||
"\n",
|
||
"Er endet mit drei weiteren Anführungszeichen des gleichen Typs.\n",
|
||
"\n",
|
||
"'Dies ist ein langer String (\"triple quoted string\").\\nEr kann Zeilenumbrüche enthalten.\\n\\nUnd Leerzeilen.\\n\\nUnd auch \\'einfache\\' oder \"doppelte\" Anführungszeichen.\\n\\nEr endet mit drei weiteren Anführungszeichen des gleichen Typs.\\n'\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"# Längere Strings\n",
|
||
"\n",
|
||
"long_string = '''Dies ist ein langer String (\"triple quoted string\").\n",
|
||
"Er kann Zeilenumbrüche enthalten.\n",
|
||
"\n",
|
||
"Und Leerzeilen.\n",
|
||
"\n",
|
||
"Und auch 'einfache' oder \"doppelte\" Anführungszeichen.\n",
|
||
"\n",
|
||
"Er endet mit drei weiteren Anführungszeichen des gleichen Typs.\n",
|
||
"'''\n",
|
||
"print(long_string)\n",
|
||
"print(repr(long_string))\n",
|
||
"s = 'Dies ist ein langer String (\"triple quoted string\").\\nEr kann Zeilenumbrüche enthalten.\\n\\nUnd Leerzeilen.\\n\\nUnd auch \\'einfache\\' oder \"doppelte\" Anführungszeichen.\\n\\nEr endet mit drei weiteren Anführungszeichen des gleichen Typs.\\n'"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 20,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Erste Zeile\n",
|
||
"Zweite Zeile\n",
|
||
"Eine Zeile\n",
|
||
"Noch eine Zeile\n",
|
||
"Eins\tZwei\tDrei\n",
|
||
"1\t2\t3\n",
|
||
"'Dieser String enthält ein\\x00Null-Zeichen'\n",
|
||
"Hexadezimal-Codes können wir druckbare (e.g. '@') und nicht druckbare Zeichen (e.g. ) verwendet werden.\n",
|
||
"❤\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"# Escape Sequenzen\n",
|
||
"\n",
|
||
"# Zeilenumbrüche und Tabs\n",
|
||
"print(\"Erste Zeile\\r\\nZweite Zeile\") # Zeilenumbruch nach Windows-Art \n",
|
||
"print(\"Eine Zeile\\nNoch eine Zeile\") # Rest der Welt ;-)\n",
|
||
"print(\"Eins\\tZwei\\tDrei\")\n",
|
||
"print(\"1\\t2\\t3\")\n",
|
||
"\n",
|
||
"# Null und Hexadezimal- und Unicode-Sequenzen\n",
|
||
"print(repr(\"Dieser String enthält ein\\0Null-Zeichen\"))\n",
|
||
"print(\"Hexadezimal-Codes können wir druckbare (e.g. '\\x40') und nicht druckbare Zeichen (e.g. \\x7F) verwendet werden.\")\n",
|
||
"print('\\u2764') # Unicode"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 21,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Dies ist der erste String.Und dies der zweite.\n",
|
||
"Ich habe es dir schon dreimal gesagt! Ich habe es dir schon dreimal gesagt! Ich habe es dir schon dreimal gesagt! \n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"# String-Operationen\n",
|
||
"\n",
|
||
"s1 = \"Dies ist der erste String.\"\n",
|
||
"s2 = \"Und dies der zweite.\"\n",
|
||
"s3 = s1 + s2\n",
|
||
"print(s3)\n",
|
||
"s4 = \"Ich habe es dir schon dreimal gesagt! \"\n",
|
||
"print(s4 * 3)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 22,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"SCHREI NICHT SO LAUT!\n",
|
||
"True\n",
|
||
"True\n",
|
||
"True\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"klein = \"schrei nicht so laut!\"\n",
|
||
"print(klein.upper())\n",
|
||
"print(\"hallo\" == \"HALLO\".lower())\n",
|
||
"print(\"hallo\" == \"Hallo\".lower())\n",
|
||
"print(\"straße\".upper() == \"STRASSE\")\n"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 23,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Hallo\n",
|
||
"a\n",
|
||
"Hello\n",
|
||
"hellohellohello\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"hallo = \"Hallo\"\n",
|
||
"print(hallo)\n",
|
||
"print(hallo[1])\n",
|
||
"hello = hallo[0] + 'e' + hallo[2:]\n",
|
||
"print(hello)\n",
|
||
"print(\"hello\" * 3)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 24,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"ename": "TypeError",
|
||
"evalue": "'str' object does not support item assignment",
|
||
"output_type": "error",
|
||
"traceback": [
|
||
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
|
||
"\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)",
|
||
"\u001b[1;32m/home/chris/work/python-kurs-softed/notebooks/basictypes.ipynb Cell 16\u001b[0m line \u001b[0;36m3\n\u001b[1;32m <a href='vscode-notebook-cell:/home/chris/work/python-kurs-softed/notebooks/basictypes.ipynb#X21sZmlsZQ%3D%3D?line=0'>1</a>\u001b[0m \u001b[39m# Aber das geht nicht!:\u001b[39;00m\n\u001b[0;32m----> <a href='vscode-notebook-cell:/home/chris/work/python-kurs-softed/notebooks/basictypes.ipynb#X21sZmlsZQ%3D%3D?line=2'>3</a>\u001b[0m hallo[\u001b[39m1\u001b[39;49m] \u001b[39m=\u001b[39m \u001b[39m'\u001b[39m\u001b[39me\u001b[39m\u001b[39m'\u001b[39m\n\u001b[1;32m <a href='vscode-notebook-cell:/home/chris/work/python-kurs-softed/notebooks/basictypes.ipynb#X21sZmlsZQ%3D%3D?line=4'>5</a>\u001b[0m \u001b[39m# Strings sind immutable!\u001b[39;00m\n",
|
||
"\u001b[0;31mTypeError\u001b[0m: 'str' object does not support item assignment"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"# Aber das geht nicht!:\n",
|
||
"\n",
|
||
"hallo[1] = 'e'\n",
|
||
"\n",
|
||
"# Strings sind immutable!"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"i = 3.141\n",
|
||
"i: int = 42"
|
||
]
|
||
}
|
||
],
|
||
"metadata": {
|
||
"kernelspec": {
|
||
"display_name": "softed",
|
||
"language": "python",
|
||
"name": "softed"
|
||
},
|
||
"language_info": {
|
||
"codemirror_mode": {
|
||
"name": "ipython",
|
||
"version": 3
|
||
},
|
||
"file_extension": ".py",
|
||
"mimetype": "text/x-python",
|
||
"name": "python",
|
||
"nbconvert_exporter": "python",
|
||
"pygments_lexer": "ipython3",
|
||
"version": "3.11.8"
|
||
}
|
||
},
|
||
"nbformat": 4,
|
||
"nbformat_minor": 2
|
||
}
|