【发布时间】:2023-01-01 01:56:43
【问题描述】:
在一个单独的文本文件中有一个网格,该函数读取该文件并返回一个由网格组成的对象,其中逐行读取文本文件
我的问题是在我的数字坐标中,单个数字与双位数的最后一位数字不对齐
def load_board(filename):
result = " "
with open(filename) as f:
print(f)
for index, line in enumerate(f):
if index == 0:
result += ' '+' '.join([chr(alphabets + 65) for alphabets in range(len(line) - 1)]) + '\n' #the alphabetical column heading
result += f"{-(index + 1)+(20)}"
if (len(result))<2:
result+=' '.join(result)
for characters in line:
result += " " + (characters)
return result
def save_board(filename, board):
with open(filename, "wt") as f:
f.write(board)
b = load_board("l19.txt")
print(b)
save_board("l19b.txt", b)
这给了我一个输出
A B C D E F G H I J K L M N O P Q R S
19 . . . . @ @ @ . O O . . @ . O O O . O
18 @ O O @ O @ . . @ O @ O . . . @ @ . @
17 @ O . . @ O . O O O O O . O O O O O @
16 . . @ @ . O O . @ . . O @ O . @ . O .
15 O . @ . @ . O @ . O O @ @ O . . O @ O
14 O . . . O O O @ . @ @ . . . @ . O @ @
13 . . @ O @ . . @ . . O O O . @ . @ . .
12 . . @ @ . @ @ @ . . . @ O . O . . . @
11 @ O . . @ . @ @ @ @ O . . @ O O O @ O
10 @ . . O . @ @ O @ O O @ @ . @ . O @ .
9 @ O O O . . @ O . . @ @ O @ @ @ . O O
8 @ @ O @ . O O O . @ . O @ . @ @ @ . @
7 @ . O . O @ O O . O O . @ O @ . . @ O
6 @ . . . O @ @ O O @ . @ @ . . O . O .
5 O O @ @ . . O @ @ . @ . @ . O @ @ O .
4 @ . O . . O O . @ O @ O @ O O . @ @ .
3 @ @ O O @ . O . @ . O @ . @ O @ O . .
2 . . . O O @ @ O . @ O . O . @ O O @ .
1 @ @ . @ O . @ @ . . @ O O O O O @ @ @
我试图通过添加一个条件语句来使其对齐,该条件语句声明如果数字的长度小于 2 以添加空格但是它不起作用
【问题讨论】:
-
你的条件永远不会被击中,因为
result正在累积输出——你第一次击中它时它已经超过 2 个字符。 -
@MarkRansom 所说的;此外,
if (len(result))<2: result+=' '.join(result)确实不会做你想做的事(查找 .join 方法);你想要result = ' ' + result。
标签: python