次のような三角形を生成する関数をどのように記述しますか。
x
xx
xxx
xxxx
xxxxx
関数が であるとしましょうdef triangle(n)
、一番下の行にn
はxの量があります
私が知っているのは、箱を作ることだけです:
n = 5
for k in range(n):
for j in range(n):
print('x', end='')
print()
おいそれは超簡単です:
def triangle(n):
for i in range(1, n +1):
print ' ' * (n - i) + 'x' * i
あるいは:
def triangle(n):
for i in range(1, n +1):
print ('x' * i).rjust(n, ' ')
の出力triangle(5)
:
バツ xx xxx xxxx xxxxx
理解せずにこのコードをただコピーするのではなく、どのように機能するかを試してみてください。通常、プログラミング言語の学習を練習する良い方法は、さまざまな問題に挑戦し、その解決方法を確認することです。私が最初にプログラミングを始めたときによく使っていたので、このサイトをお勧めします。
また、行き詰まった場合にのみ、やり方がわからない場合は、宿題などを投稿しないでください。まず、何かを理解できると思われる多くの方法を考えてみてください。特定のタスクの実行方法がわからない場合は、調べてそこから学びましょう。
これは、プログラムに加えることができる小さな変更です
n = 5
for k in range(n):
for j in range(n):
print('x' if j+k >= n-1 else ' ', end='')
print()
しかし、それはあまり良い方法ではありません。このようなものを使用して、一度に全体を印刷することを検討する必要があります
n = 5
for k in range(n):
i = ???
j = ???
print(' '*i+'x'*j)
あなたはただ運動する必要がありi
、j
答え:
def triangle(i, t=0):
if i == 0:
return 0
else:
print ' ' * ( t + 1 ) + '*' * ( i * 2 - 1 )
return triangle( i - 1, t + 1 )
triangle(5)
出力:
* * * * * * * * *
* * * * * * *
* * * * *
* * *
*
hight = 5
for star in range(hight):
for num in range(hight):
print('*' if num+star >= hight-1 else ' ', end='')
print()