Ich bin auf der Suche nach einem Weg für find_equivalent()
Proportionierungsmethode in den meisten Pythonic Weg.Was ist der pythischste Weg, diese Dosierungsmethode zu verkürzen?
Wenn y
die Nummer nicht im Bereich 0 - 2000
liegt, muss die Methode 0
zurückgegeben werden. Andernfalls sollte die Methode den Bereich y
finden und die gleiche Zahl in den Bereich zurückgeben.
def find_equivalent(y):
if y <= 0 or y > 2000:
return 0
elif 0 < y <= 100:
if y in range(1, 34):
return 18
if y in range(34, 67):
return 17
if y in range(67, 101):
return 16
elif 100 < y <= 200:
if y in range(101, 134):
return 15
if y in range(134, 167):
return 14
if y in range(167, 201):
return 13
elif 200 < y <= 500:
if y in range(201, 301):
return 12
if y in range(301, 401):
return 11
if y in range(401, 501):
return 10
elif 500 < y <= 1000:
if y in range(501, 667):
return 9
if y in range(667, 834):
return 8
if y in range(834, 1001):
return 7
elif 1000 < y <= 2000:
if y in range(1001, 1334):
return 6
if y in range(1334, 1667):
return 5
if y in range(1667, 2001):
return 4
.
.
.
ich werde Sie einen Tippfehler gemacht zu übernehmen haben, und es sollte 'sein elif 500
miradulo
Warum haben Sie all diese 'elif' Tests, wenn Sie dann' y' * noch einmal testen *? Sie können auch alle diese 'wenn y in range (...)' testet die oberste Ebene (mit 'elif' zu Kurzschluss) –
@Mitch Sie haben Recht. Ich korrigierte den Tippfehler. Vielen Dank. –