Изменять цвет bg динамически, вместо использования статического значения - PullRequest
0 голосов
/ 09 ноября 2018
def raw_dp(value, loop_name, break_point_1, break_point_2, break_point_3, break_point_4, break_point_5, metrics, symbol = ''):

    facts = [(round(item)) for item in value]
    metrics  += '''<tr><th>'''+ loop_name +'''</th>'''
    for dp in facts:
        if dp <= break_point_1:
            metrics += '<td style = "background-color:#229954">' + ' ' +  str(dp)  + symbol + '</td>'
        elif dp > break_point_1 and dp <= break_point_2:
            metrics += '<td style = "background-color:#ABC878">' + ' ' +  str(dp)  + symbol + '</td>'
        elif dp > break_point_2 and dp <= break_point_3:
            metrics += '<td style = "background-color:#F9E79F">' + ' ' +  str(dp)  + symbol + '</td>'
        elif dp > break_point_3 and dp <= break_point_4:
            metrics += '<td style = "background-color:#FBD567">' + ' ' +  str(dp)  + symbol + '</td>'
        elif dp > break_point_4 and dp <=break_point_5:
            metrics += '<td style = "background-color:#F9C169">' + ' ' +  str(dp)  + symbol + '</td>'
        else:
            metrics += '<td style = "background-color:#E67C73">' + ' ' +  str(dp)  + symbol + '</td>'
    metrics += '''</tr>'''
    return metrics

Я хочу динамически менять цвет фона html-ячейки вместо использования статического значения, которое я определяю как breakpoint_1, breakpoint_2 ... и т. Д., Или любого другого способа элегантного написания этой функции. Я новичок в Python может кто-нибудь, пожалуйста, помогите мне.

1 Ответ

0 голосов
/ 09 ноября 2018

Я не делаю Python, но я бы предложил реализовать кейс

https://jaxenter.com/implement-switch-case-statement-python-138315.html

def switch_demo(argument):
  switcher = {
    0: "229954",
    1: "229954",
    2: "ABC878",
    3: "F9E79F",
    4: "FBD567",
    5: "F9C169"
  }

используя что-то вроде

bg = switcher.get(argument,"E67C73")

Здесь вам нужно превратить тест в число от 0 до 5 - как я уже говорил, я не делаю Python, но вероятным решением должен быть словарь

Если нет, то попробуйте

                                                   bg = "E67C73"
 if   dp <= break_point_1:                         bg = "229954"
 elif dp >  break_point_1 and dp <= break_point_2: bg = "ABC878"
 elif dp >  break_point_2 and dp <= break_point_3: bg = "F9E79F"
 elif dp >  break_point_3 and dp <= break_point_4: bg = "FBD567"
 elif dp >  break_point_4 and dp <= break_point_5: bg = "F9C169"

Тогда имейте ОДИН

metrics += '<td style = "background-color:#' + bg + '">' +  str(dp)  + symbol + '</td>'
metrics += '''</tr>'''

Нет необходимости в + ' ', так как игнорируется в HTML. Вместо этого установите заполнение ячейки

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...