#---------------------------------------------- # Animated Banner Program # More programs at UsingPython.com/programs #---------------------------------------------- #---------------------------------------------------------------- # Challenges: # # 1. Change the display width to 5. Note what happens. # 2. Add more letters to the characters dictionary. # 3. Make a banner for your name, or a chosen message. # 4. Allow the user to enter their message. # 5. Print a border around the edge of the display. # 6. Allow the user to choose their banner character [*/#/etc.]. # (HINT: to do this, turn the dictionary into a binary image). #---------------------------------------------------------------- #allows us to clear the console screen. import os import time #the width of the display #(the windows console is 79 characters wide). WIDTH = 79 #the message we wish to print message = "Hello!".upper() #the printed banner version of the message #this is a 7-line display, stored as 7 strings #initially, these are empty. printedMessage = [ "","","","","","","" ] #a dictionary mapping letters to their 7-line #banner display equivalents. each letter in the dictionary #maps to 7 strings, one for each line of the display. characters = { " " : [ " ", " ", " ", " ", " ", " ", " " ], "E" : [ "*****", "* ", "* ", "*****", "* ", "* ", "*****" ], "H" : [ "* *", "* *", "* *", "*****", "* *", "* *", "* *" ], "O" : [ "*****", "* *", "* *", "* *", "* *", "* *", "*****" ], "L" : [ "* ", "* ", "* ", "* ", "* ", "* ", "*****" ], "!" : [ " * ", " * ", " * ", " * ", " * ", " ", " * " ] } #build up the printed banner. to do this, the 1st row of the #display is created for each character in the message, followed by #the second line, etc.. for row in range(7): for char in message: printedMessage[row] += (str(characters[char][row]) + " ") #the offset is how far to the right we want to print the message. #initially, we want to print the message just off the display. offset = WIDTH while True: os.system("cls") #print each line of the message, including the offset. for row in range(7): print(" " * offset + printedMessage[row][max(0,offset*-1):WIDTH - offset]) #move the message a little to the left. offset -=1 #if the entire message has moved 'through' the display then #start again from the right hand side. if offset <= ((len(message)+2)*6) * -1: offset = WIDTH #take out or change this line to speed up / slow down the display time.sleep(0.05)
Run
Reset
Share
Import
Link
Embed
Language▼
English
中文
Python Fiddle
Python Cloud IDE
Follow @python_fiddle
Browser Version Not Supported
Due to Python Fiddle's reliance on advanced JavaScript techniques, older browsers might have problems running it correctly. Please download the latest version of your favourite browser.
Chrome 10+
Firefox 4+
Safari 5+
IE 10+
Let me try anyway!
url:
Go
Python Snippet
Stackoverflow Question