LU09.A03 - Erweiterte Aufgaben

Wenden Sie ihr Wissen über mehrere Rückgabewerte und Default-Werte an um folgende Aufgaben zu lösen.

Erstellen Sie eine Funktion welche für eine Ganzzahldivision folgende Werte zurückliefert:

  • Das Resultat der Ganzzahldivision
  • Den Rest aus der Ganzzahldivision

Beispiel der Resultate bei der Division 34/6:

  • Resultat: 5
  • Rest: 4

Beispiel der Resultate bei der Division 50/5:

  • Resultat: 10
  • Rest: 0
def div(dividend, divisor):
    """
    TODO
    """
    return #TODO
 
 
def main():
    result, rest = div(34,6)
    print(#TODO)
 
 
if __name__ == '__main__':
    main()

Eine Division durch 0 soll eine Fehlermeldung ausgeben und None zurückgeben.

1. Code ausführen und verstehen

Führen Sie folgenden Code aus und versuchen Sie ihn zu verstehen.

def convert(length, from_unit, to_unit):
    """
    Converts lengths. The following lengths can be converted: meters, miles, nautical miles, yards, inches
    :length: length to convert
    :from_unit: 1=Meter, 2=Meilen, 3=Seemeilen, 4=Yard, 5=Inches
    :to_unit: 1=Meter, 2=Meilen, 3=Seemeilen, 4=Yard, 5=Inches
    :return: converted length
    """
    if (from_unit == 1):
        result = length
    elif (from_unit == 2):
        result = length * 1609.34
    elif (from_unit == 3):
        result = length * 1852.0
    elif (from_unit == 4):
        result = length * 0.9144
    elif (from_unit == 5):
        result = length * 0.0254
 
    if (to_unit == 1):
        return result
    if (to_unit == 2):
        result = result / 1609.34
        return result
    if (to_unit == 3):
        result = result / 1852.0
        return result
    if (to_unit == 4):
        result = result / 0.9144
        return result
    if (to_unit == 5):
        result = result / 0.0254
        return result
 
 
def main():
    print("1=Meter, 2=Meilen, 3=Seemeilen, 4=Yard, 5=Inches")
    print(convert(1,1,4))
 
if __name__ == '__main__':
    main()

2. Code anpassen

Passen Sie den Code so an, dass die Standardumrechnung immer von Meter in Meilen geschieht. Andere Umrechnungen aber immernoch möglich sind:

print(convert(1000))
0.6213727366498067
print(convert(1000, 1, 4))
1093.6132983377079
print(convert(1, to_unit = 5))
39.37007874015748

3. Erweiterung

Machen Sie es möglich, dass nicht mehr nur Zahlen sondern Zahlen und Texte für die Umrechnung eingegeben werden können.

print(convert(1, to_unit = 'Inches'))
39.37007874015748

⇒ GitHub Repo für externe Besucher

GitHub Repository https://github.com/templates-python/m319-lu09-a03-advanced-functions

Lernende am BZZ müssen den Link zum GitHub Classroom Assignment verwenden

© Marcel Suter, Kevin Maurizi

Diese Aufgabe ist eine übersetzte und angepasste Aufgabe von Scott Morgan, verwendet unter CC BY NC SA.

  • modul/m319/learningunits/lu09/aufgaben/erweitert.txt
  • Last modified: 2023/11/22 11:33
  • by kmaurizi