初学者Python:计算格式

时间:2013-10-03 03:34:42

标签: python format

我正在完成任务,遇到了障碍。附上是我的代码。此代码的目的是根据用户输入的开始重量,结束重量,起始高度和结束高度来开发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

2 个答案:

答案 0 :(得分:1)

如何使用rjust和嵌套的for循环?内置类型rjust的{​​{1}}方法可以帮助您调整标签。例如,在我的终端上,选项卡计为8个空格。打印逗号运算符会自动打印一个额外的空间。因此,我在以下代码中使用了strrjust(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