2017-12-25 3 views
1

Hier gleich meine Aufgabe ist:Need a, b, c zusammenzufassen, es sei denn, sie 13,14,17,18,19

Gegeben 3 int Werte, a b c, deren Summe zurück. Wenn jedoch einer der Werte ein Teenager ist - im Bereich von 13.19 inklusive - dann zählt dieser Wert als 0, außer 15 und 16 zählen nicht als Teenager. Schreibe einen separaten Helfer "def fix_teen (n):", der einen int-Wert annimmt und den für die Teen-Regel festgelegten Wert zurückgibt. Auf diese Weise vermeiden Sie, den Teen-Code dreimal zu wiederholen (d. H. "Zerlegung"). Definieren Sie das Hilfeprogramm unterhalb und auf derselben Ebene wie das Hauptelement no_teen_sum().

Hier ist die einzige Lösung, die ich tun konnte:

excep = [13,14,17,18,19] 

def no_teen_sum(a, b, c): 
    if a in excep and b in excep and c in excep: 
    return 0 
    elif a in excep and b in excep and c not in excep: 
    return c 
    elif b in excep and c in excep and a not in excep: 
    return a 
    elif a in excep and c in excep and b not in excep: 
    return b 
    elif a in excep and b not in excep and c not in excep: 
    return b+c 
    elif b in excep and a not in excep and c not in excep: 
    return a+c 
    elif c in excep and a not in excep and b not in excep: 
    return a+b 
    else: 
    return a+b+c 
+0

Ist dieser Code Python? –

+0

Ja ist in Python –

+0

Nun Tag die Frage als Python –

Antwort

3

einfach brechen die Zuordnung und umzusetzen wie es Ihnen sagt. Lass es uns Stück für Stück ausprobieren:

Gegeben 3 int Werte, a b c, geben ihre Summe zurück. Wenn jedoch einer der Werte ein Teenager ist - im Bereich von 13.19 inklusive - dann zählt dieser Wert als 0, außer 15 und 16 zählen nicht als Teenager.

Sie haben dieses Prinzip bereits verstanden.

Schreiben Sie einen separaten Helfer "def fix_teen (n):", der einen int-Wert übernimmt und den für die Jugendregel festgelegten Wert zurückgibt.

Gehen Sie voran und schreiben Sie diese Funktion. Sie wissen bereits, wie Sie mit if einen Wert für Teenager ermitteln können und wie Sie einen Wert von return erhalten.

Auf diese Weise vermeiden Sie, den Teen-Code dreimal zu wiederholen (d. H. "Zerlegung").

Dies sagt Ihnen, tatsächlich Anruffix_teen dreimal und erklärt, dass es gut ist, weil Sie sich nicht wiederholen = nur einmal eine Sache umzusetzen.

Definieren Sie den Helper unterhalb und auf der gleichen Einzugsebene wie das Haupt no_teen_sum().

Jetzt implementieren Sie einfach no_teen_sum mit der Verwendung von fix_teen. Wie? Rufen Sie es für jeden der drei Eingänge auf, um den Wert anzupassen, der zum Ergebnis addiert wird.


Die tatsächliche Implementierung wird als eine Übung für den OP gelassen.

+0

so kann ich eine Funktion aufrufen, die unter einer anderen Funktion ist? sie müssen nicht verschachtelt werden? –

+0

Sie nicht. Ja, du kannst. –

+1

Und wenn Sie zögern, versuchen Sie es einfach;) –

Verwandte Themen