如何在Python中实现类似Google Sheets的带整数部分分数格式化?
解决Python中分数格式化为带整数部分的混合分数问题
Python标准库的Fraction确实没有直接输出带整数部分的混合分数(比如1 1/2)的现成方法,自己写个小函数就能搞定,逻辑很简单:
- 拆分分数的整数部分和余数部分
- 根据不同场景输出对应格式
实现代码
from fractions import Fraction def format_mixed_fraction(frac): # 处理整数情况 if frac.denominator == 1: return f"{frac.numerator}" # 拆分整数部分和余数分子 whole_part = frac.numerator // frac.denominator remainder_num = frac.numerator % frac.denominator # 真分数(无整数部分) if whole_part == 0: return f"{remainder_num}/{frac.denominator}" # 混合分数 return f"{whole_part} {remainder_num}/{frac.denominator}" # 测试示例 a, b = 3, 2 target_frac = Fraction(a / b).limit_denominator() print(f"Value: {format_mixed_fraction(target_frac)}") # 输出:Value: 1 1/2
测试不同场景
- 假分数
5/3→ 输出1 2/3 - 真分数
1/2→ 输出1/2 - 整数
4/2→ 输出2 - 约分后分数
6/4(limit_denominator后为3/2)→ 输出1 1/2
内容的提问来源于stack exchange,提问作者Thants
相关产品推荐
相关产品推荐

