def get_f_H_i(region, direction, y1, y2, z):
    """開口部iの暖房期の取得日射熱補正係数

    Args:
      region(int): 省エネルギー地域区分
      direction(str): 外皮の部位の方位
      y1(float): 日除け下端から窓上端までの垂直方向の距離 (mm)
      y2(float): 窓の開口高さ寸法 (mm)
      z(float): 壁面からの日除けの張り出し寸法（ひさし等のオーバーハング型日除けの出寸法は壁表面から先端までの寸法とする）(mm)

    Returns:
      float: 開口部iの暖房期の取得日射熱補正係数

    """

    # 暖房期における1地域から7地域までの南東面・南面・南西面 --- 式(1a)
    if (region in [1,2,3,4,5,6,7] and direction in ['南東', '南', '南西']):
        return min(0.01 * (5 + 20 * ((3*y1 + y2) / z)), 0.72)
    # 暖房期における1地域から7地域までの南東面・南面・南西面以外 --- 式(1b)
    elif (region in [1,2,3,4,5,6,7] and not(direction in ['南東', '南', '南西'])):
        return min(0.01 * (10 + 15 * ((2*y1 + y2) / z)), 0.72)
    else:
        ValueError("invalid value in region or direction")