Disclaimer I'm only 10 days into learning Python (little to no experience in any language prior to this)
I'm having difficulty conceptualizing my problem and thus, a solution for it.
I currently have the following code:
spacer = "_|_"
spacer_btm = " | "
blank = "_"
blank_btm = " "
print(blank + spacer + blank + spacer + blank)
print(blank + spacer + blank + spacer + blank)
print(blank_btm + spacer_btm + blank_btm + spacer_btm + blank_btm)
This is going to print out a grid. Originally i had the blank and blank_btm variables split into 9 separate variables, each denoting a space in the grid that I want to change. The problem I have is that since these are strings, they are immutable. I want to change that blank space/underscore value for something else based on the result of a user input. Ideally the value that replaces the blank or blank_btm would also be a string, but I'm confounded as to what sort of process I should use to get there.
for example if the input is 1 lets say that would mean the top left box in the grid gets "A" (or literally anything as a string)
For reference the previous code I had was
spacer = str("_|_")
spacer_btm = " | "
a1 = str("_")
a2 = str("_")
a3 = str("_")
b4 = str("_")
b5 = str("_")
b6 = str("_")
c7 = str(" ")
c8 = str(" ")
c9 = str(" ")
print(a1 + spacer + a2 + spacer + a3)
print(b4 + spacer + b5 + spacer + b6)
print(c7 + spacer_btm + c8 + spacer_btm + c9)
I liked the answer @misterwtf gave but I'll just move a step ahead and make an assumption that you would want the grid to be fixed and would want to fill the values in the boxes, like in tic-tac-toe.
If you have studied about python dictionary, I'd suggest you to use one.
You can simply define the dict variable like:
board = {'9': ' ' , '8': ' ' , '7': ' ' ,
'6': ' ' , '5': ' ' , '4': ' ' ,
'3': ' ' , '2': ' ' , '1': ' ' }
and then make the grid like:
print(' ' + board['9'] + ' |' + ' ' + board['8'] + ' |' + ' ' + board['7'])
print('---|---|---')
print(' ' + board['6'] + ' |' + ' ' + board['5'] + ' |' + ' ' + board['4'])
print('---|---|---')
print(' ' + board['3'] + ' |' + ' ' + board['2'] + ' |' + ' ' + board['1'])
It would be better if you make this^ into a function (study about that as well).
Now, you can take the input from the user. Say, you want to fill the top-left box. You'll simply write:
board['9'] = input()
and now when you make the grid again, voila. you've successfully entered the value in the grid.
The closest solution to your code I can think of is the following one.
spacer = "_|_"
spacer_btm = " | "
blank = "_"
blank_btm = " "
print(('A' if input() == '1' else blank) + spacer + blank + spacer + blank)
print(blank + spacer + blank + spacer + blank)
print(blank_btm + spacer_btm + blank_btm + spacer_btm + blank_btm)
When Python executes the input
builtin function, the program hangs until you press ENTER .
I would not do it like this but I don't want to give you a solution you would not understand. For example, I suppose you need to prompt the user repeatedly, in a read-eval-print loop, but do you know what a while
loop is?
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.