You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何给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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 15:54:06