3

私が作ったプログラムに少し問題があります。ダイヤモンドを表示するようにしていますが、問題があります。コードは次のとおりです。

a = input("Enter width: ")
a = int(a)
b = a
for i in range(a):
  i = i + 1
  b = a - i
  text = " " * b + " " + "* " * i
  print(text[:-1])
for i in range(a):
  i = i + 1
  b = a - i
  text = " " * i + " " + "* " * b
  print(text[:-1])

助けてくれてありがとう!これが答えです

4

2 に答える 2

4

printは文字列を返さないため、 を返しますNone

>>> print(print("foo"))
foo
None

おそらくあなたはこれをしたいと思っていました:

text = " " * i + " " + "* " * b
print (text[:-1])

末尾の空白を削除するには、次のように使用することをお勧めしますstr.rstrip

>>> "foo ".rstrip()
'foo'

ヘルプstr.rstrip:

>>> print (str.rstrip.__doc__)
S.rstrip([chars]) -> str

Return a copy of the string S with trailing whitespace removed.
If chars is given and not None, remove characters in chars instead.
于 2013-08-12T08:22:44.210 に答える
0

次のようにスライスを記述できます (出力の戻り値ではありません)。

("* "*b)[:-1]

または、結合を使用できます。

' '.join(['*']*b)
于 2013-08-12T08:24:08.820 に答える