如何给Python while循环输出的最后一个值加上固定数额?
解决方案
你现有代码的逻辑是先打印符合宽度上限要求的数值,再对宽度做累加,循环终止时的addition已经是超过8.5的无效值,所以需要新增一个变量存储每次循环中的有效最后值,参考修改后的代码:
w = float(input("insert width: ")) h = float(input("insert height: ")) letter_w = 8.5 letter_h = 11 offset = 0.25 # 需要加的偏移量可在此处修改 addition = w + w # 新增变量存储最后一次符合要求的宽度值 last_valid_width = 0 while addition < letter_w: print(addition) print("under the limit") last_valid_width = addition addition = addition + w # 循环结束后直接对有效值做运算即可 final_width = last_valid_width + offset print(f"加偏移量后的最终宽度:{final_width}")
在你输入宽度为2的场景下,上述代码输出的final_width为8.25,符合需求。高度方向的铺满计算也可以套用完全相同的逻辑实现。
你也可以不用循环,直接用向下取整的数学运算一步算出有效总宽度,效率更高:
max_count_w = int(letter_w // w) # 向下取整得到letter宽度方向最多可放的矩形数量 last_valid_width = max_count_w * w final_width = last_valid_width + offset
内容的提问来源于stack exchange,提问作者Joy
相关产品推荐
相关产品推荐

