2016-05-01 2 views
0

Ich versuche, ein Brett zu machen, die wie folgt aussieht:Wie Zeichen Während Parameter Drucken Passing

x ! x ! x 

~ ~ ~ ~ ~ 

x ! x ! x 

~ ~ ~ ~ ~ 

x ! x ! x 

Das ist, was ich bisher habe:

def print_tic_tac_toe(horiz_char, vert_char): 
    print(vert_char*2) 
    print(horiz_char*5) 
    return 

print_tic_tac_toe('~', '!') 

Ich verstehe nicht, heraus, wie man das 'x' zum Drucken zwischen den vertikalen Zeichen bekommt. Wie soll ich das machen? Ist ein Newline-Charakter beteiligt?

+0

Sie möchten Sie, so etwas tun ? [Quadrat ähnlich] (https://stackoverflow.com/questions/36903763/combine-same-function-with-different-parameters-python) – Milor123

Antwort

0

Verwenden join die vert_char zu verwenden, um eine Liste von x s zu verbinden. Etw. so wie:

def print_tic_tac_toe(horiz_char, vert_char): 
    print(vert_char.join(['x']*3)) 
    print(horiz_char*5) 
    print(vert_char.join(['x']*3)) 
    print(horiz_char*5) 
    print(vert_char.join(['x']*3)) 

print_tic_tac_toe('~', '!') 

x!x!x 
~~~~~ 
x!x!x 
~~~~~ 
x!x!x 

oder kürzer:

def print_tic_tac_toe(horiz_char, vert_char): 
    print(('\n'+(horiz_char*5)+'\n').join(vert_char.join(['x']*3) for _ in range(3))) 
0

Sie können wie folgt versuchen:

def print_tic_tac_toe(horiz_char = '', vert_char = ''): 
    print(('X '+vert_char)*2+'X') 
    if horiz_char != '': 
     print(horiz_char*5) 
    return 

print_tic_tac_toe('~ ', '! ') 
print_tic_tac_toe('~ ', '! ') 
print_tic_tac_toe('', '! ') 

Ausgang:

X ! X ! X 
~ ~ ~ ~ ~ 
X ! X ! X 
~ ~ ~ ~ ~ 
X ! X ! X