For example, let's say I want to go through each character in a string and print it like this
for x in "Python":
print(x)
This prints
P
y
t
h
o
n
How do I make it print this instead?
Python
My second question is when I print two variables how do I avoid printing the white space in between them? for example when I type this:
x = 5
y = 6
print(x, y)
it prints this
5 6
but I want it to print it like this with no white space in between the 5 and 6
56
Don't forget Python's built in help system. For example:
>>> help(print)
Output:
Help on built-in function print in module builtins:
print(...)
print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)
Prints the values to a stream, or to sys.stdout by default.
Optional keyword arguments:
file: a file-like object (stream); defaults to the current sys.stdout.
sep: string inserted between values, default a space.
end: string appended after the last value, default a newline.
flush: whether to forcibly flush the stream.
Shows that print() is pretty handy - can use to write to files, create an easy csv file (print to file and use sep=", "), use a newline or not, etc.
You can format what is printed. I like this as it gives me total control.
x, y = 5, 6
print(f"My numbers are ({x},{y})")
Output:
My numbers are (5,6)
As for printing multiple prints on one line, you can do that with stdout.write() and print(end=""), but I prefer not doing multiple prints.
This is a bit of code I extracted from a tic-tac-toe game. In uses str formatting and str joining to print out the tic-tac-toe board.
class Board():
def __init__(self, board):
self.board = list(board)
def __str__(self):
rows = [f" {self.board[i]} | {self.board[i+1]} | {self.board[i+2]}" for i in range(0, 9, 3)]
return "\n---+---+---\n".join(rows)
winner = "O"
ttt = Board("OX OXX O")
print(f" The winner is {winner}\n\n{ttt}")
Output:
The winner is O
O | X |
---+---+---
| O | X
---+---+---
X | | O
By making the entire board a str it is easy to ask the where to place the next "X".
pos = input(f"{board}\n {player}: ")