python - 我的打印语句只会打印 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
解决方案
模运算符%
对这些情况很有用——它代表“除法后的余数”。所以, 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
推荐阅读
- java - 在 IDEA 中,如何自动在代码和注释之间添加空格?
- websocket - 通过加入方法添加功能时websocket无法正常工作
- javascript - Firebase 查询示例返回无用的对象
- api - 艾玛迪斯自助服务 API 预订
- apache-spark - Pyspark - 选择至少连续 2 天看到的用户
- java - 如何在recyclerview上实现onclick方法?
- javascript - javascript中的替换函数没有替换正则表达式匹配的正确索引
- c++ - 明确允许在主要类型和用户定义类型之间进行类型转换
- mysql - Angular Node.js mysql 喜欢不喜欢按钮
- c# - 实例化多个预制件