私はコードワークの問題があります。私はPythonを初めて使っています(それを使用するのは24時間未満です)。 私はダイヤモンドの問題を解決しています:Pythonの奇妙なループ2.7
タスク:
あなたが印刷されたことを文字列に必要な、アスタリスク(「*」)文字を使用して 画面上にひし形が表示されます。正確な出力形式については、提供されたテスト ケースを参照してください。
印刷方法から返される図形は、ダイヤモンドのように に似ています。ここで、入力として提供された数字は、中間の行に印刷された*の数を表します。上と下の行は中央に となり、中央の行よりも2 *少なくなります。各行の2 *の による縮小は、図の上下に に1つの*が印刷されるまで続きます。
入力が偶数または負数の場合はnullを返します(偶数または負数のダイヤモンドを印刷する場合は )。
例については、提供されたテストケースを参照してください。
パイソン注
プリントは、Pythonの予約語であるため、Pythonの学生は (N)メソッドの代わりにダイヤモンドを実装し、無効 入力するためのNoneを返してはなりません。
マイコード:
def diamond(n):
retorno = " *\n"
if n%3 == 0:
for i in range(n,0,-2):
retorno += i * "*"
print(retorno + str(i));
#return retorno
テストケース:
expected = " *\n"
expected += "***\n"
expected += " *\n"
test.assert_equals(diamond(3), expected)
出力します。varの初期化から最初の "*" はどのように来
*
***3
*
****1
forループのように繰り返しますか?
あなたはあなたのメソッドを2回も呼び出さないでしょうか?最初のスニペットは何も返さない。どんな場合でもあなたのテストは真実ではありません。 –
私はテストが合格しないことは知っていますが、最初の "*"がforループの中にあるように繰り返しているのだろうか、また私はcodewars.comのオンラインインタプリタを使っているのですか? –
ところで、どんな出力も印刷されていないはずです。それは文字列を作成して返します。 –