つまり、ユーザーの入力に応じて星を出力するプログラムを作成したいと思い、それを実行しました。
for i in range(num):
print((i*-1)*' ' + (i+1)*'*')
for o in range(num-1):
print((num-o-1)*'*')
これの代わりを除いて:
*
* *
*
私はこれを得る:
*
**
*
スペースを実装するにはどうすればよいですか? 少し早いですがお礼を!
つまり、ユーザーの入力に応じて星を出力するプログラムを作成したいと思い、それを実行しました。
for i in range(num):
print((i*-1)*' ' + (i+1)*'*')
for o in range(num-1):
print((num-o-1)*'*')
これの代わりを除いて:
*
* *
*
私はこれを得る:
*
**
*
スペースを実装するにはどうすればよいですか? 少し早いですがお礼を!
文字列に負の数を掛けると、空の文字列が得られます。そして、あなたの数式はそもそも正しくありません。(等幅端末で) 並べるために十分なスペースを前面に埋め込む必要があります。
正しく行う方法の 1 つを次に示します。
>>> def diamond(n):
... print(' '*n + '*')
... for i in list(range(1,n)) + list(range(n,0,-1)):
... print('{}*{}*'.format(' '*(n-i), ' '*(2*i-1)))
... print(' '*n + '*')
範囲をリストに変換することは、n が大きい場合には効率的ではありませんが、ボトルネックにはならず、端末は実質的に 80 文字までの幅しかサポートしません。