0

I'm writing a code for 7 segment display (not arduino code) If i enter number as 123 it will print 123 in patterns but the output printed one by one like for loop i want to print it on single line. please tell how to do it for this program

# 7 Segment Display by Python
# Printing number patterns by using for loop

def one():
    for i in range(5):
        print("#")


def two():
    for i in range(5):
        for j in range(3):
            if (i == 1 and (j == 0 or j == 1)) or (i == 3 and (j == 2 or j == 1)):
                print(" ", end="")
            else:
                print("#", end="")
        print()


def three():
    for i in range(5):
        for j in range(3):
            if (i == 1 and (j == 0 or j == 1)) or (i == 3 and (j == 0 or j == 1)):
                print(" ", end="")
            else:
                print("#", end="")
        print()


def four():
    for i in range(5):
        for j in range(3):
            if ((i == 0 or i == 1) and j == 1) or ((i == 3 or i == 4) and (j == 0 or j == 1)):
                print(" ", end="")
            else:
                print("#", end="")
        print()


def five():
    for i in range(5):
        for j in range(3):
            if (i == 1 and (j == 2 or j == 1)) or (i == 3 and (j == 0 or j == 1)):
                print(" ", end="")
            else:
                print("#", end="")
        print()


def six():
    for i in range(5):
        for j in range(3):
            if (i == 1 and (j == 2 or j == 1)) or (i == 3 and j == 1):
                print(" ", end="")
            else:
                print("#", end="")
        print()


def seven():
    for i in range(5):
        for j in range(3):
            if (i == 1 or i == 2 or i == 3 or i == 4) and (j == 0 or j == 1):
                print(" ", end="")
            else:
                print("#", end="")
        print()


def eight():
    for i in range(5):
        for j in range(3):
            if (i == 1 and j == 1) or (i == 3 and j == 1):
                print(" ", end="")
            else:
                print("#", end="")
        print()


def nine():
    for i in range(5):
        for j in range(3):
            if (i == 1 and j == 1) or (i == 3 and (j == 0 or j == 1)):
                print(" ",end="")
            else:
                print("#",end="")
        print()


def zero():
    for i in range(5):
        for j in range(3):
            if (i == 1 and j == 1) or (i == 2 and j == 1) or (i == 3 and j == 1):
                print(" ",end="")
            else:
                print("#",end="")
        print()


def seven_segment_display():

 a = input("Enter number:")  n = list(a)  for i in range (len(n)):
    if n[i] == "0":
      zero()
      print(" ")
    elif n[i]=="1":
       one()
       print(" ")
    elif n[i]=="2":
       two()
       print(" ")
    elif n[i]=="3":
       three()
       print(" ")
    elif n[i]=="4":
       four()
       print(" ")
    elif n[i]=="5":
       five()
       print(" ")
    elif n[i]=="6":
       six()
       print(" ")
    elif n[i]=="7":
       seven()
       print(" ")
    elif n[i]=="8":
       eight()
       print(" ")
    elif n[i]=="9":
       nine()
       print(" ")

seven_segment_display()
JD D
  • 5,937
  • 1
  • 26
  • 39
  • You're also trying to use recursion where iteration should be used. Every time you ask for a new number, you're consuming one more stack frame. Use a loop instead. – Tom Karzes Jun 13 '21 at 13:42

0 Answers0