我正在尝试制作战列舰网格,左侧是数字,顶部是字母。我很困惑你如何打印出一定数量的字母并用python添加它们。对于Python来说,我是一个非常新的初学者。
例如:
def displayGrid(Rows,Columns):
output = '| '
for title in range(97,110):
output = output + chr(title)
output = output + ' |'
print(output)
for row in range(Rows):
output = str(row + 1) + '| '
for col in range(Columns):
output = output + " | "
print(output)
Rows = int(input("Number of rows you want? \n"))
Columns = int(input("Number of columns you want? \n"))
displayGrid(Rows, Columns)
我想要它,所以Columns的数量是它打印出的字母数,但我似乎无法弄明白。
答案 0 :(得分:1)
你的第一个循环(for title in range(97,110):
)将始终具有固定长度(110-97 = 13个元素),因此无论你有多少列,你总是会以相同的第一行结束想。
尝试for title in range(97, 97+Columns):
答案 1 :(得分:0)
替换此
for title in range(97,110):
output = output + chr(title)
output = output + ' |'
print(output)
通过
output = " |" +"|".join([chr(i) for i in range(97,97+Columns)])
print(output)
答案 2 :(得分:0)
您可以通过
访问小写字母from string import lowercase
实现你的字符串的一个简洁方法是:
result = "| " + " | ".join(lowercase[0:size]) + " |"
答案 3 :(得分:-1)
很少提示 -
当你有一个iteratable你想要打印并加入某个分隔符时你可以使用join -
'|'.join(["a", "b", "c"])
a|b|c
from string import lowercase
将为您提供一个字符串(您可以迭代)所有小写字母。
检查python itertools - https://docs.python.org/2/library/itertools.html