Может ли кто-нибудь помочь мне придумать решение, которое упростит этот цикл. Код работает нормально, но просто кажется слишком большим для того, что он делает.Есть ли более чистый способ сделать этот цикл?
font_sizes = map(int, re.findall(r'\\fs(\d+)', rtf)) # Get all the font sizes
# Set font sizes
for font_size in font_sizes:
font_size = (font_size/2)
if font_size <= 8:
rtf = rtf.replace("\\fs{0}".format(font_size * 2), "<font size='{0}'>".format(1))
else:
if 9 <= font_size <= 11:
rtf = rtf.replace("\\fs{0}".format(font_size * 2), "<font size='{0}'>".format(2))
else:
if 12 <= font_size <= 13:
rtf = rtf.replace("\\fs{0}".format(font_size * 2), "<font size='{0}'>".format(3))
else:
if 14 <= font_size <= 17:
rtf = rtf.replace("\\fs{0}".format(font_size * 2), "<font size='{0}'>".format(4))
else:
if 18 <= font_size <= 31:
rtf = rtf.replace("\\fs{0}".format(font_size * 2), "<font size='{0}'>".format(5))
else:
if 32 <= font_size <= 34:
rtf = rtf.replace("\\fs{0}".format(font_size * 2), "<font size='{0}'>".format(6))
else:
if 35 <= font_size <= 59:
rtf = rtf.replace("\\fs{0}".format(font_size * 2), "<font size='{0}'>".format(7))
else:
if font_size > 60:
rtf = rtf.replace("\\fs{0}".format(font_size * 2), "<font size='{0}'>".format(8))
else:
pass
Ну, для начала: 'elif' ?! – jonrsharpe
Ваш код не требует пояснений * вообще *. Что ты пытаешься сделать?! –
создать сопоставление, словарь, например –