Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Voraussetzung fuer die Uebung:
- # Was ist eine Funktion in Python und wie definiere ich eine Funktion?
- # Aufgabe 1. Taxigebuehren
- # Ausgabe direkt auf Bildschrim
- # Nachteil: Das Ergebnis kann nicht an anderen Stellen im Programm verwendet werden
- def tarifrechner(gefahrene_km1, gefahrene_km2):
- grundpreis = 2.50
- pro_100m_preis = 0.4
- pro_100m_preis_ab_10km = 0.3
- for dx100m in range(gefahrene_km1*10, gefahrene_km2*10+1):
- if (dx100m < 10*10):
- preis = grundpreis + dx100m*pro_100m_preis
- else:
- # \ wird nur wegen des Zeilenumbruchs werwendet
- preis = grundpreis \
- + (dx100m-10*10)*pro_100m_preis_ab_10km \
- + 10*10*pro_100m_preis
- print dx100m/10.0, "km:", preis, "EUR"
- # Sie wundern sich, warum kein Erbenis auf dem Bildschirm erscheint?
- # Im Moment kennt Ihre Python Umgebung wie sie "tarifrechner" ausführen kann.
- # Sie müssen noch die Funktion "tarifrechner" aufrufen(!) um das Ergebnis zu bekommen.
- # Sie können es aber beliebig oft tun:
- # z.B.
- tarifrechner(1,20)
- # oder
- tarifrechner(4,15)
- # Ergebnis in einer Liste abspeichern und mit "return" zurückgeben
- # Vorteil: Das Ergebnis kann fuer bestimmte Zwecke an anderen Stellen verwendet werden
- def tarifrechner2(gefahrene_km1, gefahrene_km2):
- grundpreis = 2.50
- pro_100m_preis = 0.4
- pro_100m_preis_ab_10km = 0.3
- tarif_tabelle = []
- for dx100m in range(gefahrene_km1*10, gefahrene_km2*10+1):
- if (dx100m < 10*10):
- preis = grundpreis + dx100m*pro_100m_preis
- else:
- # \ wird nur wegen des Zeilenumbruchs werwendet
- preis = grundpreis \
- + (dx100m-10*10)*pro_100m_preis_ab_10km \
- + 10*10*pro_100m_preis
- tarif_tabelle.append((dx100m/10.0,"km:",preis,"EUR"))
- return tarif_tabelle
- # Liefert eine Liste mit Tuples
- # Hier auch nicht vergessen, die Funktion "tarifrechner2" aufzurufen!
- # Das Ergebnis wird nicht direkt innerhalb der Funktion ausgegeben, sondern mit "return"
- # zurückgeben. Sie können, dann selbst dafür sorgen, was Sie mit dem Ergebnis machen wollen.
- # z.B.
- ergebnis_tabelle = tarifrechner2(9,11)
- # Das Ergebnis von "tarifrechner2" ist eine Liste!
- for zeile in ergebnis_tabelle:
- print zeile
- # Alternative: Ergebnis in einem Map aufheben
- def tarifrechner3(gefahrene_km1, gefahrene_km2):
- grundpreis = 2.50
- pro_100m_preis = 0.4
- pro_100m_preis_ab_10km = 0.3
- tarif_tabelle = { }
- for dx100m in range(gefahrene_km1*10, gefahrene_km2*10+1):
- if (dx100m < 10*10):
- preis = grundpreis + dx100m*pro_100m_preis
- else:
- # \ wird nur wegen des Zeilenumbruchs werwendet
- preis = grundpreis \
- + (dx100m-10*10)*pro_100m_preis_ab_10km \
- + 10*10*pro_100m_preis
- tarif_tabelle[dx100m/10.0] = preis
- return tarif_tabelle
- # Man kann direkt die km-abhaegige Preise ansprechen
- # z.B. t = tarifrechner3(1, 3)
- # print t[1.5]
- # Das war weder beim Tarifrechner noch beim Tarifrechner2 moeglich
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement