<p>或者是另一种解决方案,获得与面板宽度几乎相同的间隙宽度</p>
<pre><code>def get_panel_number(wall_length: float, panel_width: float) -> int:
"""
1. Substract width of the first pannel to get wall length to
distribute rest of panels
2. Divide the output of above substraction by the width of panel to get
maximum
number of panels and the fraction of the last panel
3. Divide that number by 2 and get integer of it to get number of panels
4. Add the first panel to that output to get overall number of panels
"""
wall_length_to_distribute = wall_length - panel_width
maximum_number_of_panels = wall_length_to_distribute / panel_width
return int(maximum_number_of_panels/2) + 1
def get_gap_width(
wall_length: float, panel_width: float, number_of_panels: int
) -> float:
"""
1. From wall_length substract number of panels multiply by panel width to
get how many gaps in total you have
2. Substract 1 from number of panels to get number of gaps
3. Divide gaps width in total by number of spaces to get one gap width
"""
gaps_width_in_total = wall_length - (number_of_panels * panel_width)
number_of_gaps = number_of_panels - 1
return gaps_width_in_total / number_of_gaps
wall_length = 128.3
panel_width = 4.3
number_of_panels = get_panel_number(wall_length, panel_width)
gap_width = get_gap_width(wall_length, panel_width, number_of_panels)
print(f"Wall length: {wall_length}")
print(f"Panel width: {panel_width}")
print(f"Number of panels: {number_of_panels}")
print(f"Gap between panels: {gap_width}")
</code></pre>
<p>输出:</p>
<pre><code>Wall length: 128.3
Panel width: 4.3
Number of panels: 15
Gap between panels: 4.557142857142858
</code></pre>
<p>您使用哪个版本的python?该程序至少需要3.6,因为<code>f-string</code></p>