2016-06-07 16 views
-1

Ich habe einen Code unten, der Funktionen abhängig von einem Ergebnis überspringt. In einer Funktion habe ich eine if found-Anweisung, die das Ergebnis wahr macht und den Code unter if durchläuft. Ich habe auch, wenn nicht in der Funktion gefunden, die das Ergebnis auf False setzen wird, so dass der Code in der if-Anweisung unten übersprungen wird.Verwenden, wenn Ergebnis mehr als einmal

while repeatchoice == True: 
    code = getproductcode() 
    product = checkfile(code) 
    result,stocklevel = checkstocklevel(code) 
    if result: 
     quantity = quantityFunction(product) 
     checkquantity = isquantityokay(quantity, stocklevel) 
     quantity = int(quantity) 
     update = updatestocklevel(quantity, stocklevel, code) 
     cost = price(product) 
     productcost = calculateproductcost(cost, quantity) 
     rline = receiptline(product, quantity, productcost) 
     addtoreceipt = append(rline) 
     addtototal = appendprice(productcost) 
    repeatchoice = repeat(username) 

Ich habe bereits ‚wenn das Ergebnis‘ in diesem Code, und ich brauche das gleiche für ein anderes Ergebnis zu tun (überspringen oder bestimmte Funktionen basierend auf ausführen, wenn das Ergebnis wahr oder falsch zurückgegeben)

dies ist möglich mit der Variable 'Ergebnis?'

Ich benutze bereits 'wenn Ergebnis' kann ich das wieder tun? ' Also, wäre es möglich, ein anderes 'if-Ergebnis' zu haben, in dem ich die Mengenfunktion definiere?

+3

Bitte formuliere deine Frage so, dass klar ist, worum du fragst, was meinst du mit "tu das für ein anderes Ergebnis" (was ist "ein anderes Ergebnis" und "mach dasselbe"), was meinst du damit "stay called" – lejlot

+0

Sie haben die Variable 'result' nach ihrer Definition nie geändert. Also, ja, Sie können es wiederverwenden, sicher sein, dass es nicht geändert wird. –

+0

Hoffentlich ist das klarer @lejlot –

Antwort

1

ich denken Sie gefragt, ob Sie dies tun können:

result = some_function1() 
if result: 
    do() 
    some() 
    things() 

result = some_function2() 
if result: 
    do() 
    some() 
    other() 
    things() 

Ja. Das kannst du machen. Der in result gespeicherte Wert ändert sich und wird mehr als einmal ausgewertet, während flow of control fortfährt.

Wenn dies für Sie verwirrend ist, kann es sein, dass Sie die verschiedenen Programmiermodelle imperative and declarative verwirren.

vereinfachen, um über, in deklarativen wenn Sie die gleiche Erklärung zweimal haben (foo = 1234 und foo = 5678), könnte es zu einem Konflikt betrachtet werden, da es nicht klar wäre, welche die beabsichtigte Definition. In declarative Reihenfolge ist normalerweise egal. Mit imperative Reihenfolge und Ablauf der Kontrolle macht klar, welcher Wert foo gilt.

Das heißt, Sie sollten versuchen, diese Dinge. Machen Sie einen kleinen Test und sehen Sie was passiert. Python ist eine großartige Sprache zum Experimentieren.

Verwandte Themen