diff --git a/uebungen.ipynb b/uebungen.ipynb index ed0534a..6147918 100644 --- a/uebungen.ipynb +++ b/uebungen.ipynb @@ -602,7 +602,28 @@ "metadata": {}, "outputs": [], "source": [ - "# Fuegen Sie hier Ihren Code ein." + "# Fuegen Sie hier Ihren Code ein.\n", + "breite = 0\n", + "laenge = 0\n", + "\n", + "while breite <= 0:\n", + " breite = int(input('Geben Sie die Breite ein: '))\n", + "\n", + "while laenge <= 0:\n", + " laenge = int(input('Geben Sie die Länge ein: '))\n", + "\n", + "zahl1 = breite\n", + "zahl2 = laenge\n", + "\n", + "while zahl2 != 0:\n", + " rest = zahl1 % zahl2\n", + " zahl1 = zahl2\n", + " zahl2 = rest\n", + "\n", + "platten_groesse = zahl1\n", + "anzahl_platten = int((laenge * breite) / (platten_groesse*platten_groesse))\n", + "\n", + "print(f'Für eine Fläche der Größe {breite} x {laenge} werden {anzahl_platten} Platten mit einer Größe von {platten_groesse} x {platten_groesse} benötigt.')" ] }, { @@ -612,6 +633,26 @@ "## 3. [Aufgabengruppe Listen](#toc0_)" ] }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "array = [1, 5, 7, [6, 3], 'a', 7.5]\n", + "print(array)\n", + "\n", + "print(array[0])\n", + "print(array[-1])\n", + "print(len(array))\n", + "\n", + "for entry in array:\n", + " print(f'entry={entry}')\n", + "\n", + "print(array[3])\n", + "print(array[3][0])" + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -653,7 +694,31 @@ "source": [ "liste = [3, 'ein Wort', 2.8, 2, 'noch ein Wort', 6, 3.2, 4, '2']\n", "\n", - "# Fügen Sie hier Ihren Code ein" + "# Fügen Sie hier Ihren Code ein\n", + "\n", + "# Lösung 1\n", + "\n", + "sum_var = 0\n", + "count = 0\n", + "\n", + "for entry in liste:\n", + " if type(entry) == int or type(entry) == float:\n", + " sum_var += entry\n", + " count += 1\n", + "\n", + "print(sum_var / count)\n", + "\n", + "# Lösung 2\n", + "zahlen_liste = [entry for entry in liste if type(entry) == int or type(entry) == float]\n", + "\n", + "# zahlen_liste = []\n", + "# for entry in liste:\n", + "# if type(entry) == int or type(entry) == float:\n", + "# zahlen_liste.append(entry)\n", + "\n", + "print(zahlen_liste)\n", + "\n", + "print(sum(zahlen_liste)/len(zahlen_liste))" ] }, { @@ -678,7 +743,9 @@ "source": [ "liste = [1, 'ein Wort', 2.5, 2, 'noch ein Wort', 6, 3.333, 4, '2']\n", "\n", - "# Fügen Sie hier Ihren Code ein" + "# Fügen Sie hier Ihren Code ein\n", + "for entry in liste[::-2]:\n", + " print(entry)\n" ] }, { @@ -701,7 +768,9 @@ "source": [ "liste = [1, 'ein Wort', 2.5, 2, 'noch ein Wort', 6, 3.333, 4, '2']\n", "\n", - "# Fügen Sie hier Ihren Code ein" + "# Fügen Sie hier Ihren Code ein\n", + "print(sum([entry for entry in liste \n", + " if type(entry) in [int, float] and entry % 2 == 0]))" ] }, { @@ -728,7 +797,24 @@ "metadata": {}, "outputs": [], "source": [ - "# Fügen Sie hier Ihren Code ein." + "# Fügen Sie hier Ihren Code ein.\n", + "# tupel = (1, 2)\n", + "# liste = [1, 2]\n", + "\n", + "# zahl1, zahl2 = tupel\n", + "\n", + "# print(zahl1)\n", + "# print(zahl2)\n", + "\n", + "# liste[0] = 12\n", + "\n", + "artikel = [ \"Klopapier\", \"Maske\", \"Desinfektionsmittel\" ]\n", + "preis = [ 3.5, 2.25, 7.4 ]\n", + "\n", + "print(list(zip(artikel, preis)))\n", + "\n", + "for einzel_artikel, einzel_preis in zip(artikel, preis):\n", + " print(f'{einzel_artikel} kostet {einzel_preis}')" ] }, { @@ -752,6 +838,20 @@ " print(f'{elem1} -> {elem2}')" ] }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "liste = [5, 4, 3, 2, 1]\n", + "\n", + "print(list(enumerate(liste)))\n", + "\n", + "for idx, eintrag in enumerate(liste, 1):\n", + " print(f'{idx}: {eintrag}')" + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -784,7 +884,16 @@ "start_zeiten = [100, 200, 400, 580, 720]\n", "ziel_zeiten = [111, 220, 415, 605, 732]\n", "\n", - "# Fügen Sie hier Ihren Code ein." + "#diff_zeiten = [end_zeit - start_zeit for start_zeit, end_zeit in zip(start_zeiten, ziel_zeiten)]\n", + "\n", + "print(list(zip(start_zeiten, ziel_zeiten)))\n", + "print(list(enumerate(zip(start_zeiten, ziel_zeiten), 1)))\n", + "\n", + "# Fügen Sie hier Ihren Code ein.\n", + "for idx, (start_zeit, end_zeit) in enumerate(zip(start_zeiten, ziel_zeiten), 1):\n", + " diff_zeit = end_zeit - start_zeit\n", + " geschw = 3.6 * 100 / diff_zeit\n", + " print(f'Der {idx}. Läufer brauchte {diff_zeit} Sekunden ({geschw:.2f} km/h) für die Strecke.')" ] }, { @@ -809,7 +918,11 @@ "metadata": {}, "outputs": [], "source": [ - "# Fügen Sie hier Ihren Code ein." + "# Fügen Sie hier Ihren Code ein.\n", + "string = input('Geben Sie etwas ein: ')\n", + "anfangs = list(set([word[0] for word in string.split()]))\n", + "anfangstext = ''.join(anfangs)\n", + "print(anfangstext)" ] }, { @@ -828,7 +941,7 @@ "source": [ "zeichenkette = 'Dieser Text enthält mehrere Wörter, einige davon beginnen mit Vokalen. Ein Wort, das mit einem Vokal beginnt, ist Ameise. Dieses Wort soll also entfernt werden.'\n", "\n", - "kopie = # Fügen Sie ab hier Ihren Code ein.\n", + "kopie = ' '.join([wort for wort in zeichenkette.split() if wort[0].lower() in 'aeiou'])\n", "\n", "print(kopie)" ] @@ -856,7 +969,12 @@ "metadata": {}, "outputs": [], "source": [ - "# Fügen Sie hier Ihren Code ein." + "# Fügen Sie hier Ihren Code ein.\n", + "satz = input('Geben Sie bitte einen Satz ein: ')\n", + "zu_ersetzen = input('Geben Sie bitte einen Teil der Zeichenkette ein, der ersetzt werden soll: ')\n", + "ersetzung = input('Geben Sie bitte die Zeichenkette ein, die dafür eingefügt werden soll: ')\n", + "erg_satz = satz.replace(zu_ersetzen, ersetzung)\n", + "print(erg_satz)" ] }, { @@ -891,7 +1009,9 @@ "metadata": {}, "outputs": [], "source": [ - "# Fügen Sie hier Ihren Code ein." + "# Fügen Sie hier Ihren Code ein.\n", + "satz = input('Geben Sie einen Satz ein: ')\n", + "print(satz.replace(' ', '').lower() == satz.lower().replace(' ', '')[::-1])" ] }, { @@ -926,7 +1046,18 @@ "metadata": {}, "outputs": [], "source": [ - "# Fügen Sie hier Ihren Code ein." + "# Fügen Sie hier Ihren Code ein.\n", + "\n", + "zahlen_woerter = ['null', 'eins', 'zwei', 'drei', 'vier', 'fünf', 'sechs', 'sieben', 'acht', 'neun', 'zehn']\n", + "\n", + "satz = input('Geben Sie einen Satz ein: ')\n", + "\n", + "summe = 0\n", + "\n", + "for idx, zahlen_wort in enumerate(zahlen_woerter):\n", + " summe += satz.lower().count(zahlen_wort) * idx\n", + "\n", + "print(summe)" ] }, { @@ -953,7 +1084,11 @@ "source": [ "# Fügen Sie hier Ihren Code für die Funktion ein.\n", "\n", - "print(schnittmenge([1, 2, 3, 10], [3, 4, 1]))" + "def schnittmenge(liste1: list, liste2: list) -> list:\n", + " return [elem for elem in liste1 if elem in liste2]\n", + "\n", + "print(schnittmenge([1, 2, 3, 10], [3, 4, 1]))\n", + "schnittmenge(liste1=[1, 2], liste2=[2, 3])" ] }, {