2016-10-11 6 views
-3
I want to print : 
    1 
    12 
    123 
1234 

、私が試してみました:直角三角形を作成するためのループの使い方は?

num=int(input("number")) 
space=int(num) 
count=1 
while count<num: 
    if count==1: 
    print(" "*space,count) 
    count=count+1 
    space=space-1 
    while count>=2: 
     for n in range(2,num): 
     print(" "*space,list(range(1,n)) 
     space=space-1 

しかし、それは動作しません。 指定された結果をどのように印刷できますか? ありがとう

+0

ポストにコードを入れてください。画像ではありません。 – Phylogenesis

+0

コードのインデントを修正して、エディタ内のコードを正確に表現してください。 – idjaw

+0

私はコードをアップロードしました。 – triumpyhyale

答えて

0
print(" "*space,list(range(1,n)) 

この行のかっこを数えます。そのうちの1つは閉鎖されていません。あなたが意図したとおりに動作する必要があります。

また、whileループが実行を停止することはありません。親指の一般的なルールとして

、あなたが何かを行う必要があります正確にどのように何回も知っている時はいつでも、あなたの代わりにwhileループ

forループを使用する必要があるのは、forループを使用して、あなたのコードを書き直してみましょう:

num=int(input("number")) 
output = "" 
for n in range(1,num+1): 
    output = ''.join([output, str(n)]) 
    space = ' ' * (num - len(output)) 
    print(space, output, sep='') 

私がforループ以外に行った唯一の実質的な変更は、出力を数字のリストではなく文字列として扱うことです。

+0

形状を改善できますか?ありがとう! – triumpyhyale

+0

@triumpyhyaleどのようにしてですか?出力時に奇妙に見える場合は、出力を表示するために使用しているフォントである可能性があります –

関連する問題