Advertisement
Guest User

Untitled

a guest
Nov 28th, 2011
387
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. # Voraussetzung fuer die Uebung:
  2. # Was ist eine Funktion in Python und wie definiere ich eine Funktion?
  3.  
  4.  
  5. # Aufgabe 1. Taxigebuehren
  6.  
  7. # Ausgabe direkt auf Bildschrim
  8. # Nachteil: Das Ergebnis kann nicht an anderen Stellen im Programm verwendet werden
  9. def tarifrechner(gefahrene_km1, gefahrene_km2):
  10.     grundpreis = 2.50
  11.     pro_100m_preis = 0.4
  12.     pro_100m_preis_ab_10km = 0.3
  13.  
  14.     for dx100m in range(gefahrene_km1*10, gefahrene_km2*10+1):
  15.         if (dx100m < 10*10):
  16.             preis = grundpreis + dx100m*pro_100m_preis
  17.         else:
  18.              # \ wird nur wegen des Zeilenumbruchs werwendet
  19.             preis = grundpreis \
  20.             + (dx100m-10*10)*pro_100m_preis_ab_10km \
  21.             + 10*10*pro_100m_preis
  22.            
  23.         print dx100m/10.0, "km:", preis, "EUR"
  24.  
  25. # Sie wundern sich, warum kein Erbenis auf dem Bildschirm erscheint?
  26. # Im Moment kennt Ihre Python Umgebung wie sie "tarifrechner" ausführen kann.
  27. # Sie müssen noch die Funktion "tarifrechner" aufrufen(!) um das Ergebnis zu bekommen.
  28. # Sie können es aber beliebig oft tun:
  29. # z.B.
  30.  
  31. tarifrechner(1,20)
  32.  
  33. # oder
  34.  
  35. tarifrechner(4,15)
  36.  
  37. # Ergebnis in einer Liste abspeichern und mit "return" zurückgeben
  38. # Vorteil: Das Ergebnis kann fuer bestimmte Zwecke an anderen Stellen verwendet werden
  39. def tarifrechner2(gefahrene_km1, gefahrene_km2):
  40.     grundpreis = 2.50
  41.     pro_100m_preis = 0.4
  42.     pro_100m_preis_ab_10km = 0.3
  43.     tarif_tabelle = []
  44.     for dx100m in range(gefahrene_km1*10, gefahrene_km2*10+1):
  45.         if (dx100m < 10*10):
  46.             preis = grundpreis + dx100m*pro_100m_preis
  47.         else:
  48.              # \ wird nur wegen des Zeilenumbruchs werwendet
  49.             preis = grundpreis \
  50.             + (dx100m-10*10)*pro_100m_preis_ab_10km \
  51.             + 10*10*pro_100m_preis
  52.            
  53.         tarif_tabelle.append((dx100m/10.0,"km:",preis,"EUR"))
  54.     return tarif_tabelle
  55.  
  56. # Liefert eine Liste mit Tuples
  57. # Hier auch nicht vergessen, die Funktion "tarifrechner2" aufzurufen!
  58. # Das Ergebnis wird nicht direkt innerhalb der Funktion ausgegeben, sondern mit "return"
  59. # zurückgeben. Sie können, dann selbst dafür sorgen, was Sie mit dem Ergebnis machen wollen.
  60. # z.B.
  61.  
  62. ergebnis_tabelle = tarifrechner2(9,11)
  63.  
  64. # Das Ergebnis von "tarifrechner2" ist eine Liste!
  65. for zeile in ergebnis_tabelle:
  66.     print zeile
  67.  
  68.  
  69.  
  70. # Alternative: Ergebnis in einem Map aufheben
  71. def tarifrechner3(gefahrene_km1, gefahrene_km2):
  72.     grundpreis = 2.50
  73.     pro_100m_preis = 0.4
  74.     pro_100m_preis_ab_10km = 0.3
  75.     tarif_tabelle = { }
  76.     for dx100m in range(gefahrene_km1*10, gefahrene_km2*10+1):
  77.         if (dx100m < 10*10):
  78.             preis = grundpreis + dx100m*pro_100m_preis
  79.         else:
  80.              # \ wird nur wegen des Zeilenumbruchs werwendet
  81.             preis = grundpreis \
  82.             + (dx100m-10*10)*pro_100m_preis_ab_10km \
  83.             + 10*10*pro_100m_preis
  84.            
  85.         tarif_tabelle[dx100m/10.0] = preis
  86.     return tarif_tabelle
  87.  
  88. # Man kann direkt die km-abhaegige Preise ansprechen
  89. # z.B. t = tarifrechner3(1, 3)
  90. #      print t[1.5]
  91. # Das war weder beim Tarifrechner noch beim Tarifrechner2 moeglich
  92.  
  93.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement