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

Python实现将重量转换为1/4倍数的分数形式杯量

Python 实现重量转1/4倍刻度杯量功能

核心实现逻辑

你原来的代码问题在于直接对杯数取整,丢失了1/4、1/2这类小数刻度的信息,正确的计算逻辑如下:

  • 1杯对应240gr,因此1/4杯对应60gr,我们可以先计算输入重量相当于多少个1/4杯,取最接近的整数
  • 把得到的1/4杯总个数,按规则转换成要求的字符串格式即可

完整实现代码

def weight_to_cup(x):
    per_quarter_cup = 240 / 4  # 每1/4杯对应60gr
    # 计算总共有多少个1/4杯,四舍五入取整
    total_quarters = round(x / per_quarter_cup)
    if total_quarters == 0:
        return "0"
    # 计算整数杯数和剩余的1/4杯数
    whole_cups = total_quarters // 4
    remainder = total_quarters % 4
    # 处理余数对应的分数部分
    remainder_map = {1: "1/4", 2: "1/2", 3: "3/4"}
    frac_part = remainder_map.get(remainder, "")
    # 拼接结果
    if whole_cups == 0:
        return frac_part
    if not frac_part:
        return str(whole_cups)
    return f"{whole_cups} {frac_part}"

# 测试示例
print(f"cup_size: {weight_to_cup(130.3)}") # 输出 cup_size: 1/2
print(f"cup_size: {weight_to_cup(10)}") # 输出 cup_size: 0
print(f"cup_size: {weight_to_cup(310)}") # 输出 cup_size: 1 1/4
print(f"cup_size: {weight_to_cup(351)}") # 输出 cup_size: 1 1/2

代码说明

  • 先通过x / 60计算出输入重量对应的1/4杯总个数,四舍五入后得到整数,保证结果是1/4的整数倍
  • 用字典映射余数对应的简化分数,避免重复的条件判断
  • 分情况拼接整数部分和分数部分的字符串,完全符合要求的输出格式

内容的提问来源于stack exchange,提问作者eduardosufan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 03:36:04