Python 如何将标签放入板中?

Python 如何将标签放入板中?,python,python-3.x,Python,Python 3.x,我想做一个基本上是文字搜索的棋盘游戏。我想创建一个具有如下标签的板: 1 2 3 4 1 q w e r 2 p o t t 3 q y h f row = 5 Labels_rows = range(1, row+1) print(*Labels_rows) 我已经创建了一个工作代码,允许用户输入行数和列数以及板本身的内容。现在的问题是,我似乎无法正确打印。以下是我的工作代码: # -*- coding: utf-8 -*- """ Crea

我想做一个基本上是文字搜索的棋盘游戏。我想创建一个具有如下标签的板:

    1  2  3  4 
1   q  w  e  r
2   p  o  t  t
3   q  y  h  f
row = 5
Labels_rows = range(1, row+1)

print(*Labels_rows)
我已经创建了一个工作代码,允许用户输入行数和列数以及板本身的内容。现在的问题是,我似乎无法正确打印。以下是我的工作代码:

# -*- coding: utf-8 -*-
"""
Created on Tue Sep 17 00:40:13 2019

@author: Oscar Simon Velasco
"""
def get_words(n,words):
    global given_words
    count=1
    final=[given_words]
    while n!=count:
        count=count+1
        words=input('Enter a word:')
        final.append(words)
    return final

def sort_words(sorted__):
    global sorted_words
    bank={}
    x=sorted_words
    x.sort()
    W2=1
    print('Sorted words:')
    for y in x:
        print(y)
    for z in sorted_words:
        bank.update({W2:z})
        W2=W2+1
    print(bank)

def populate_board(RxC,letter):
    global letters_in_rows
    count=1
    final=[letters_in_rows]
    while RxC!=count:
        letter=input('Enter row:')
        count=count+1
        final.append(letter)
    print(final)
    return final

def print_board(a,row):
    b=[]
    for x in a:
        b.append(x)
    Labels_columns=range(1,row+1)
    Labels_rows=range(1,row+1)
    print(" ", end="")
    for c in Labels_columns :
        print(" " + str(c), end="")      
    print()       

    for i in range(1,row+1) :
        print(str(Labels_rows[i]), end="")
        for elt in b[i] :
            print(" " + str(elt), end="")
    print()                         



num_words=int(input('Enter desired number of words:'))   
given_words=input('Enter a word:')
sorted_words=get_words(num_words,given_words)

sort_words(sorted_words)

Number_rows=int(input('Enter number of rows and column:'))
letters_in_rows=str(input('Enter row:'))
board=populate_board(Number_rows,letters_in_rows)

print_board(letters_in_rows,Number_rows)
据说打印电路板的功能是:

def print_board(a,row):
        b=[]
        for x in a:
            b.append(x)
        Labels_columns=range(1,row+1)
        Labels_rows=range(1,row+1)
        print(" ", end="")
        for c in Labels_columns :
            print(" " + str(c), end="")      
        print()       

        for i in range(1,row+1) :
            print(str(Labels_rows[i]), end="")
            for elt in b[i] :
                print(" " + str(elt), end="")
        print()   
但我在以下行中遇到错误“IndexError:列表索引超出范围”:

print(str(Labels_rows[i]), end="")

我不明白它为什么这么做,我知道我还是python的新手,我确信这里一定有潜在的原因。我真的需要帮助来解决这个问题。提前谢谢你

只需将其更改为
范围(1,行)
<代码>行+1超出了列表的长度。

执行此操作时:

Labels_rows=range(1,row+1)
您没有列表(仅供参考)。您正在将
范围
对象绑定到变量名
标签\u行
。假设
是5。如果对内容进行评估,它们看起来如下所示:

    1  2  3  4 
1   q  w  e  r
2   p  o  t  t
3   q  y  h  f
row = 5
Labels_rows = range(1, row+1)

print(*Labels_rows)
输出:

1 2 3 4 5
正如所料。 在for循环中,您在相同的范围内迭代,但将该范围内的值用作
标签\u行
范围对象的索引。这意味着您将在索引1处开始迭代(而不是0,这不会导致错误,但可能不是故意的),循环将尝试运行到索引5(这将是
Labels\u rows
range对象中的第六个元素,它不存在,因此会出错)