初心者ですが、プログラムをデバッグするにはどうすればよいですか?

みなさんこんにちは、Crossinのプログラミング教室へようこそ!

コードを書いていると必ずバグが発生します。多くの人が初めてプログラミングを学ぶとき、プログラムを書き終えて実行してみると、予想していた結果と違ったり、プログラムが突然終了したりして、しばらくわけがわからなくなってしまいます。どこから始めればよいかはわかっていて、プログラムを繰り返し再実行することしかできません。突然の結果を期待するだけです。

今日は、皆さんのお役に立てればと思い、コードで問題が発生した場合のデバッグの経験と解決スキルをいくつか共有します。

1. エラーメッセージを読みます

次の例を考えてみましょう。

import random
a = 0
for i in range(5):
    b = random.choice(range(5))
    a += i / b
print(a)

このプログラムでは、i は 0 から 4 までサイクルし、b は各サイクルの 0 から 4 までの乱数です。i / b の結果を a に加算し、最後に結果を出力します。

このプログラムを実行すると、結果が出力される場合もあれば、エラー メッセージがポップアップ表示される場合もあります。

Traceback (most recent call last):
  File "C:\Users\Crossin\Desktop\py\test.py", line 6, in <module>
    a += i / b
ZeroDivisionError: integer division or modulo by zero

英語のプロンプトを見てパニックになった生徒もいました。実際、それはそれほど複雑ではなく、Python のエラー プロンプトは依然として非常に標準的なものです。

test.py ファイルの 6 行目でエラーが発生していることがわかります。

a += i / b

この文について。

このエラーは「ZeroDivisionError」で、ゼロ除算エラーです。

「整数除算またはゼロによるモジュロ」では、整数が 0 で除算されるか、0 によるモジュロ (剰余) が計算されます。

0 は除数として使用できないため、b が 0 にランダム化されるとこのエラーが発生します。

原因がわかればこのバグもスムーズに解決できます。

今後コードを記述するときにエラーが発生した場合でも、急いでコードを変更しないでください。エラー メッセージを読んで内容を確認してください。

2. デバッグ情報の出力

すべてのレッスンの最初に出力機能「print」を教えます。これはプログラミングにおけるデバッグの最も簡単な手段です。プログラムエラーの原因がエラーメッセージだけでは判断できない場合や、エラーは発生していないのにプログラムの結果が間違っている場合があります。この場合、プログラムのプロセス中のいくつかの状態を出力することで、プログラムの分析に役立ちます。

前のプログラムを変更し、プログラム関数とは関係のない出力ステートメントをいくつか追加します。

import random
a = 0
for i in range(5):
    print('i:', i)
    b = random.choice(range(5))
    print('b:', b)
    a += i / b
    print('a:', a)
    print()
print(a)

実行後の出力 (結果は毎回異なります):

i: 0
b: 3
a: 0.0




i: 1
b: 4
a: 0.25




i: 2
b: 0
Traceback (most recent call last):
  File "C:\Users\Crossin\Desktop\py\test.py", line 8, in <module>
    a += i / b
ZeroDivisionError: integer division or modulo by zero

b の値が 0 の場合、ゼロ除算エラーが発生します。今回は、プログラムが失敗したときの状態をより明確に確認できるようになりました。

実際の開発では、プログラムの構造は非常に複雑になる場合があります。デバッグ情報を出力することで、範囲を絞り込み、エラーが発生した箇所を特定し、エラー発生時の状況を確認し、エラーの原因を究明することができます。

ブレークポイント デバッグの使用、IDE エラー プロンプトの使用など、他のデバッグ手法もあります。以前に書いた記事を参照してください。

開発に 5 分、デバッグに 2 時間 - 問題はどこにありますか?

Python でブレークポイントを使用してデバッグする方法

さらに、ChatGPT のようなアーティファクトがあるため、デバッグを支援するために使用することもできます。この方法は、 Crossinの新刊『Action on Code: ゼロ基礎から学ぶ PYTHON プログラミング (CHATGPT 編) 』で特別に紹介されています。

ae77dd7ef935842b01f762b49babbaf5.jpeg

本書は、プログラミング経験がまったくないゼロベースの「初心者」でもPythonを学べるよう、分かりやすさを心がけています。内容は、環境構築の最も基本的な手順から始まり、徐々に一般的な実践的なアプリケーションに深く入っていきます。知識のポイントを解説しながら、対応するコード例も掲載しているので、学習・実践して理解を深めることができます。

この本では、Python 環境の構築、基本的な文法、一般的なデータ型、実践的なモジュール、正規表現、オブジェクト指向プログラミング、マルチタスク プログラミング、その他の知識ポイントをカバーしています。さらに、クローラー、GUI、ゲームの 3 つの実践的なプロジェクトが提供されます。

この本ではまた、プログラミング学習の補助として ChatGPT を革新的に使用しており、読者が AI 時代のプログラミング学習の新しいモードを模索するように導きます。

読者や友人は購入後に読者コミュニケーション グループに参加でき、Crossin は付属の読書モードを開き、この本を読む際のすべての質問に答えます。

リツイートいいねありがとうございます

 

おすすめ

転載: blog.csdn.net/qq_40523737/article/details/130896268