ホームページ データベース mysql チュートリアル Python の 17 の一般的なエラーの分析

Python の 17 の一般的なエラーの分析

Oct 19, 2016 pm 01:46 PM
python Pythonの基本 Python開発

初めて Python を学習する場合、Python のエラー メッセージの意味を理解するのは少し複雑かもしれません。プログラムのクラッシュを引き起こす可能性のある一般的なランタイム エラーをいくつか紹介します。

1) if 、 elif 、 else 、 for 、 while 、 class 、def ステートメントの最後に追加するのを忘れました: (「SyntaxError: 無効な構文」が発生します)

このエラーは、次のようなコードで発生します:

if spam == 42

print('Hello!')

2) == の代わりに = を使用します (「SyntaxError: 無効な構文」が発生します)

= は代入演算子、== は等価比較演算です。このエラーは次のコードで発生します:

if spam = 42:

print('Hello!')

3) インデントの不正な使用。 (結果として、「IndentationError: 予期しないインデント」、「IndentationError: unindent is not match any external indetation level」、および「IndentationError: Expected an indented block」が発生します)

インデントの増加は、: で終わるステートメントの後、および Must の後にのみ使用されることに注意してください。以前のインデント形式に戻します。このエラーは次のコードで発生します:

print('Hello!')

print('Howdy!')


または:


if spam == 42:

print('Hello !')

print('こんにちは!')


または:


if spam == 42:

print('こんにちは!')

4) for ループでの呼び出しを忘れましたステートメント len() (「TypeError: 'list' オブジェクトを整数として解釈できません」の原因)

通常、インデックスによってリストまたは文字列の要素を反復する必要があり、これには range() 関数を呼び出す必要があります。リストの代わりに len 値を返すようにしてください。

このエラーは次のコードで発生します:

spam = ['cat', 'dog', 'mouse']

for i in range(spam):

print(spam[i])

5)文字列の値を変更しようとしました (「TypeError: 'str' オブジェクトは項目の割り当てをサポートしていません」という結果になります)

string は不変のデータ型であり、次のようなコードでエラーが発生します:

spam = 'I have a pet cat.'

spam[13] = 'r'

print(spam)

そして実際にこれをやりたいのです:

spam = '私はペットの猫を飼っています。'

spam = spam[:13] + 'r' + spam[14:]

print(spam)

6) 文字列以外の値を文字列と連結しようとしました (「TypeError: 'int' オブジェクトを暗黙的に str に変換できません」という結果になります)

このエラーは次のようなコードで発生します:

numEggs = 12

print('I have ' + numEggs + ' Eggs.')


一方、実際にこれを実行したいのは次のとおりです:

numEggs = 12

print( '私は ' + str(numEggs) + ' 卵を持っています。')


or:


numEggs = 12

print('私は %s 個の卵を持っています。' % (numEggs) )

7 ) 文字列の先頭と末尾に引用符を追加するのを忘れました (結果として「SyntaxError: EOL while scan string literal」が発生します)

このエラーは次のコードで発生します:


print(Hello!' )


または:


print('こんにちは!)


または:


myName = 'Al'

print('私の名前は ' + myName +どうやってあなたはいますか?')

8) 変数または関数名のスペルが間違っています (結果として「NameError: name 'foaba' が定義されていません」が発生します)

このエラーは次のコードで発生します:

foobar = 'Al'

print('私の名前は ' + foaba)


または:


spam = ruond(4.2)


または:


spam = Round(4.2)

9)メソッド名のスペルが間違っています (「AttributeError: 'str' object has no attribute ' lowerr'」という結果になります)

次のコードでエラーが発生します:

spam = 'THIS IS IN LOWERCASE.'

spam = spam . lowerr()

10) 参照がリストの最大インデックスを超えています (「IndexError: リスト インデックスが範囲外です」が発生します)

このエラーは次のコードで発生します:

spam = ['cat', 'dog ', 'mouse']

print(spam[6])

11) 存在しない辞書キーを使用します (「KeyError: 'spam'」が発生します)

次のようなコードでエラーが発生します:

spam = {'猫': 'ゾフィー', '犬': 'バジル', 'マウス': 'ひげ'}

print('私のペットのシマウマの名前は ' + spam['zebra'])

12) Python キーワードを変数名として使用しようとしています (「構文エラー: 構文が無効です」が発生します)

Python キーワードは変数名として使用できません。このエラーは次のコードで発生します:

class = 'algebra'

Python3 キーワードは次のとおりです。 : and、as、assert、break、class、 continue、def、del、elif、else、excel、False、finally、for、from、global、if、import、in、is、lambda、None、nonlocal、not、または、pass、raise、return、True、try、while、with、yield

13) 新しい変数定義でインクリメント演算子を使用する (「NameError: name 'foobar' is not generated」が発生する)

変数を宣言するときは、初期値として 0 または空の文字列を使用しないでください。このように、インクリメント演算子を使用した文 spam += 1 は spam = spam + 1 と等しくなります。これは、spam が有効な値を指定する必要があることを意味します。初期値。

このエラーは次のコードで発生します:

spam = 0

spam += 42

eggs += 42

14) ローカル変数を定義する前に関数でローカル変数を使用してください (今回はローカル変数があります)同じ名前の変数 グローバル変数が存在します) (結果は「UnboundLocalError: 割り当て前にローカル変数 'foobar' が参照されました」)

関数内でローカル変数を使用し、同じ名前のグローバル変数が存在する場合、非常に複雑になります使用規則は次のとおりです: 関数内の場合 関数内で何かが定義されている場合、それはローカル変数であり、それ以外の場合はグローバル変数です。

これは、定義する前に関数内でグローバル変数として使用できないことを意味します。

このエラーは次のコードで発生します:

someVar = 42

def myFunction():

print(someVar)

someVar = 100

myFunction()

15) range() を使用して作成しようとします整数のリスト (「TypeError: 'range' オブジェクトは項目の割り当てをサポートしていません」が発生します)

整数の順序付きリストを取得したい場合があるため、 range() はこのリストを生成する良い方法のように思えます。ただし、 range() は実際のリスト値ではなく、「範囲オブジェクト」を返すことに注意する必要があります。

次のコードでエラーが発生します:

spam = range(10)

spam[4] = -1

おそらくこれがあなたがやりたいことです:

spam = list(range(10))

spam[4] = -1

(注: spam = range(10) は Python 2 では可能です。Python 2 の range() はリスト値を返すためですが、Python 3 では上記のエラーが発生します)

16 ) 良いのは、++ または -- インクリメント演算子とデクリメント演算子です。 (「SyntaxError:無効な構文」が発生します)

C++、Java、PHP などの他の言語に慣れている場合は、++ または -- を使用して変数をインクリメントおよびデクリメントしてみるとよいでしょう。 。 Python にはそのような演算子はありません。

次のコードでエラーが発生します:

spam = 1

spam++

おそらくこれがあなたがやりたいことです:

spam = 1

spam += 1

17) 最初のものであることを忘れましたメソッド self パラメーターをパラメーターに追加します (「TypeError: myMethod() は引数を取りません (1 が指定されました)」という結果になります)

このエラーは次のコードで発生します:

class Foo():

def myMethod() :

print( 'こんにちは!')

a = Foo()

a.myMethod()


このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Deepseek Xiaomiをダウンロードする方法 Deepseek Xiaomiをダウンロードする方法 Feb 19, 2025 pm 05:27 PM

Deepseek Xiaomiをダウンロードする方法は? Xiaomi App Storeで「Deepseek」を検索します。ニーズ(検索ファイル、データ分析)を特定し、DeepSeek関数を含む対応するツール(ファイルマネージャー、データ分析ソフトウェアなど)を見つけます。

どうやって彼にdeepseekに尋ねますか どうやって彼にdeepseekに尋ねますか Feb 19, 2025 pm 04:42 PM

DeepSeekを効果的に使用する鍵は、質問を明確にすることです。質問を直接および具体的に表現してください。特定の詳細と背景情報を提供します。複雑な問い合わせのために、複数の角度と反論の意見が含まれています。コードのパフォーマンスボトルネックなどの特定の側面に焦点を当てます。あなたが得る答えについて批判的な考えを維持し、あなたの専門知識に基づいて判断を下します。

DeepSeekを検索する方法 DeepSeekを検索する方法 Feb 19, 2025 pm 05:18 PM

DeepSeekに付属する検索機能を使用するだけです。ただし、不人気で最新の情報または考慮する必要がある検索の場合、キーワードを調整したり、より具体的な説明を使用したり、他のリアルタイム情報源と組み合わせたり、DeepSeekが必要なツールであることを理解する必要があります。アクティブで明確で洗練された検索戦略。

DeepSeekをプログラムする方法 DeepSeekをプログラムする方法 Feb 19, 2025 pm 05:36 PM

DeepSeekはプログラミング言語ではなく、深い検索の概念です。 DeepSeekの実装には、既存の言語に基づいて選択が必要です。さまざまなアプリケーションシナリオでは、適切な言語とアルゴリズムを選択し、機械学習技術を組み合わせる必要があります。コードの品質、保守性、テストが重要です。適切なプログラミング言語、アルゴリズム、ツールをお客様のニーズに応じて選択し、高品質のコードを作成することにより、DeepSeekを正常に実装できます。

DeepSeekを使用してアカウントを解決する方法 DeepSeekを使用してアカウントを解決する方法 Feb 19, 2025 pm 04:36 PM

質問:DeepSeekは会計に利用できますか?回答:いいえ、それは財務データの分析に使用できるデータマイニングおよび分析ツールですが、会計レコードと会計ソフトウェアの生成機能をレポートしていません。 DeepSeekを使用して財務データを分析するには、データ構造、アルゴリズム、DeepSeek APIの知識を持つデータを処理するためにコードを作成する必要があります。

Deepseekapiにアクセスする方法-Deepseekapiアクセスコールチュートリアル Deepseekapiにアクセスする方法-Deepseekapiアクセスコールチュートリアル Mar 12, 2025 pm 12:24 PM

Deepseekapiアクセスと電話の詳細な説明:クイックスタートガイドこの記事では、Deepseekapiにアクセスして呼び出す方法を詳しく説明し、強力なAIモデルを簡単に使用するのに役立ちます。ステップ1:APIキーを取得して、DeepSeekの公式Webサイトにアクセスし、右上隅の「オープンプラットフォーム」をクリックします。一定数の無料トークン(API使用量を測定するために使用)が得られます。左側のメニューで、[apikeys]をクリックし、[Apikeyの作成]をクリックします。 Apikey(たとえば、「テスト」)に名前を付け、生成されたキーをすぐにコピーします。このキーは一度しか表示されないため、必ず適切に保存してください

Pi Coinのメジャーアップデート:Pi Bankが来ています! Pi Coinのメジャーアップデート:Pi Bankが来ています! Mar 03, 2025 pm 06:18 PM

Pinetworkは、革新的なモバイルバンキングプラットフォームであるPibankを立ち上げようとしています! Pinetworkは本日、Pibankと呼ばれるElmahrosa(Face)Pimisrbankのメジャーアップデートをリリースしました。これは、従来の銀行サービスと、フィアット通貨の原子交換と暗号通貨の原子交換を実現します(resuptocursisを使用するなど、聖職者のような聖職者など、 DC)。ピバンクの魅力は何ですか?見つけましょう!ピバンクの主な機能:銀行口座と暗号通貨資産のワンストップ管理。リアルタイムトランザクションをサポートし、生​​物種を採用します

現在の AI スライシング ツールは何ですか? 現在の AI スライシング ツールは何ですか? Nov 29, 2024 am 10:40 AM

一般的な AI スライス ツールをいくつか紹介します。 TensorFlow DataSetPyTorch DataLoaderDaskCuPyscikit-imageOpenCVKeras ImageDataGenerator

See all articles