2017-10-24 4 views
0

私は行と列の2つの数字を入力するようにユーザーに促すプログラムを書こうとしています。アスタリスクでグリッド状に出力しますが、ループはforです。ユーザー入力による行の掛け算?

userrow = int(input("Enter the size of the row:")) 
usercolumn = int(input("Enter the size of the column: ")) 

row = 0 
column = 0 

for row in ('*'): 
    print(row * userrow) 

    for column in ('*'): 
     print(column * usercolumn) 

#gridlayout = row * column 
print("The grid layout is: ", row, column) 
+0

for( '*')の行の 'print(row) 'の内容を見てみましょう。なぜそれがそれを行うのか理解していますか? –

答えて

1

こんにちはこれは仕事ですか? 2つのループは必要ありません。また

userrow = 2 
usercolumn = 3 

for i in range(0,usercolumn): 
    print(userrow * '*') 

print("The grid layout is: ", userrow, usercolumn) 

出力2と同じ変数(行とuserrowを)作るのはポイント:

** 
** 
** 
The grid layout is: 2 3 
3

は、私が最初にコードを書き換える方法、それは間違っている理由は、あなたの現在のコードは、何をするかを説明していない、となります。

for row in ('*'): 
    print(row * userrow) 

    for column in ('*'): 
     print(column * usercolumn) 

これは'*'rowという名前の変数を反復します。これはサイズ1の繰り返し可能なので、効果的にループしません。だからあなたのコードは、基本的に次のとおりです。

row = '*' 
print(row * userrow) 
for column in '*': 
    print(column * usercolumn) 

同じ列のために言うことができます。

row = '*' 
print(row * userrow) 
column = '*' 
print(column * usercolumn) 

これは単なるuserrowアスタリスク、その後usercolumnアスタリスクを印刷します。 usercolumnアスタリスク、userrow回をプリントした、働くだろうと

for i in range(usercolumn): 
    print('*' * userrow) 

:あなたが代わりにやってみたいことはループuserrow回かusercolumn倍です。あるいは、print('\n'.join(['*'*usercolumn]*userrow))

+0

ああ、私は間違っていたことを100%確信していなかったので、強調してくれてありがとう。 私はちょうどそれを、本当に便利なおかげでテストしました:) – Morph

+0

@モーグ問題ありません!喜んで助けてください。 – HyperNeutrino

関連する問題