Python II Hausaufgaben

1.Baue eine Funktion mit dem Namen 'double', der die Zahl 5 vedoppelt:


In [2]:
def double(x):
    return x*2

In [3]:
double(1.5)


Out[3]:
3.0

2.Baue einen for-loop, der durch vordefinierte Zahlen-list geht, und mithilfe der eben kreierten eigenen Funktion, alle Resultate verdoppelt ausdruckt.


In [4]:
#RaphiTipps: Algebra und Logik trennen und wissen, was eine Variable gerade für ein Typ ist.
lst = list(range(1,5))
for elem in lst:
    print(double(elem))


2
4
6
8

In [13]:
doubleloop(lst)


Out[13]:
[1, 2, 3, 4, 1, 2, 3, 4]

In [3]:
type(lst)


Out[3]:
list

3.Entwickle einen Code, der den Nutzer nach der Länge seinem Namen fragt, und ihm dann sagt, wieviele Zeichen sein Name hat.


In [59]:
def namelenght(yourbloodyname):
    elem = input("Sag mir, wie du heisst und ich sag dir, wie viele Freund du hast: ")
    if elem in yourbloodyname:
        return(len(elem))

In [60]:
namelenght("Philippe")


Sag mir, wie du heisst und ich sag dir, wie viele Freund du hast: Philippe
Out[60]:
8

In [7]:
name = input("Sags mir!: ")
print("your name has " + str(len(name)) + " letters")

4.Entwickle eine Funktion mit dem Namen km_rechner, der für die untenaufgeführten automatisch die Umrechung von Meilen in km durchführt und gerundet auf eine Kommastelle anzeigt.


In [10]:
def km_rechner(miles):
    return (print("%.1f" % (miles*1.609344)))
#das "print" führt dazu, dass auch alle Ergebnisse angezeigt werden.

In [9]:
km_rechner(5)
km_rechner(123)
km_rechner(53)


8.0
197.9
85.3

In [66]:
km_rechner(1)


Out[66]:
'1.6'

In [ ]:
def km_rechner2(miles):
    result = ("%.1f" % (miles*1.609344))
    return result

In [ ]:
#der km_rechner2 macht genau das gleiche. Es gibt nur den Zwischenschritt, in dem "result" noch definiert wird.
#das macht den Code übersichtlicher.

5.Wir haben in einem Dictionary mit Massen, die mit ganz unterschiedlichen Formaten daherkommen. Entwickle eine Funktion namens m_converter, die diese Formate berücksichtigt, und in Meter umwandelt.


In [13]:
#Unsere Formate
var_first = { 'measurement': 3.4, 'scale': 'kilometer' }
var_second = { 'measurement': 9.1, 'scale': 'mile' }
var_third = { 'measurement': 2.0, 'scale': 'meter' }
var_fourth = { 'measurement': 9.0, 'scale': 'inches' }
var_fifth = { 'measurement': 10.3, 'scale': 'foot' }

In [14]:
def m_converter(dic):
    if (dic["scale"]) == "kilometer":
        return("%.0f" % (dic["measurement"]*1000))
    elif (dic["scale"]) == "mile":
        return("%.0f" % (dic["measurement"]*1609.344))
    elif (dic["scale"]) == "meter":
        return(dic["measurement"])
    #Wenn ich an dieser Stelle (Line direkt darüber) die gleiche return-Formel wie sonst eingebe, gibt es 
    #einen Syntax-Error bei den inches (Line direkt darunter). wtf?
    elif (dic["scale"]) == "inches":
        return("%.3f" % (dic["measurement"]*0.0254))
    else:
        return("Diese Messgrösse ist nicht definiert")

In [15]:
print(m_converter(var_first))
print(m_converter(var_second))
print(m_converter(var_third))
print(m_converter(var_fourth))
print(m_converter(var_fifth))


3400
14645
2.0
0.229
Diese Messgrösse ist nicht definiert