首页 > 解决方案 > 我的打印语句只会打印 10 的倍数,而不是介于两者之间

问题描述

我正在创建一个游戏板,但如果数字可被 10 整除,x 轴(列)只会打印 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

标签: pythonpython-3.x

解决方案


模运算符%对这些情况很有用——它代表“除法后的余数”。所以, 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)(即,一个数字,但作为字符串)。然后,它使用空字符串作为分隔符将它们连接在一起。0xMax


推荐阅读