On Sat, 12 Nov 2005, Bojan Raicevic wrote: > I'm not sure how explain my problem, but I'll try. > > I want to make something that looks like console quiz. > So it would look somehow like this: > > print "Question one (a,b,c,d): " > #user should answer with a,b,c or d - anything else > inputed should result without reaction - **my > problem** I DON'T want to see in console output > repeated questions like: > > Question one (a,b,c,d): ftbryj > Question one (a,b,c,d): asdf > Question one (a,b,c,d): a > Question two (1,2,3,4): b > Question two (1,2,3,4): 5 > Question two (1,2,3,4): 2 > Question three (a,b,c): > ... > > I want to see only: > > Question one (a,b,c,d): a > Question two (1,2,3,4): 3 > Question three (a,b,c): c > Question four (1-10): 9 > ... > > So basicly, I want to see in console output only > correct answers. > Any idea how to do this ??
ANSI is the standard for terminal control, so I usually code for that, but put it in a separate module so that other terminals can easily be accommodated. Here is a short example: import sys import os COLUMNS = int(os.environ.get('COLUMNS')) LINES = int(os.environ.get('LINES')) ESC = '\033' CSI = ESC + "[" ## Command Sequence Introducer CLS = CSI + "H" + CSI + "2J" ## Clear screen NA = CSI + "0m" ## Clear text attributes ## set attributes set_attr = CSI + "%sm" set_bold = CSI + "1m" set_ul = CSI + "4m" set_rev = CSI + "7m" def printat(row,col,arg=""): sys.stdout.write( CSI + str(row) + ";" + str(col) + 'H' + str(arg)) ### Demo: row = 10 col = 30 print CLS printat( row, col, set_bold + "Hello, world" ) printat( LINES, COLUMNS - 6, NA + "Goodbye" ) printat( 1, 1) -- Chris F.A. Johnson <http://cfaj.freeshell.org> =================================================================== Author: Shell Scripting Recipes: A Problem-Solution Approach (2005, Apress) _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor