如何在结果中的两列之间获得相同的间距
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 统一?
- 对于字符串格式化方法,而不是
\t
在打印的字符串上使用 str(kph).ljust(7)
方法 - 这将添加空格直到字符串包含指定数量的字符。
- 我建议使用
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 以下的数字,你可以阅读这个解释
我只是从手册中复制了这段代码,但是当我编写它时,当 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 统一?
- 对于字符串格式化方法,而不是
\t
在打印的字符串上使用str(kph).ljust(7)
方法 - 这将添加空格直到字符串包含指定数量的字符。 - 我建议使用
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 以下的数字,你可以阅读这个解释