猿问

我的打印语句只会打印 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


PIPIONE
浏览 126回答 3
3回答

慕妹3146593

模运算符%对这些情况很有用——它代表“除法后的余数”。所以, 66 % 10 = 6, 或73 % 12 = 1, 或21 % 7 = 0.在您的特定情况下,您可以使用它单独制作一堆行标题,然后将它们连接在一起:def getHSpace(xMax):&nbsp; &nbsp; return "&nbsp; &nbsp;" + ''.join(str(i % 10) for i in range(xMax))这为包含和不包含之间的每个数字生成str(i % 10)(即,一个数字,但作为字符串)。然后,它使用空字符串作为分隔符将它们连接在一起。0xMax

临摹微笑

你也可以做模(%)。def getHSpace(xMax):&nbsp; &nbsp; hspace = ' '*3&nbsp; &nbsp; num='0123456789'&nbsp; &nbsp; if xMax >= 10: # print 10+&nbsp; &nbsp; &nbsp; &nbsp; print(hspace + (num * int(xMax/10)) + num[:xMax%10])&nbsp; &nbsp; else: # print 0-9&nbsp; &nbsp; &nbsp; &nbsp; for i in range(0, int(xMax)):&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; hspace+=str(i)&nbsp; &nbsp; &nbsp; &nbsp; print(hspace)

拉风的咖菲猫

根据此印刷品:print(hspace + ('0123456789' * int(xMax/10)))当 10 <= xMax < 20 时,int(xMax/10)将等于 1,这就是为什么您的打印显示一次“0123456789”,当您尝试 xMax >= 20 时,您将得到您想要的。
随时随地看视频慕课网APP

相关分类

Python
我要回答