繁体   English   中英

较短版本的 python 代码块,使用 file.write

[英]Shorter version python code block , using file.write

我是 python 的初学者,想知道这个代码块是否有更短的版本。我正在尝试将八表写入文件。

i = 1
file = open('table.txt', 'w')
while i<=10:
    inputf = str(8*i)
    file.write('8 * ')
    file.write(str(i))
    file.write(' = ')
    file.write(inputf)
    file.write('\n')
    i = i+1
file.close()

您可以使用如下f-string

i = 1
file = open('table.txt', 'w')
while i<=10:
    file.write(f' 8 * {i} = {8*i} \n')
    i = i+1
file.close()

感谢@BNilsou 使用for-loop

file = open('table.txt', 'w')
for i in range(1,11):
    file.write(f' 8 * {i} = {8*i} \n')
file.close()

输出:(在 table.txt 中)

 8 * 1 = 8 
 8 * 2 = 16 
 8 * 3 = 24 
 8 * 4 = 32 
 8 * 5 = 40 
 8 * 6 = 48 
 8 * 7 = 56 
 8 * 8 = 64 
 8 * 9 = 72 
 8 * 10 = 80 
with open("table.txt", "w") as file:
    for i in range(1, 11):
        print(f'8 * {i} = {8 * i}', file=file)

是你能得到的最短的行。

你会得到相同的结果:

with open('table.txt', 'w') as fh:
    for i in range(1, 11):
        fh.write(f'8 * {i} = {8*i}\n')
file = open('table.txt', 'w') for i in range(1, 11): statement = '8 * ' + (str(i)) + ' = ' + str(8*i) + '\n' file.write(statement) file.close()

把所有的写行file.write("8*",i,"=",inputf,"\\n")一行: file.write("8*",i,"=",inputf,"\\n")

open("table.txt", "w").write("\n".join([f'8 * {i} = {8 * i}' for i in range(1, 11)]))

这是最短的方式,但这是非常糟糕的方式:)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM