Commit 9e5ab29b by r.grosso

### Add exercise with case insensitive sorting

parent 3071c57c
 %% Cell type:markdown id: tags: ### Aufgabe 1 b) In Python 2 benutze raw_input für Strings und input für Integers, in Python 3 input und eval(input) %% Cell type:code id: tags:  python name = input("Please enter your name:") name = raw_input("Schreibe deinen Namen, bitte:") age = int(input("Hallo ", name, ". In welchem Jahr bist du geboren? ")) import datetime now = datetime.datetime.now() age = now.year - age print("Du bist ", age, " Jahre alt (oder wirst dieses Jahr werden)")  %% Output Please enter your name:FA --------------------------------------------------------------------------- NameError Traceback (most recent call last) in () ----> 1 name = input("Please enter your name:") 2 3 age = int(input("Hallo ", name, ". In welchem Jahr bist du geboren? ")) 4 5 import datetime /home/rgrosso/.local/lib/python2.7/site-packages/ipykernel/ipkernel.pyc in (prompt) 162 self._sys_eval_input = builtin_mod.input 163 builtin_mod.raw_input = self.raw_input --> 164 builtin_mod.input = lambda prompt='': eval(self.raw_input(prompt)) 165 self._save_getpass = getpass.getpass 166 getpass.getpass = self.getpass /home/rgrosso/.local/lib/python2.7/site-packages/ipykernel/ipkernel.pyc in () NameError: name 'FA' is not defined %% Cell type:markdown id: tags: ### Aufgabe 2 a) %% Cell type:code id: tags:  python liste = [] for _ in range(10): liste.append(int(input())) gerade_liste = [x for x in liste if x%2==0 ] str(gerade_liste)  %% Cell type:markdown id: tags: ### Aufgabe 2 b) %% Cell type:code id: tags:  python sentence = input("Please write your sentence:") sentence = raw_input("Please write your sentence:") revsentence = ' '.join(sentence.split()[::-1]) print(revsentence)  %% Output Please write your sentence:"a b c d e" e d c b a %% Cell type:markdown id: tags: ### Aufgabe 2 c) ### Aufgabe 2 c), d) %% Cell type:code id: tags:  python sentence = input("Please write your sentence:") alpha_ordered = sorted(sentence.split()) sentence = raw_input("Please write your sentence:") alpha_ordered = sorted(sentence.split(), key = lambda v: v.lower()) rev_alpha_ordered = ' '.join(alpha_ordered[::-1]) print(rev_alpha_ordered)  %% Output Please write your sentence:"aa ab ba df fa el la id un nu" un nu la id fa el df ba ab aa Please write your sentence:"Un asdf lsf Lsf Asdia um" Un um Lsf lsf Asdia asdf %% Cell type:markdown id: tags: ### Aufgabe 2 d) ### Aufgabe 2 e) %% Cell type:code id: tags:  python birthMonths = {"Einstein":3, "Hawking":1, "Newton":1, "Franklin":1, "Darwin":2, "Curie":11, "Pasteur":12, "Copernicus":1, "Fleming":8, "Nobel":10, "Mendelev":2, "Bohr":10, "Mendel":7, "Faraday":9, "Watson":4, "Hubble":11, "Feynman":5, "Rutherford":8} month = input("Choose a name:") print(birthMonths[month]) name = raw_input("Choose a scientist name:") if isinstance(name, str): try: print(birthMonths[name]) except KeyError: print("Invalid name") else: print("Enter the chosen name in quotes")  %% Output Choose a name:"Nobel" 10 Choose a scientist name:Darwin 2 %% Cell type:markdown id: tags: ### Aufgabe 3 a) %% Cell type:code id: tags:  python import random print("Rate eine Zahl zwischen 0 und 9. Schreibe \"exit\" um zu stoppen.") for _ in range(10): rndnum = random.randint(0,9) usernum = (input("Rate mal: ")) if usernum == "exit" or usernum == "Exit": print("Bis nächstes Mal ...") break try: usernum = int(usernum) except ValueError: print(usernum + " ist keine Zahl!") if usernum < 0 or usernum > 9: print("Gültige Zahlen sind zwischen 0 und 9!") elif rndnum == usernum: print("************** Gut geraten! ************") break else: print("Sorry, die Zahl war: " + str(rndnum)) print("Versuch nochmal!") if _ == 9: print("Zuviele Versuche! Bis nächstes Mal ...")  %% Output Rate eine Zahl zwischen 0 und 9. Schreibe "exit" um zu stoppen. Rate mal: 3 Sorry, die Zahl war: 2 Versuch nochmal! Rate mal: 4 Sorry, die Zahl war: 1 Versuch nochmal! Rate mal: 5 Sorry, die Zahl war: 6 Versuch nochmal! Rate mal: 6 Sorry, die Zahl war: 4 Versuch nochmal! Rate mal: 7 Sorry, die Zahl war: 0 Versuch nochmal! Rate mal: 8 Sorry, die Zahl war: 3 Versuch nochmal! Rate mal: 9 Sorry, die Zahl war: 1 Versuch nochmal! Rate mal: 2 ************** Gut geraten! ************ %% Cell type:markdown id: tags: ### Aufgabe 4 a) %% Cell type:code id: tags:  python in_file_str = "sampletext.txt" out_file_str = "sampletext_nonewlines.txt" try: with open(in_file_str) as input_file: try: with open(out_file_str, 'w') as output_file: for line in input_file: output_file.write(line.replace('\n',' ')) except: print("Cannot open output file " + out_file_str + "!") except: print("Input file " + in_file_str + " with text expected!")  %% Cell type:markdown id: tags: ### Aufgabe 4 b) %% Cell type:code id: tags:  python import json in_out_file = "geburts_daten.json" # First write the dictionary to file with open(in_out_file, 'w') as datenFile: json.dump(birthMonths, datenFile) # We read the dictionary from file into a new dictionary with open(in_out_file,'r') as datenFile: udBirths = json.load(datenFile) while True: name = input("Schreibe einen neuen Namen zu hinzufügen, sonst 'exit':") if name == 'exit' or name == 'Exit': break else: bmonth = input("Schreibe die entsprechende Geburtsmonate als Nummer: ") udBirths[name] = bmonth with open(in_out_file, 'w') as datenFile: json.dump(udBirths, datenFile)  %% Output Schreibe einen neuen Namen zu hinzufügen, sonst 'exit':"Maxwell" Schreibe die entsprechende Geburtsmonate als Nummer: 6 Schreibe einen neuen Namen zu hinzufügen, sonst 'exit':'exit' %% Cell type:code id: tags:  python print(udBirths.values())  %% Output [1, 11, 1, 1, 11, 6, 8, 2, 8, 10, 5, 4, 1, 2, 3, 7, 9, 10, 12] %% Cell type:markdown id: tags: ### Aufgabe 5 a) %% Cell type:code id: tags:  python import matplotlib.pyplot as plt %matplotlib inline import numpy as np labels = ['Jan', 'Feb', 'Mär', 'Apr', 'Mai', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'] plt.hist(udBirths.values(), np.arange(0.5, 12.51, 1.0)) #plt.xticks([1,2,3,4,5,6,7,8,9,10,11,12], labels, rotation='vertical') #plt.hist(udBirths.values(), 12)  %% Output (array([4., 2., 1., 1., 1., 1., 1., 2., 1., 2., 2., 1.]), array([ 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5, 10.5, 11.5, 12.5]), ) %% Cell type:markdown id: tags: ### Aufgabe 6 a) %% Cell type:code id: tags:  python def ungerade(size): print(size * " ---") def gerade(size): print(size * "| " + "|") size = input("Wie groß soll der Spielbrett sein? ") for _ in range(size): ungerade(size) gerade(size) ungerade(size)  %% Output Wie groß soll der Spielbrett sein? 10 --- --- --- --- --- --- --- --- --- --- | | | | | | | | | | | --- --- --- --- --- --- --- --- --- --- | | | | | | | | | | | --- --- --- --- --- --- --- --- --- --- | | | | | | | | | | | --- --- --- --- --- --- --- --- --- --- | | | | | | | | | | | --- --- --- --- --- --- --- --- --- --- | | | | | | | | | | | --- --- --- --- --- --- --- --- --- --- | | | | | | | | | | | --- --- --- --- --- --- --- --- --- --- | | | | | | | | | | | --- --- --- --- --- --- --- --- --- --- | | | | | | | | | | | --- --- --- --- --- --- --- --- --- --- | | | | | | | | | | | --- --- --- --- --- --- --- --- --- --- | | | | | | | | | | | --- --- --- --- --- --- --- --- --- --- %% Cell type:code id: tags:  python  ... ...
 ... ... @@ -40,6 +40,7 @@ \item Schreibe ein Programm, welches die Worte eines Satz, der im Terminal eingegeben wird, in umgekehrter Reihenfolge wieder ausgibt. \Hinweis{Benutze \texttt{[::-1]} als besondere \textit{extended slice syntax}''} \\ \Hinweis{\textit{Das ist ein Haus.}'' wird zu \textit{Haus ein ist Das.}''}. \item Schreibe ein Programm, welches alle Worte eines Satzes, der im Terminal eingegeben wird, in umgekehrter alphabetischer Ordnung ausgibt. \item Wie in der vorherigen Übung, aber Groß- und Kleinschreibung werden nicht unterschieden. \Hinweis{\texttt{sort} oder \texttt{sorted} können als \texttt{key=}'' Argument eine Lambda-Funktion gegeben werden \ldots} \item Schreibe ein Programm, welches ein Schlüsselwert-Verzeichnis (\textit{dictionary}) mit z.B. zehn Name => Geburtsmonate Schlüssel-Wert-Paaren enthält. Das Programm gibt die Geburtsmonate für den vom User über das Terminal gewählten Namen aus. \end{enumerate} ... ...
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!