我正在创建游戏板,但是x轴(列)仅在数字除以10时会打印0 -9。
我可以得到十个打印倍数(10、20等)的倍数,而数字小于十个(0-9)。但是,十位数之间的任何数字都不会打印出十的最后一个倍数。即x = 15次打印0123456789
import random
def getHSpace(xMax):
hspace = ' '*3
if xMax >= 10: # print 10+
print(hspace + ('0123456789' * int(xMax/10)))#<--is there a
better way
else: # print 0-9
for i in range(0, int(xMax)):
hspace+=str(i)
print(hspace)
getHSpace(15)
它应该打印所有数字,直到板子末端。 即x = 15应该打印012345678901234
答案 0 :(得分:2)
模运算符%
在这些情况下很有用-表示“除法后的余数”。因此,66 % 10 = 6
或73 % 12 = 1
或21 % 7 = 0
。
在特定情况下,您可以使用它单独制作一堆行标题,然后将它们连接在一起:
def getHSpace(xMax):
return " " + ''.join(str(i % 10) for i in range(xMax))
这将为介于str(i % 10)
(含)和0
之间的每个数字产生xMax
(即一个数字,但作为字符串)。然后,它使用空字符串作为分隔符将它们连接在一起。
答案 1 :(得分:0)
根据此打印:
print(hspace + ('0123456789' * int(xMax/10)))
当10 <= xMax <20时,int(xMax/10)
等于1,这就是为什么您的打印一次显示'0123456789'的原因,当您尝试xMax> = 20时,您会得到想要的。
答案 2 :(得分:0)
您也可以进行模(%)。
def getHSpace(xMax):
hspace = ' '*3
num='0123456789'
if xMax >= 10: # print 10+
print(hspace + (num * int(xMax/10)) + num[:xMax%10])
else: # print 0-9
for i in range(0, int(xMax)):
hspace+=str(i)
print(hspace)