我正在学习Python,我想知道为什么标签文件在txt文件中看起来与写入终端时有所不同。
特别是,我运行了这个脚本
my_file = open('power.txt', 'w')
print( 'N \t\t2**N\t\t3**N' )
print( '---\t\t----\t\t----' )
my_file.write( 'N \t\t2**N\t\t3**N\n' )
my_file.write( '---\t\t----\t\t----\n' )
for N in range(11) :
print( "{:d}\t\t{:d}\t\t{:d}".format(N, pow(2,N), pow(3,N)) )
my_file.write( "{:d}\t\t{:d}\t\t{:d}\n".format(N, pow(2,N), pow(3,N)) )
my_file.close()
在其中你可以看到我在终端和power.txt文件中写了同样的东西。我在终端看到的是
我在txt文件中看到的是
正如您所看到的,第三列在终端中的排列比txt文件更好。我有两个问题:
答案 0 :(得分:1)
不依赖于标签,它们取决于应用程序/控制台。请改用str.format
(format specification)
BTW pow(2,N)
是一个浮点数。你需要整体力量:2**N
写入标准输出的独立示例:
import sys
my_file = sys.stdout
header = "{:<10s}{:<10s}{:<10s}\n".format('N','2**N','3**N' )
my_file.write(header)
for N in range(11) :
row = "{:<10d}{:<10d}{:<10d}\n".format(N, 2**N, 3**N)
my_file.write(row)
结果:
N 2**N 3**N
0 1 1
1 2 3
2 4 9
3 8 27
4 16 81
5 32 243
6 64 729
7 128 2187
8 256 6561
9 512 19683
10 1024 59049
(您可以使用遗留的C风格格式,例如%20s
或%-10s
,但现在不赞成使用它,而且format
界面更强大了。