On 08/19/2012 12:25 PM, crispy wrote: > <SNIP> > So I have guessed, that characters processed by .rjust() function, are placed > in output, relative to previous ones - NOT to first, most to left placed, > character.
rjust() does not print to the console, it just produces a string. So if you want to know how it works, you need to either read about it, or experiment with it. Try help("".rjust) to see a simple description of it. (If you're not familiar with the interactive interpreter's help() function, you owe it to yourself to learn it). Playing with it: print "abcd".rjust(8, "-") produces ----abcd for i in range(5): print "a".rjust(i, "-") produces: a a -a --a ---a In each case, the number of characters produced is no larger than i. No consideration is made to other strings outside of the literal passed into the method. > Why it works like that? In your code, you have the rjust() method inside a loop, inside a join, inside a print. it makes a nice, impressive single line, but clearly you don't completely understand what the pieces are, nor how they work together. Since the join is combining (concatenating) strings that are each being produced by rjust(), it's the join() that's making this look "relative" to you. > What builtn-in function can format output, to make every character be placed > as i need - relative to the first character, placed most to left side of > screen. If you want to randomly place characters on the screen, you either want a curses-like package, or a gui. i suspect that's not at all what you want. if you want to randomly change characters in a pre-existing string, which will then be printed to the console, then I could suggest an approach (untested) res = [" "] * length for column in similarity: res[column] = "|" res = "".join(res) -- DaveA -- http://mail.python.org/mailman/listinfo/python-list