为了账号安全,请及时绑定邮箱和手机立即绑定

我的打印语句只会打印 10 的倍数,而不是介于两者之间

我的打印语句只会打印 10 的倍数,而不是介于两者之间

PIPIONE 2022-03-09 20:48:13
我正在创建一个游戏板,但如果数字可被 10 整除,x 轴(列)只会打印 0 -9。我能够打印十的倍数(10、20、...等)和小于十的数字(0-9)。但是十位之间的任何数字都不会打印十的最后倍数。即 x= 15 次打印 0123456789import randomdef 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 回答

?
慕妹3146593

TA贡献1820条经验 获得超9个赞

模运算符%对这些情况很有用——它代表“除法后的余数”。所以, 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


查看完整回答
反对 回复 2022-03-09
?
临摹微笑

TA贡献1982条经验 获得超2个赞

你也可以做模(%)。


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)


查看完整回答
反对 回复 2022-03-09
?
拉风的咖菲猫

TA贡献1995条经验 获得超2个赞

根据此印刷品:

print(hspace + ('0123456789' * int(xMax/10)))

当 10 <= xMax < 20 时,int(xMax/10)将等于 1,这就是为什么您的打印显示一次“0123456789”,当您尝试 xMax >= 20 时,您将得到您想要的。


查看完整回答
反对 回复 2022-03-09
  • 3 回答
  • 0 关注
  • 125 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信