我的打印对帐单只会打印10的倍数,而不会在10

时间:2019-06-17 19:52:04

标签: python python-3.x

我正在创建游戏板,但是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

3 个答案:

答案 0 :(得分:2)

模运算符%在这些情况下很有用-表示“除法后的余数”。因此,66 % 10 = 673 % 12 = 121 % 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)