2017-12-14 2 views
0

Alle Zeiger den Komplex arg unten in "Stunden" zu beheben, ich bin immerStreamlining if-Anweisung Bedingung: 'result1', wenn a == b else '2' oder

SyntaxError: invalid syntax

Alles, was ich gesucht um so viel Code wie möglich zu reduzieren. Ich möchte am Ende einen Wert geben, der dem Wert von i entspricht.

mein Code nicht bei

(('($200 Hr) estimated at' if i ==1) or ('($130 Hr) estimated at' if i == 2) or ('($120 Hr) estimated at' if i == 3) or ('($125 Hr) estimated at' if i == 4) or ('($90 Hr) estimated at' if i == 5)) 

Code:

brs_items_list.append({      
'desc' : kwargs["brs_d_{}".format(i)], 
'hours' : kwargs["brs_hrs_{}".format(i)]+(' hour' if float(kwargs["brs_hrs_{}".format(i)])<2 else ' hours')+ (('($200 Hr) estimated at' if i ==1) or ('($130 Hr) estimated at' if i == 2) or ('($120 Hr) estimated at' if i == 3) or ('($125 Hr) estimated at' if i == 4) or ('($90 Hr) estimated at' if i == 5)) ,  
'cost' : "${:,}".format(round(float(kwargs["brs_c_{}".format(i)]), 2)) 
}) 
+0

'oder ('(120 $ Hr) geschätzt auf', wenn i == 3)' was über sonst ?, probiere 'oder ('($ 120 Hr) geschätzt bei' if == 3 else '') –

+0

... warum faktor Sie nicht diese Zeile in eine Funktion – user3080953

+0

ich versuchte dies bereits und tut es nicht Spuck alles – Ossama

Antwort

0

ich dachte, dass ich

brs_items_list.append({ 

'desc' : kwargs["brs_d_{}".format(i)], 

'hours' : kwargs["brs_hrs_{}".format(i)]+(' hour' if float(kwargs["brs_hrs_{}".format(i)])<2 else ' hours')+ (('($200 Hr) estimated at' if int(i) ==1 else '') or ('($130 Hr) estimated at' if int(i) == 2 else '') or ('($120 Hr) estimated at' if int(i)== 3 else '') or ('($125 Hr) estimated at' if int(i) == 4 else '') or ('($90 Hr) estimated at' if int(i) == 5 else '')) ,  

'cost' : "${:,}".format(round(float(kwargs["brs_c_{}".format(i)]), 2)) 

}) 
2

benötigen Warum ein Wörterbuch nicht benutzen?

{1:'($200 Hr) estimated at', 2:'($130 Hr) estimated at', 3:'($120 Hr) estimated at', 4:'($125 Hr) estimated at', 5:'($90 Hr) estimated at'}[i] 

noch besser, haben Sie eine Menge von wiederholtem Text, so können Sie dies nur tun können:

'($%d Hr) estimated at' % {1:200, 2:130, 3:120, 4:125, 5:90}[i] 
+0

Erstaunlich Kumpel, ich brauchte int (i) – Ossama

Verwandte Themen