如何在结果中的两列之间获得相同的间距

How do I get the same spacing between the two columns in the result

我只是从手册中复制了这段代码,但是当我编写它时,当 kph > 100 时,显示的列之间的间距会变大。

# This program converts the speeds 60 kph
# Throug 130 kph ( in 10 kph increments)
# to mph.

START_SPEED = 60              # Starting Speed
END_SPEED = 131               # Ending speed
INCREMENT = 10                # Increment
CONVERSION_FACTOR = 0.6214    # Conversion Factor

# Print the table headings.
print("KPH\tMPH")
print("--------")
for kph in range(60, 131, 10):
    mph = kph * CONVERSION_FACTOR
    print(kph, "\t", format(mph, ".1f"))

当我写这段代码时,我得到:

KPH  MPH
--------
60   37.3
70   43.5
80   49.7
90   55.9
100      62.1
110      68.4
120      74.6
130      80.8

Process finished with exit code 0

如何使两列之间的 space 统一?

  1. 对于字符串格式化方法,而不是 \t 在打印的字符串上使用 str(kph).ljust(7) 方法 - 这将添加空格直到字符串包含指定数量的字符。
  2. 我建议使用 pandas.DataFrame 而不是字符串格式,因为它具有视觉上漂亮的输出数据结构。我还建议使用 numpy.arange 来简化计算,因为它允许对操作进行矢量化,而不是使用元素 for-loop.
import numpy as np
import pandas as pd

kph = np.range(60, 131, 10)
df = pd.DataFrame.from_dict({"KPH": kph, 
                             "MPH": kph * CONVERSION_FACTOR})
print(df)

您可以将打印更改为:

for kph in range(60, 131, 10):
    mph = kph * CONVERSION_FACTOR
    print(f'{str(kph):<3s}    {mph:.1f}')

<3s 告诉 python 始终保持此值短 3 个字母
关于为什么 \t 没有打印在 100 以下的数字,你可以阅读这个解释