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对象中的第六个元素,它不存在,因此会出错)