Python 如何使用模数和下限除法将总茶匙转换为汤匙、盎司、杯子和品脱

问题描述 投票:0回答:1

我需要取一定数量的茶匙,并将其转换为以下语句:首先填充较大的单位,然后填充较小的单位。例如,

这就是它应该的样子:

total_teaspoons = 57

19 tablespoons, 0 teaspoons
9 ounces, 1 tablespoon, 0 teaspoons
1 cup, 1 ounce, 1 tablespoon, 0 teaspoons
0 pints, 1 cup, 1 ounce, 1 tablespoon, 0 teaspoons

我已经被这个问题困扰了一段时间,我不知道如何解决。

total_teaspoons = 57

pints = (total_teaspoons // 96)
cups = (total_teaspoons // 48)
ounces = (total_teaspoons) // 6
tbsps = total_teaspoons // 3
tsps = total_teaspoons % total_teaspoons

print(tbsps, tsps)

print(ounces, tbsps, tsps)
print(cups, ounces, tbsps, tsps)
print(pints, cups, ounces, tbsps, tsps)

我不明白的是如何更改汤匙或盎司的值,具体取决于您是否包括其他较大的尺寸,例如杯子或品脱?

python modulo floor-division
1个回答
0
投票

这个解决方案会起作用,它不是最优雅的解决方案,但您可以了解它应该如何工作,并且可以使用它来改进它。

total_teaspoons = 57

pints_conversion = 96
cups_conversion = 48
ounces_conversion = 6
tbsps_conversion = 3

temp_teaspoons = total_teaspoons
pints = (temp_teaspoons // pints_conversion)
temp_teaspoons = temp_teaspoons % pints_conversion
cups = (temp_teaspoons // cups_conversion)
temp_teaspoons = temp_teaspoons % cups_conversion
ounces = (temp_teaspoons) // ounces_conversion
temp_teaspoons = temp_teaspoons % ounces_conversion
tbsps = (temp_teaspoons) // tbsps_conversion
temp_teaspoons = temp_teaspoons % tbsps_conversion
tsps = temp_teaspoons

total_tbsps = int(tbsps+ounces*ounces_conversion/tbsps_conversion+cups*cups_conversion/tbsps_conversion+pints*pints_conversion/tbsps_conversion)
print(total_tbsps, tsps)

total_ounces = int(ounces+cups*cups_conversion/ounces_conversion+pints*pints_conversion/ounces_conversion)
print(total_ounces, tbsps, tsps)

total_cups = int(cups+pints*pints_conversion/cups_conversion)
print(total_cups, ounces, tbsps, tsps)

print(pints, cups, ounces, tbsps, tsps)

这个想法是,使用

%
你可以获得除法的其余部分,因此你可以得到剩余的茶匙以在下一个单位中转换。

对于以较少数量的单位进行打印,您只需将不会打印的单位转换为您想要打印的最大单位,您可以通过将不会使用的每个单位的换算系数除以换算来做到这一点您将使用的最大单位的系数。

© www.soinside.com 2019 - 2024. All rights reserved.