2017-09-19 17 views
-1

私が作成している関数に基づいてグリッドを構築しようとしています。私はそれがV変数をもう一度印刷し、あるいは次H、なしとして可変戻るとき基本的に、2×2のグリッドを作成しようとイムPythonスコープ変数が返されない

grid1(number): 
    D = ('-' * number) 
    S = (' ' * number) 
    H = print('+'+ D +'+' + D + '+') 
    V = print('|'+ S + '|' + S + '|' '\n') 
    print(H '\n' (V * number) + H '\n'+ (V * number) + H) 

ための内部変数を1つずつ割り当てられています。私の知る限り、私はイテレータを作成していないので、変数はまだ割り当てられているはずです。

スコープ変数に何かがありませんか?

+0

'print'は、実際には' NONE'ある何かを、返しません。サンプルコードを修正してください。完全に壊れています。 – Jeronimo

+0

私はこれらの変数を順番に印刷したいだけですが、それは最初に動作しますが、2回目はそれを回避しません。私はなぜコードを修正できるのか理解しようとしています。 –

答えて

0

文字列をHとVに割り当てた後、次のprint文でそれらの文字列を再度使用するとします。その場合、最初の2つの文を削除し、変数への代入だけを行う必要があります。

例えばにつながる
def grid1(number): 
    D = ('-' * number) 
    S = (' ' * number) 
    H = '+'+ D +'+' + D + '+' 
    V = '|'+ S + '|' + S + '|' '\n' 
    print(H + '\n' + (V * number) + H + '\n' + (V * number) + H) 

::他のいくつかの修正で、これは、その結果

>>> grid1(3) 
+---+---+ 
| | | 
| | | 
| | | 
+---+---+ 
| | | 
| | | 
| | | 
+---+---+ 
+0

ありがとうございました! –

関連する問題