python - 如何在不使用 format() 的情况下以简单的表格格式显示值
问题描述
我正在尝试用 python 制作一个简单的程序,我想以简单的表格格式显示我的输出。但是每次对齐都会受到干扰。限制是不要使用format()
Python。
我正在尝试在 python 中使用字符串格式打印所需的输出。但我无法获得所需的输出。请帮我。
我试过这个:
def footToMeter(foot):
Meter = 0.305 * foot
return Meter
def meterToFoot(meter):
Foot = meter / 0.305
return Foot
i = 1.0
j = 20.0
header = ('Feet','Meters | ','Meters','Feet')
print("%-14s%-15s%-15s%-15s" % header)
while i<=15:
print("%s" % i ,"%15.3f" % footToMeter(i)," | ",j,"%16.3f" %
meterToFoot(j))
i = i + 1
j = j + 6
实际输出应该是完全左对齐的表格格式(检查下面的输出)。但是我的输出对齐略有干扰。
解决方案
您可以使用制表符\t
并使用空格和格式化字符串来正确显示,一个例子是
def footToMeter(foot):
return 0.305 * foot
def meterToFoot(meter):
return meter / 0.305
i = 1.0
j = 20.0
#Replaced spaces with a mix of tabs and spaces
print('Feet\t\t Meters\t\t|\t\t Meters\t\tFeet')
print()
while i<=15:
#Played around with format strings
print("%-4.1f\t\t" % i ,"%-.3f" % footToMeter(i),"\t\t|\t\t",j,"\t\t%-7.3f" %meterToFoot(j))
i = i + 1
j = j + 6
这给了我桌子
Feet Meters | Meters Feet
1.0 0.305 | 20.0 65.574
2.0 0.610 | 26.0 85.246
3.0 0.915 | 32.0 104.918
4.0 1.220 | 38.0 124.590
5.0 1.525 | 44.0 144.262
6.0 1.830 | 50.0 163.934
7.0 2.135 | 56.0 183.607
8.0 2.440 | 62.0 203.279
9.0 2.745 | 68.0 222.951
10.0 3.050 | 74.0 242.623
11.0 3.355 | 80.0 262.295
12.0 3.660 | 86.0 281.967
13.0 3.965 | 92.0 301.639
14.0 4.270 | 98.0 321.311
15.0 4.575 | 104.0 340.984
推荐阅读
- android - 如何在 Kotlin 中声明静态变量和方法?
- sql - 无法在 SQL Server 中运行 .sql 文件
- php - PHP Unserilize 不起作用
- apache-kafka - Storm-kafka-client spout 以不同的速度为不同的分区消费消息
- python - 为什么虚拟环境运行系统 Python 2.7 而不是虚拟 Python 3.6
- scala - Spark Dataframe 连接字符串
- hadoop - 如何获取 Phoenix URL 的 HBase IP 地址
- amazon-athena - 雅典娜跳过以下划线开头的键
- python - 如何根据使用 Sqlalchemy 计算的 json 值选择 Postgresql 记录?
- android - 如何使用 Android NFC 从智能卡上的具体 AID 发出 SELECT 命令