I am trying to create ruler by print, it should look like this for input value 5:
Im trying to change in my code numbers to symbols, my code is:
length = str(input("Enter the ruler length = "))
def ruler(string):
top = []
top_out = []
bottom = []
for i in range(length):
top.append((i 1)//10)
bottom.append((i 1))
for i in range(length):
if ((i 1)//10) == 0:
top_out.append(" ")
elif (((i 1)//10) in list(sorted(set(top)))) and (((i 1)//10) not in top_out):
top_out.append(((i 1)//10))
else:
top_out.append(" ")
print (''.join(list(map(str, top_out))))
print (''.join(list(map(str,bottom))))
print (string)
How to correct it to get appropriate output format of a ruler?
CodePudding user response:
Ruler printing can be down by pretty small function like this,
def print_ruler(n):
print('|....'*(n) '|')
print(''.join(f'{i:<5}' for i in range(n 1)))
Execution:
In [1]: print_ruler(5)
|....|....|....|....|....|
0 1 2 3 4 5
In [2]: print_ruler(10)
|....|....|....|....|....|....|....|....|....|....|
0 1 2 3 4 5 6 7 8 9 10
In [3]: print_ruler(15)
|....|....|....|....|....|....|....|....|....|....|....|....|....|....|....|
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
For double-digit numbers, It doesn't come to the center.
For ex: For 12
, |
align with number 1
or 2
it can't not make into the center of 12