ただPythonerは、学習過程でコードを実行し始めるためにはいくつかのエラーが発生します多かれ少なかれあり、初めはもっと激しい見えるかもしれません。すばやく実行時エラーのオリジナルタイトルを見つけることができますいくつかの問題に遭遇したとき、コードの蓄積量と、実際には最適です。あなたに役立つことを期待して、17個の一般的な間違いを終え、次の
1、
忘れている、場合のために、DEF、ELIF、他のクラスや他のend文を追加しました:
次のように:それは、「無効な構文でSyntaxError」につながります。
もしスパム== 42 印刷(' こんにちは!')
2、
=使用する代わりに==
それはにつながることができます「にSyntaxError:無効な構文を」
= ==代入演算子、それが比較動作と同じです。このエラーは、次のコードを発生します。
もしスパムが= 42 : 印刷(' こんにちは!')
3、
不適切な使用のインデント
导致「IndentationError:予期しないインデント」、「IndentationError:インデント解除は任意外indetationレベルと一致しません」以及「IndentationErrorは:インデントブロックを期待」
文の終了後に、その後、前のインデントに復元する必要がありますだけ増加させるために、インデントを覚えておいてください。このエラーは、次のコードを発生します。
印刷(' こんにちは!' ) 、印刷(' こんにちは!')
または:
もしスパム== 42 : 印刷(' !こんにちは' ) 印刷(' こんにちは!')
4、
でループ文のために)(LENを呼び出すことを忘れ
导致「TypeError例外: 『リスト』オブジェクトを整数として解釈することはできません」
通常、あなたはインデックスを通じて、リストまたは文字列の要素を反復処理したい、あなたは、この範囲()関数を呼び出す必要があります。代わりに、このリストに返すのLEN値を返すことを忘れないでください。
このエラーは、次のコードを発生します。
=スパムから[ 「CAT 」、「犬」、「マウス」] のための私で(スパムからの)範囲: 印刷(スパムからは、[i])と #、PythonのデータとPDFのセットを終えた小扁は、あなたがグループに追加することができますPythonの学習教材を学ぶ必要があります:631 441 315、とにかくアイドルがアイドルである、~~たくさんの友人を学ぶ方が良いです
5、
文字列の値を変更しようとすると、
导致「TypeError例外: 『STR』オブジェクト項目の割り当てをサポートしていません」
データ列のタイプは、以下のようにエラーコードで発生し、不変です。
スパム= 「私はペットの猫を持っています。' スパム[ 13] = ' R ' の印刷(スパム)
正しいアプローチは、次のとおりです。
スパム= 「私はペットの猫を持っています。' スパム =スパム[13] + ' R ' +スパム[14 :】 プリント(スパム)
6、
非文字列値と文字列に接続しようとします
导致「TypeError例外:暗黙的をstrには 'int型のオブジェクトを変換できません」
このエラーは、次のコードを発生します。
numEggs = 12 印刷(' 私が持っている' + numEggs + ' の卵を。')
正しいアプローチは、次のとおりです。
numEggs = 12 プリント(' 私は' + STR(numEggs)+ ' 卵。' ) numEggsが = 12 プリント(' 私は%sの卵を持っている。'%(numEggs))
7、
忘れるために、文字列の末尾に引用符で囲まれました
导致「にSyntaxError:EOL文字列リテラルのスキャン中」
このエラーは、次のコードを発生します。
印刷(ハロー!' ) 印刷(' こんにちは!) がmyName = ' アル' プリント(' 私の名前は' +がmyName +。あなたはどのようにしています?" )
8、
変数や関数名のスペルミス
导致「NameError:名 『foobaは』が定義されていません」
このエラーは、次のコードを発生します。
foobarに= ' アル' プリント(' 私の名前は' + fooba) スパム = ruond(4.2 ) スパム =ラウンド(4.2)
9、
メソッド名のスペルミス
导致「はAttributeError: 'str' はオブジェクトが属性 'lowerr' を持っていません」
このエラーは、次のコードを発生します。
スパム= " THISを小文字にあります。「 スパム = spam.lowerr()
10、
最大参照インデックスリストを超えます
导致「はIndexError:範囲外のリストインデックス」
このエラーは、次のコードを発生します。
スパム= [ ' 猫'、' 犬'、' マウス' ] プリント(スパム[6])
11、
辞書のキーが存在しない使用します
原因「KeyError例外: 『スパム』」
このエラーは、次のコードを発生します。
スパム= { 「猫」:「Zophie 」、「犬」:「バジル」、「マウス」:「ひげ」} プリント(「私のペットのゼブラの名前である」 +スパム[ 「ゼブラ」 ])
12、
変数名としてPythonのキーワードを使用してみてください
导致「にSyntaxError:無効な構文」
Pythonの重要な変数名は次のようにエラーがコードで発生し、使用することはできません。
クラス = 「代数」
python3的关键字有:と、休憩、主張など、クラス、継続は、DEF、デル、ELIFは、他に、偽、以外は、最終的には、輸入、もし、グローバル、から、のために、ラムダ、なしで、非ローカルではなく、または、パス、調達、返し、真の、してみてください、と、しばらく、歩留まり
13、
新しい変数で定義された値を使用してオペレータ
导致「NameError:名 『foobarには』が定義されていません」
スパムのインクリメント演算子の使用は+ = 1スパムは有効な初期値を指定する意味スパム=スパム+ 1を、等しくなるように、初期値として空の文字列または0で使用する変数を宣言しないでください。
このエラーは、次のコードを発生します。
スパム= 0 スパム+ = 42 個の卵+ = 42
14、
ローカル変数を定義する前に関数で使用されるローカル変数(この場合、グローバル変数と同じ名前を持つローカル変数が存在します)
导致「UnboundLocalError:代入する前に、参照ローカル変数 『foobarに』」
それに機能変更で、同時に地元を使用する場合、グローバル変数は非常に複雑であると同じ名前があり、ルールを使用している:それは唯一、それがローカルにある機能で使用されている場合は、関数の中で何かを定義した場合、反対はグローバルです変数。
これは、関数内でグローバル変数としてそれを使用する前に、それを定義することができないことを意味します。
このエラーは、次のコードを発生します。
SOMEVAR = 42 DEF MyFunctionを(): プリント(SOMEVAR) SOMEVAR = 100 MyFunctionを()
15、
整数のリストを作成する範囲を()を使用するようにしてください
导致「TypeError例外: 『範囲』オブジェクト項目の割り当てをサポートしていません」
時には、整数の順序付きリストを取得したいので、範囲は()は、このリストを生成するための良い方法であるように思われます。ただし、範囲()「Rangeオブジェクト」を返すのではなく、リストの実際の値を覚えておく必要があります。
このエラーは、次のコードを発生します。
スパム=範囲(10 )
スパム[ 4] = -1
正しい言葉遣い:
スパム=リスト(範囲(10 ))
スパム[ 4] = -1
(注:Pythonの2の範囲内()値のリストを返すが、それは、Python 3の誤差よりもを生成するためのPython 2スパムに=範囲(10)が行うことができるが、です)
16、
インクリメントとデクリメント - ++または不在。
导致「にSyntaxError:無効な構文」
あなたがなどC ++やJava、PHP、などの他の言語に使用されている場合は、+または使用しようとする場合があります - 増分は、変数をデクリメント。Pythonではそのような演算子ではありません。
このエラーは、次のコードを発生します。
スパム= 1件の
スパム ++
正しい言葉遣い:
スパム= 1件の
スパム + = 1
17、
自己引数を追加する方法のための最初の引数を忘れました
导致「TypeError例外は:MyMethodは()は、(1が与えられた)引数を取りません」
このエラーは、次のコードを発生します。
クラスはFoo(): DEF MyMethodは(): 印刷(' こんにちは!' ) 、A = はFoo() a.myMethod()