打印给出不同的输出
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]) 。
这里有很多更好的选择,但只是指出你方法中的错误。
我正在尝试在 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]) 。 这里有很多更好的选择,但只是指出你方法中的错误。