######################################################################### # 10-row School abacus # by # Michael H ######################################################################### # Description partially extracted from from wikipedia # # Around the world, abaci have been used in pre-schools and elementary # # In Western countries, a bead frame similar to the Russian abacus but # with straight wires and a vertical frame has been common (see image). # Helps schools as an aid in teaching the numeral system and arithmetic # # |00000***** | row factor 1000000000 # |00000***** | row factor 100000000 # |00000***** | row factor 10000000 # |00000***** | row factor 1000000 # |00000***** | row factor 100000 # |00000***** | row factor 10000 # |00000***** | row factor 1000 # |00000**** *| row factor 100 * 1 # |00000*** **| row factor 10 * 2 # |00000** ***| row factor 1 * 3 # ----------- # Sum 123 # # Each row represents a different row factor, starting with x1 at the # bottom, ascending up to x1000000000 at the top row. ###################################################################### # TASK: # Define a procedure print_abacus(integer) that takes a positive integer # and prints a visual representation (image) of an abacus setup for a # given positive integer value. # # Ranking # 1 STAR: solved the problem! # 2 STARS: 6 < lines <= 9 # 3 STARS: 3 < lines <= 6 # 4 STARS: 0 < lines <= 3 def print_abacus(value): # ### Add you code here n=9 while n>=0: entire=value/(10**n) print '|'+'00000*****'[:10-entire]+' '+'00000*****'[10-entire:]+'|' value=value-entire*(10**n) n=n-1 # ### TEST CASES print "Abacus showing 0:" print_abacus(0) #>>>|00000***** | #>>>|00000***** | #>>>|00000***** | #>>>|00000***** | #>>>|00000***** | #>>>|00000***** | #>>>|00000***** | #>>>|00000***** | #>>>|00000***** | #>>>|00000***** | print "Abacus showing 12345678:" print_abacus(12345678) #>>>|00000***** | #>>>|00000***** | #>>>|00000**** *| #>>>|00000*** **| #>>>|00000** ***| #>>>|00000* ****| #>>>|00000 *****| #>>>|0000 0*****| #>>>|000 00*****| #>>>|00 000*****| print "Abacus showing 1337:" print_abacus(1337) #>>>|00000***** | #>>>|00000***** | #>>>|00000***** | #>>>|00000***** | #>>>|00000***** | #>>>|00000***** | #>>>|00000**** *| #>>>|00000** ***| #>>>|00000** ***| #>>>|000 00*****|
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