话不多说,直接上代码
"""
1.绘制刻度线个数
2.绘制刻度线是否有数字标识
"""
def draw_line(length,lable=''): #tick_lable要赋值,否则会出现参数上传错误
#两种情况,是否带标签
if lable: #判断是否存在标签
line='_'*length+' '+lable
else:
line = '_' * length
print(line)
def draw_interval(length):
if length>0: #判断是否存在刻度线
# 一段距离内的刻度线上下关于中心对称
draw_interval(length-1)
draw_line(length)
draw_interval(length-1)
def draw_ruler(num,length): #num为标尺的长度,length为刻度线最大数量
draw_line(length,'0') #起点0由于特殊无法遍历,因此优先绘制出
#绘制刻度值
for i in range(1,1+num): #range()包头不包尾
#draw_interval放在循环里是因为要对每两个数字刻度间都进行绘制
draw_interval(length - 1) # 除取带数字的刻度,其余最大的比刻度少1
draw_line(length,str(i)) #i必须为字符串格式
def def_num():
x, y =input("please input num_inches and major_length,split use ' '").split() # x,y此时都是str类型,输入时用空格隔开
x=int(x) #将str类型的x,y转换为整型
y=int(y)
draw_ruler(x,y)
if __name__ == '__main__':
def_num()
输入(3 4)运行结果如图
please input num_inches and major_length,split use ' '3 4
____ 0
_
__
_
___
_
__
_
____ 1
_
__
_
___
_
__
_
____ 2
_
__
_
___
_
__
_
____ 3