Reputation: 45
I have written a code to display the seven segment output. Whereas I need to display the output side by side. Say input: 123 , output should display seven segment side by side as below
# ### ###
# # #
# ### ###
# # #
# ### ###
Here is my logic:
dict = {0:('###','# #','# #','# #','###'),
1:(' #',' #',' #',' #',' #'),
2:('###',' #','###','# ','###'),
3:('###',' #','###',' #','###'),
4:('# ','# ','###',' #',' #'),
5:('###','# ','###',' #','###'),
6:('###','# ','###','# ','###'),
7:('###',' #',' #',' #',' #'),
8:('###','# #','###','# #','###')}
value = input("enter value:")
for i in value:
list1 = dict.get(int(i))
print('\n'.join(list1))
Upvotes: 3
Views: 740
Reputation: 1
I think this is the shortest solution...
pattern = [' # ', '# ', '# # ', '### ']
numb = [[3, 2, 2, 2, 3], [0, 0, 0, 0, 0], [3, 0, 3, 1, 3], [3, 0, 3, 0, 3], [2, 2, 3, 0, 0],
[3, 1, 3, 0, 3], [3, 1, 3, 2, 3], [3, 0, 0, 0, 0], [3, 2, 3, 2, 3], [3, 2, 3, 0, 3]]
nimp = input('Input number: ')
for i in range (5):
print('')
for n in nimp:
print(pattern[numb[int(n)][i]], end=' ')
Upvotes: 0
Reputation: 1
numbers = {
'0': ('###', '# #', '# #', '# #', '###'),
'1': (' #', ' #', ' #', ' #', ' #'),
'2': ('###', ' #', '###', '# ', '###'),
'3': ('###', ' #', '###', ' #', '###'),
'4': ('# #', '# #', '###', ' #', ' #'),
'5': ('###', '# ', '###', ' #', '###'),
'6': ('###', '# ', '###', '# #', '###'),
'7': ('###', ' #', ' #', ' #', ' #'),
'8': ('###', '# #', '###', '# #', '###'),
'9': ('###', '# #', '###', ' #', '###'),
}
def led_lights(number):
for i in range(5):
line =[]
for j in str(number):
line.append(numbers[j][i])
print(' '.join(line))
led_lights(9081726354)
Upvotes: -1
Reputation: 3584
Try the following:
dict = {0:('###','# #','# #','# #','###'),
1:(' #',' #',' #',' #',' #'),
2:('###',' #','###','# ','###'),
3:('###',' #','###',' #','###'),
4:('# ','# ','###',' #',' #'),
5:('###','# ','###',' #','###'),
6:('###','# ','###','# ','###'),
7:('###',' #',' #',' #',' #'),
8:('###','# #','###','# #','###')}
value = input("enter value:")
for seg in range(5):
print(' '.join([dict.get(int(i))[seg] for i in value]))
You need to print the segments side by side, so you should start by printing the top column of all the numbers, the second, and so on. I'm using a list comprehension to join the numbers together for each column.
Upvotes: 3