使用.form格式化表

2024-09-26 18:02:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我做了下面这个程序来显示各种体育活动的卡路里消耗,但是表的输出是不均匀的,我必须使用.format格式化它。我一直在尝试不同的价值观来改变它,但没有什么是真正的工作。你知道吗


# Constants
CANOEING = 256
HIKING = 438
ROLLER_BLADING = 548
TAE_KWON_DO = 752
TAI_CHI = 219
HOUR = 60

# Table Top
print("Calories for Various Activities for a 73 kg person")
print("")
 print("Activity          15 min    30 min    45 min    60 min    75 min    90 min")

# Table Results
for activity in range(1, 5 + 1):
    if activity == 1:
        print("Canoeing", end="")
    elif activity == 2:
        print("Hiking", end="")
    elif activity == 3:
    print("Roller Blading", end="")
    elif activity == 4:
        print("Tae kwon do", end="")
    elif activity == 5:
        print("Tai chi", end="")
    for time in range(15, 90 + 1, 15):
        canoe_time = time * CANOEING / HOUR
        hike_time = time * HIKING / HOUR
        roller_time = time * ROLLER_BLADING / HOUR
        tkd_time = time * TAE_KWON_DO / HOUR
        tc_time = time * TAI_CHI / HOUR
        if activity == 1:
            print("{:>10}{:>5.1f}".format(" ", canoe_time), end="")
        elif activity == 2:
            print("{:>12}{:>5.1f}".format(" ", hike_time), end="")
        elif activity == 3:
            print("{:>4}{:>5.1f}".format(" ", roller_time), end="")
        elif activity == 4:
            print("{:>7}{:>5.1f}".format(" ", tkd_time), end="")
        elif activity == 5:
            print("{:>11}{:>5.1f}".format(" ", tc_time), end="")
    print("")

Tags: formatfortimeactivityminrollerendprint
1条回答
网友
1楼 · 发布于 2024-09-26 18:02:59

你必须用同样长度的名字列名。如果名称较短,则在末尾添加空格或使用format()添加空格。你知道吗

在其他列中,必须始终使用相同的长度。你知道吗

# Constants
CANOEING = 256
HIKING = 438
ROLLER_BLADING = 548
TAE_KWON_DO = 752
TAI_CHI = 219
HOUR = 60

# Table Top
print("Calories for Various Activities for a 73 kg person")
print("")
print("Activity          15 min    30 min    45 min    60 min    75 min    90 min")

# Table Results
for activity in range(1, 5 + 1):
    if activity == 1:
        title = "Canoeing"
    elif activity == 2:
        title = "Hiking"
    elif activity == 3:
        title = "Roller Blading"
    elif activity == 4:
        title = "Tae kwon do"
    elif activity == 5:
        title = "Tai chi"

    print("{:<14}".format(title), end="")

    for time in range(15, 90 + 1, 15):
        if activity == 1:
            value = time * CANOEING / HOUR
        elif activity == 2:
            value = time * HIKING / HOUR
        elif activity == 3:
            value = time * ROLLER_BLADING / HOUR
        elif activity == 4:
            value = time * TAE_KWON_DO / HOUR
        elif activity == 5:
            value = time * TAI_CHI / HOUR

        print("{:>10.1f}".format(value), end="")

    print("")

编辑:您可以使用|-+来绘制帧

# Constants
CANOEING = 256
HIKING = 438
ROLLER_BLADING = 548
TAE_KWON_DO = 752
TAI_CHI = 219
HOUR = 60

# Table Top
print("Calories for Various Activities for a 73 kg person")
print("")
print("Activity      |   15 min|   30 min|   45 min|   60 min|   75 min|   90 min|")
print("       +    -+    -+    -+    -+    -+    -+")

# Table Results
for activity in range(1, 5 + 1):
    if activity == 1:
        title = "Canoeing"
    elif activity == 2:
        title = "Hiking"
    elif activity == 3:
        title = "Roller Blading"
    elif activity == 4:
        title = "Tae kwon do"
    elif activity == 5:
        title = "Tai chi"

    print("{:<14}|".format(title), end="")

    for time in range(15, 90 + 1, 15):
        if activity == 1:
            value = time * CANOEING / HOUR
        elif activity == 2:
            value = time * HIKING / HOUR
        elif activity == 3:
            value = time * ROLLER_BLADING / HOUR
        elif activity == 4:
            value = time * TAE_KWON_DO / HOUR
        elif activity == 5:
            value = time * TAI_CHI / HOUR

        print("{:>9.1f}|".format(value), end="")

    print("")

print("       +    -+    -+    -+    -+    -+    -+")

结果

Calories for Various Activities for a 73 kg person

Activity      |   15 min|   30 min|   45 min|   60 min|   75 min|   90 min|
       +    -+    -+    -+    -+    -+    -+
Canoeing      |     64.0|    128.0|    192.0|    256.0|    320.0|    384.0|
Hiking        |    109.5|    219.0|    328.5|    438.0|    547.5|    657.0|
Roller Blading|    137.0|    274.0|    411.0|    548.0|    685.0|    822.0|
Tae kwon do   |    188.0|    376.0|    564.0|    752.0|    940.0|   1128.0|
Tai chi       |     54.8|    109.5|    164.2|    219.0|    273.8|    328.5|
       +    -+    -+    -+    -+    -+    -+

顺便说一句:您也可以使用format()打印标题。你知道吗


有一些模块可以绘制表格,例如PrettyTable

相关问题 更多 >

    热门问题