gpt4 book ai didi

python - txt 文件中的选项卡与终端

转载 作者:太空宇宙 更新时间:2023-11-03 16:09:08 24 4
gpt4 key购买 nike

我现在正在学习 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 文件写入相同的内容。我在终端中看到的是

enter image description here

我在txt文件中看到的是

enter image description here

正如您所看到的,第三列在终端中的排列比 txt 文件中的排列要好得多。我有两个问题:

  1. 由于我向两者写入完全相同的数据,为什么信息在 txt 文件中显示不同?
  2. 如果我希望 txt 文件中的列像在终端中那样排列(以提高可读性),我该如何更改我的脚本来实现这一点?

最佳答案

不要依赖选项卡,它们依赖于应用程序/控制台。使用 str.format 代替 ( format specification )

顺便说一句pow(2,N)是一个 float 。您需要积分幂: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,但现在不推荐使用这种格式,并且 格式 界面更加强大)

关于python - txt 文件中的选项卡与终端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39437725/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com