打印给出不同的输出

print gives different output

我正在尝试在 python 中制作一个 12x12 二进制益智游戏。 游戏中没有 GUI,只有 shell。 为了获取图块的值,我创建了一个导入函数,该函数使用 xlrd 从 excel 文档导入值。 现在我正在制作一个打印板的功能,但有些地方不太对劲:

(抱歉图片太大)

这是我的代码:

主要:

import Import as imp
import print as prt

data = imp.getInput("C:/Users/jaspe/PyCharmProjects/BinaryPuzzle/INPUT.xls")
print(data)
print(data[6])
prt.printField(data)

导入:

import xlrd


def getInput(loc):
    wb = xlrd.open_workbook(loc)
    sheet = wb.sheet_by_index(0)
    data = [[], [], [], [], [], [], [], [], [], [], [], []]
    i = 0
    while i < 12:
        data[i].append(sheet.cell_value(i, 0))
        data[i].append(sheet.cell_value(i, 1))
        data[i].append(sheet.cell_value(i, 2))
        data[i].append(sheet.cell_value(i, 3))
        data[i].append(sheet.cell_value(i, 4))
        data[i].append(sheet.cell_value(i, 5))
        data[i].append(sheet.cell_value(i, 6))
        data[i].append(sheet.cell_value(i, 7))
        data[i].append(sheet.cell_value(i, 8))
        data[i].append(sheet.cell_value(i, 9))
        data[i].append(sheet.cell_value(i, 10))
        data[i].append(sheet.cell_value(i, 11))
        j = 0
        while j < len(data[i]):
            if data[i][j] != "":
                data[i][j] = int(data[i][j])
            j = j + 1
        i = i + 1
    return data

打印:

def printField(d):
    i = 0
    d_ = []
    while i < len(d):
        d_.append([])
        j = 0
        while j < len(d[i]):
            d_[i].append(d[i][j])
            if d_[i][j] == "":
                d_[i][j] = "_"
            j = j + 1
        i = i + 1
    space = "  "
    print(str(d_[0][0]) + space + str(d_[0][1]) + space + str(d_[0][2]) + space + str(d_[0][3]) + space + str(
        d_[0][4]) + space + str(d_[0][5]) + space + str(d_[0][
                                                          6]) + space + str(d_[0][7]) + space + str(
        d_[0][8]) + space + str(d_[0][8]) + space + str(d_[0][9]) + space + str(d_[0][10]) + space + str(d_[0][11]))
    print(str(d_[1][0]) + space + str(d_[1][1]) + space + str(d_[1][2]) + space + str(d_[1][3]) + space + str(
        d_[1][4]) + space + str(d_[1][5]) + space + str(d_[1][
                                                          6]) + space + str(d_[1][7]) + space + str(
        d_[1][8]) + space + str(d_[1][8]) + space + str(d_[1][9]) + space + str(d_[1][10]) + space + str(d_[1][11]))
    print(str(d_[2][0]) + space + str(d_[2][1]) + space + str(d_[2][2]) + space + str(d_[2][3]) + space + str(
        d_[2][4]) + space + str(d_[2][5]) + space + str(d_[2][
                                                          6]) + space + str(d_[2][7]) + space + str(
        d_[2][8]) + space + str(d_[2][8]) + space + str(d_[2][9]) + space + str(d_[2][10]) + space + str(d_[2][11]))
    print(str(d_[3][0]) + space + str(d_[3][1]) + space + str(d_[3][2]) + space + str(d_[3][3]) + space + str(
        d_[3][4]) + space + str(d_[3][5]) + space + str(d_[3][
                                                          6]) + space + str(d_[3][7]) + space + str(
        d_[3][8]) + space + str(d_[3][8]) + space + str(d_[3][9]) + space + str(d_[3][10]) + space + str(d_[3][11]))
    print(str(d_[4][0]) + space + str(d_[4][1]) + space + str(d_[4][2]) + space + str(d_[4][3]) + space + str(
        d_[4][4]) + space + str(d_[4][5]) + space + str(d_[4][
                                                          6]) + space + str(d_[4][7]) + space + str(
        d_[4][8]) + space + str(d_[4][8]) + space + str(d_[4][9]) + space + str(d_[4][10]) + space + str(d_[4][11]))
    print(str(d_[5][0]) + space + str(d_[5][1]) + space + str(d_[5][2]) + space + str(d_[5][3]) + space + str(
        d_[5][4]) + space + str(d_[5][5]) + space + str(d_[5][
                                                          6]) + space + str(d_[5][7]) + space + str(
        d_[5][8]) + space + str(d_[5][8]) + space + str(d_[5][9]) + space + str(d_[5][10]) + space + str(d_[5][11]))
    print(str(d_[6][0]) + space + str(d_[6][1]) + space + str(d_[6][2]) + space + str(d_[6][3]) + space + str(
        d_[6][4]) + space + str(d_[6][5]) + space + str(d_[6][
                                                          6]) + space + str(d_[6][7]) + space + str(
        d_[6][8]) + space + str(d_[6][8]) + space + str(d_[6][9]) + space + str(d_[6][10]) + space + str(d_[6][11]))
    print(str(d_[7][0]) + space + str(d_[7][1]) + space + str(d_[7][2]) + space + str(d_[7][3]) + space + str(
        d_[7][4]) + space + str(d_[7][5]) + space + str(d_[7][
                                                          6]) + space + str(d_[7][7]) + space + str(
        d_[7][8]) + space + str(d_[7][8]) + space + str(d_[7][9]) + space + str(d_[7][10]) + space + str(d_[7][11]))
    print(str(d_[8][0]) + space + str(d_[8][1]) + space + str(d_[8][2]) + space + str(d_[8][3]) + space + str(
        d_[8][4]) + space + str(d_[8][5]) + space + str(d_[8][
                                                          6]) + space + str(d_[8][7]) + space + str(
        d_[8][8]) + space + str(d_[8][8]) + space + str(d_[8][9]) + space + str(d_[8][10]) + space + str(d_[8][11]))
    print(str(d_[9][0]) + space + str(d_[9][1]) + space + str(d_[9][2]) + space + str(d_[9][3]) + space + str(
        d_[9][4]) + space + str(d_[9][5]) + space + str(d_[9][
                                                          6]) + space + str(d_[9][7]) + space + str(
        d_[9][8]) + space + str(d_[9][8]) + space + str(d_[9][9]) + space + str(d_[9][10]) + space + str(d_[9][11]))
    print(str(d_[10][0]) + space + str(d_[10][1]) + space + str(d_[10][2]) + space + str(d_[10][3]) + space + str(
        d_[10][4]) + space + str(d_[10][5]) + space + str(d_[10][
                                                            6]) + space + str(d_[10][7]) + space + str(
        d_[10][8]) + space + str(d_[10][8]) + space + str(d_[10][9]) + space + str(d_[10][10]) + space + str(d_[10][11]))
    print(str(d_[11][0]) + space + str(d_[11][1]) + space + str(d_[11][2]) + space + str(d_[11][3]) + space + str(
        d_[11][4]) + space + str(d_[11][5]) + space + str(d_[11][
                                                            6]) + space + str(d_[11][7]) + space + str(
        d_[11][8]) + space + str(d_[11][8]) + space + str(d_[11][9]) + space + str(d_[11][10]) + space + str(d_[11][11]))

我知道这是一些低效的代码,但如果它能工作它并不愚蠢(但它不工作所以它很愚蠢)

tnx 4 帮助!

编辑: Tnx @blorgon 和@T1Berger,问题已解决,tnx 伙计们!

您在 space 和 str(d_[x][8])

的每个索引中都出现了复制和粘贴错误

正如@blorgon 指出的那样,您应该重构您的代码 - 例如,一个 foreach 循环遍历嵌套数组的元素。一个简单的列表理解应该可以解决问题,并且更容易编码和理解:

[print(' '.join(nested_list )) for nested_list in data]

你已经为每一行打印了两次 str(d_[x][8]) 。 这里有很多更好的选择,但只是指出你方法中的错误。