pythonの一般的なエラーと解決策

Pythonのよくある間違いは

  1. NameError変数名エラー

  2. IndentationErrorコードインデントエラー

  3. AttributeErrorオブジェクト属性エラー

詳細な説明

1. NameError変数名エラー

エラー:

 print a<br Traceback(most recent call last):<br File "<stdin ", line 1,in<module <br NameError: name 'a' is not defined<br 

解決:

まず、に値を割り当てます。それを使用するには。実際のコーディングプロセスでは、NameErrorエラーが報告されたときに、変数に値が割り当てられているかどうか、ケースの不整合エラーがあるかどうか、または変数名が誤って誤って書き込まれていないかどうかを確認してください。

注:Pythonでは、変数宣言ステートメントを表示する必要はありません。変数は、初めて割り当てられたときに自動的に宣言されます。

 a=1<br     print a<br 1<br 

2. IndentationErrorコードインデントエラー

コード

a=1b=2<br if a<b:<br print a<br 

エラー:

IndentationError: expected an indented block<br 

理由:

インデントが間違っています。Pythonのインデントは非常に厳密です。行の先頭に複数のスペースがある場合、スペースが少ないとエラーが報告されます。これは、初心者がPythonのコーディング規則に精通していないためによくある間違いです。 def、class、if、for、whileなどのコードブロックをインデントする必要があります。

インデントは4つのスペース幅です。説明が必要です。テキストエディターが異なれば、タブ文字で表されるスペース幅も異なります。プラットフォームやエディター間でコードを読み書きする必要がある場合は、タブを使用しないことをお勧めします。 。

解決

a=1b=2<br if a<b:<br   print a<br 

3. AttributeErrorオブジェクト属性エラー

エラー:

import sys<br     sys.Path<br Traceback(most recent call last):<br File "<stdin ", line 1,in<module <br AttributeError:'module' object has no attribute 'Path'<br 

理由:

sysモジュールにはPath属性がありません。

Pythonは大文字と小文字を区別し、Pathとpathは異なる変数を表します。パスをパスに変更するだけです。

 sys.path<br ['','/usr/lib/python2.6/site-packages']<br 

初心者が遭遇するエラーの例:

間違ったインデントを使用する

Pythonはインデントを使用してコードブロックを区別します。よくある誤用:

print('Hello!')print('Howdy!')

原因:IndentationError:予期しないインデント。同じコードブロック内のコードの各行は、一貫してインデントする必要があります

if spam ==42:print('Hello!')print('Howdy!')

原因:IndentationError:unindentが外部のインデントレベルと一致しません。コードブロックが終了すると、インデントは元の位置に復元されます

if spam ==42:print('Hello!')

原因:IndentationError:インデントされたブロックが必要です。「:」の後にインデントを使用する必要があります

変数が定義されていません

if spam ==42:print('Hello!')

原因:NameError:名前「spam」が定義されていません

リスト要素のインデックス位置を取得し、lenメソッドを呼び出すのを忘れます

インデックス位置で要素を取得する場合、リストの長さを取得するためにlen関数を使用することを忘れてください。

spam =['cat','dog','mouse']for i inrange(spam):print(spam[i])

原因:TypeError:range()整数の終了引数が必要です。リストを取得しました。正しいアプローチは次のとおりです。

spam =['cat','dog','mouse']for i inrange(len(spam)):print(spam[i])

もちろん、よりPythonicな方法はenumerateを使用することです

spam =['cat','dog','mouse']for i, item inenumerate(spam):print(i, item)

関数内のローカル変数割り当ての前に使用

someVar =42
def myFunction():print(someVar)
someVar =100myFunction()

原因:UnboundLocalError:割り当て前に参照されたローカル変数「someVar」

関数のグローバルスコープに同じ名前の変数がある場合、LEGBの順序で変数を検索します。同じ名前の変数が関数内のローカルスコープにも定義されている場合、その変数は外部スコープに移動しなくなります。調べた。したがって、someVarはmyFunction関数で定義されているため、print(someVar)は外部で検索されなくなりますが、印刷中に変数が割り当てられていないため、UnboundLocalErrorが表示されます。

上記は、pythonの一般的なエラーと解決策の詳細です。pythonの一般的なエラーの詳細については、ZaLou.Cnの他の関連記事に注意してください。

Recommended Posts

pythonの一般的なエラーと解決策
CentOSの一般的な例外と解決策
Pythonのジェネレーターとイテレーター
pythonでエラーを表示する方法
Ubuntuシステムの使用と開発における一般的な例外と解決策
およびおよびまたはPythonでの使用方法
pythonでエラーをカスタムキャッチする方法
セントス環境でのPythonとスクレイプ展開
pythonの関数
Python and Go
CentOSにremix-ideをインストールするためのエラーと解決策
pythonでのリストの意味と使用法
pythonでファイルとディレクトリを削除する方法
Pythonの内省と考察
03.Pythonエントリの演算子
Pythonの結合関数
12.Python3でのネットワークプログラミング
pythonでステートメントを印刷する
IDCコンピュータールームとCentos8のインストールにおける一般的な問題
UbuntuでのPythonでのGDALのインストールと使用
[python] ubuntuの下のpython2とpython3
Pythonでの同時リクエスト
Ubuntuにpythonをインストールする
Pythonでのコンテキスト管理
pythonの算術演算子
Pythonの分解とパッケージ化
pythonでguiを書く
Python3の構成とentry.md
PythonでのMongoDBの使用
Ubuntuシステムのインストールと構成に関する一般的な例外と解決策
09.Python3の共通モジュール
PythonのStr文字列
Pythonでの計算ジオメトリ
Pythonの自動操作とメンテナンス2
Pythonでの同時リクエスト(パート2)
Pythonの紹介と環境のインストール
Pythonはクローラーとアンチクローラーを知っています
Pythonのタプルの添え字
centos7はpython3とipythonをインストールします
Pythonの一般的なデータ構造の照合
Pythonでの継承について話す
2020--Python文法の一般的な知識のポイント
Centos6.10はpythonとyumを再インストールします
Python3.9の注目すべき更新ポイント
Pythonオープン読み取りおよび書き込み
CentOS7はpython3とpip3をインストールします
Pythonの自動操作とメンテナンス1
Pythonのデータ構造とアルゴリズム
Pythonマルチプロセスおよびマルチスレッドの基本
CentOS6.9はpythonをコンパイルしてインストールします
Pythonアプリケーションを3分でコンテナ化
pythonのイントロスペクションとは何ですか
CentOS6はpython3をコンパイルしてインストールします
pythonのオブジェクト指向とは何ですか
Pythonの一般的な例外処理メカニズム
Python共通モジュールのコレクション
Pythonで文字列について話す