我正在完成任务,遇到了障碍。附上是我的代码。此代码的目的是根据用户输入的开始重量,结束重量,起始高度和结束高度来开发bmi表。我还附上了BMI计算器,它将根据重量和高度处理BMI。 BMI计算器将高度(以英寸为单位)转换为米,将重量(以磅为单位)转换为KG。到目前为止,我的代码打印出垂直方向的重量和高度。问题是,如何用适当的BMI填充内部?
def calculateBMI(height, weight):
# This will process the parameters above and convert to
# meters and pounds accordingly.
heightMeter = height * 0.0254
# This will process weight into KG where 1 pound = .4536 KG
weightKG = weight * 0.4536
# Given the new converted numbers, this will then
# calculate BMI and return the output.
calcBMI = (weightKG) / (heightMeter * heightMeter)
return calcBMI
def printBMITable(startHeight, endHeight, startWeight, endWeight):
for x in range (startWeight, endWeight + 1, 10):
print "\t",x,
print
print
for i in range(startHeight, endHeight + 1):
print i
答案 0 :(得分:1)
如何使用rjust
和嵌套的for循环?内置类型rjust
的{{1}}方法可以帮助您调整标签。例如,在我的终端上,选项卡计为8个空格。打印逗号运算符会自动打印一个额外的空间。因此,我在以下代码中使用了str
或rjust(8-1)
,它在我的终端上打印得非常好:
rjust(7)
输出:
def printBMITable(startHeight, endHeight, startWeight, endWeight):
for x in range (startWeight, endWeight + 1, 10):
print "\t",x,
print '\n'
for i in range(startHeight, endHeight + 1):
print i,
for x in range(startWeight, endWeight + 1, 10):
print str(round(calculateBMI(i, x), 2)).rjust(7),
print ''
请注意,我还使用内置的>>> printBMITable(195, 200, 190, 200)
190 200
195 3.51 3.7
196 3.48 3.66
197 3.44 3.62
198 3.41 3.59
199 3.37 3.55
200 3.34 3.52
函数来缩短打印BMI时的小数位数。您可以随意避免这种情况,或者将您的精度更改为您想要的任意小数位数。
答案 1 :(得分:0)
你需要一个嵌套循环,基本上是这样的:
for weight in range(startWeight, endWeight):
for height in range(startHeight, endHeight):
#calculate BMI and print