バグを見つけるためのPythonコード(8)

バグを見つけるためのPythonコード(8)

**前の期間のコード設計要件:**再帰的アルゴリズムを使用して5を見つけます!

コードは次のように表示されます:

バグを見つけるためにコードを注意深く読んでください!

**正解:**合計3つのバグがあります。 (回答時間については、正解の数を確認してください)

(1)ifステートメントは条件付き判断ステートメントであり、もちろん、割り当てステートメントではなく比較式である必要があるため、if j = 0を次のように変更する必要があります。ifj== 0。

(2)2番目の問題は、print()メソッドの明らかな使用法です。Python3バージョンには括弧()が必要です。

(3)3番目のバグ、私たちは良いチャットをしなければなりません:

再帰的アルゴリズムに精通していない学生の場合、関数が正確に何を返す必要があるかを理解する必要がありますか?それは間違いなく単なる変数ではありません。この例では、j変数は関数の正式なパラメーターのようです。関数を呼び出すには、実際のパラメーターを指定して、正式なパラメーターjに値を割り当てる必要があります。したがって、フローに沿って進むと、returnjはまさに関数が必要とするもののようです。私の友人、私はあなたに親切に思い出させなければなりません、これはスモークスクリーンです!

すみません!それはどうあるべきですか?

まず、もう1つの基本的な常識は、正式なパラメーターjに割り当てられる実際のパラメーターはjという名前の変数である必要はないということです。したがって、jを返す必要があるかどうかは、ここでの再帰アルゴリズムが何を返すかによって異なります。

再帰的アルゴリズムを実装するには、戻り値に2つの前提が必要であると述べました。1つは、アルゴリズム(算術式)の結果であり、このアルゴリズムには、関数の呼び出しが再度含まれています。第二に、この結果は動的です。再帰的反復操作が完了すると、それは特定の値になり、判断条件をトリガーし、関数を繰り返し呼び出さなくなります。

OK、それは明らかです。戻った後は、jではなくcである必要があります。ほとんどの場合、cは因子演算の式であり、j == 0になるまで関数への別の呼び出しが含まれます。条件分岐ステートメントが確立され、c = 1が取得されます。このとき、fact(0)の代わりにreturn cが実行されるため、5 * 4 * 3 * 2 * 1の因数分解式が完全に計算され、その結果はそのままです。 cに値を割り当て、それを関数の最終的な戻り値として返します。

次の図は、再帰アルゴリズムの再帰ロジックを示しています。参照できます。

したがって、正しいコードは次のようになります。

**コメント:**昨日のバグを見つける主な目的:

(1)再帰的アルゴリズムを学びます。

(2)if条件付き判断ステートメントを統合します。

(3)Python3でのprint()の使用法をもう一度思い出してください。

上記のコードを読むのが難しい学生は、Gaoduから送信された「Introductionto Python」、またはGaoduWebサイトの「IntroductiontoPython」ビデオコースを読んで学習してください。

この問題のコード設計要件:

5人が一緒に座って、5人目は何歳ですか?彼は4人目より2歳年上だと言った。 4人目の年齢を聞いたところ、3人目より2歳年上だったそうです。第三者に聞いて、彼は二人目より2歳年上だと言います。 2人目に聞いて、彼は1人目より2歳年上だと言います。最後に、私は最初の人に尋ねました、彼は彼が10歳であると言いました。 5人目は何歳ですか?

**再帰的アルゴリズム計算を使用する必要があります。 ****

OK、これは再帰的アルゴリズムのレビューケースであり、再帰的アルゴリズムの学習を統合するのに非常に役立ちます。

コードは次のように表示されます:

もちろん、上記のコードはまだバグがあります。見つけて、メッセージに投稿して、明日答えてください。

**正解は明日発表されます。 ****

注意:従来、すべてのコードはPythpn3に基づいています。

Recommended Posts

バグを見つけるためのPythonコード(2)
バグを見つけるためのPythonコード(7)
バグを見つけるためのPythonコード(4)
バグを見つけるためのPythonコード(9)
バグを見つけるためのPythonコード(6)
バグを見つけるためのPythonコード(1)
バグを見つけるためのPythonコード(8)
バグを見つけるためのPythonコード(5)
実際には非常に単純です|バグを見つけるためのPythonコード(12)
ミニマリズムはPythonの魂です|バグを見つけるためのPythonコード(10)
pythonコードにコメントする方法
pythonウェブページコードの表示方法
pythonコードでラップする方法
Pythonは実行する操作コードを処理します
01.Pythonの概要
ヘビを実現するための200行のPythonコード
不可欠な例を見つけるためのPythonRombergメソッド
Pythonコードをインデントする必要がありますか
Pythonの紹介
pythonでアシスタントを実行するコードを使用する方法
航空機戦争を達成するための500行のPythonコード
pythonでコード自動プロンプトを設定する方法
Pythonコードをまとめて正しく移動する方法
Centos 6.4 python2.6を2.7にアップグレード
Centos 6.4 python2.6を2.7にアップグレード
PythonSMS爆撃コード
Centosのデフォルトのpython2.6のアップグレード
pythonアライメントエラーの解決策
CentOSはpython2をpythにアップグレードします
Pythonicコードの書き方
Python描画ローズ実装コード
pythonプラグインをアンインストールする方法
Python関連モジュールの紹介
Python正規式サンプルコード
実行中のUbuntuバージョンに対応するカーネルソースコードを見つけます
Pythonはコードブロックフォールディングを実装します
PythonインストールOpenCVサンプルコード
Pythonファイルを暗号化する3つの方法
Pythonは検証コード認識を実装します
pythonオブジェクトを理解する方法
パイソンタプルの使い方
pythonコードは大文字と小文字を区別しますか
Pythontelnetログイン関数の実装コード
Python |再帰を使用して解決する関数
pythonフォントを増やす方法の手順
pythonスレッドプールの使用方法
pythonを使用してOracleデータベースにクエリを実行します
C ++を使用してPython3拡張機能を作成する
python設定ファイルの書き方
Python初心者は使用量を増やすことを学びます
pythonを使用して段階的な回帰を実現します
pythonプログラムを保存する方法
Pythonはクロスプラットフォームの言語コードです
PythonATM関数の実装コード例
Pythonは、メールを送信するために126のメールボックスを実装しています
Pythonを使用して複数のクリップボードを実装する
Ubuntu18.04にPython3.8をインストールする方法
pythonでクラスを書く方法
pythonで数値をフィルタリングする方法
Centos6.7には、へのpythonアップグレードが付属しています
PythonでExcelを読む方法