ホームページ バックエンド開発 Python チュートリアル Lao Qi から Python の変数とパラメータを学ぶ

Lao Qi から Python の変数とパラメータを学ぶ

Jun 16, 2016 am 08:41 AM
パラメータ 変数

それでは、この 2 つの違いとつながりは何でしょうか?インターネットで検索すると、似たような記述がたくさん見つかりましたが、Microsoft の Web サイトの次の文章だけが非常に抽象的で、広範囲にわたる意味を持っているようです。抜粋して読んで理解できるかどうかを確認してみましょう。VB 用ではありますが、それでも感動的です。

コードをコピー コードは次のとおりです:

パラメーターと変数の違い (Visual Basic)

ほとんどの場合、プロシージャには呼び出し環境に関する情報が含まれている必要があります。繰り返しタスクまたは共有タスクを実行するプロシージャでは、呼び出しごとに異なる情報が使用されます。この情報には、プロシージャが呼び出されるたびにプロシージャに渡される変数、定数、および式が含まれます。

この情報をプロシージャに渡すには、プロシージャはまず仮パラメータを定義し、次にコードを呼び出して実パラメータを定義された仮パラメータに渡す必要があります。 形式的なパラメータは駐車スペース、実際のパラメータは車と考えることができます。 駐車スペースが異なる時間に異なる車を駐車できるのと同じように、呼び出しコードはプロシージャを呼び出すたびに、同じ仮パラメータに異なる引数を渡すことができます。

仮パラメータは、プロシージャを呼び出すときにプロシージャが渡すことを期待する値を表します。

Function または Sub プロシージャを定義するときは、プロシージャ名の直後にかっこ内に仮パラメータ リストを指定します。各パラメーターについて、名前、データ型、および受け渡しメカニズム (ByVal (Visual Basic) または ByRef (Visual Basic)) を指定できます。パラメーターがオプションであることを示すこともできます。これは、呼び出し元のコードがその値を渡す必要がないことを意味します。

各仮パラメータの名前は、プロシージャ内でローカル変数として使用できます。仮パラメータ名は、他の変数と同じように使用されます。

実際のパラメータは、プロシージャを呼び出すときにプロシージャのパラメータに渡される値を表します。呼び出しコードは、プロシージャを呼び出すときにパラメーターを提供します。

Function または Sub プロシージャを呼び出すときは、プロシージャ名の直後に括弧内に実際のパラメータのリストを含める必要があります。各実パラメータは、このリストの同じ位置にある仮パラメータに対応します。

仮パラメータ定義とは異なり、実際のパラメータには名前がありません。各引数は、0 個以上の変数、定数、およびテキストを含む式です。評価される式のデータ型は、通常、対応するパラメータに定義されたデータ型と一致する必要があり、いずれの場合も、式の値はこのパラメータ型に変換可能である必要があります。

読者がこの引用文をじっくり読んでみると、その中にパラメータ、変数、仮パラメータ、実パラメータなどのキーワードがいくつか含まれていることがわかるでしょう。当初はパラメータと変数を理解したいと思っていましたが、他に 2 つのことが現れてさらに混乱しました。この引用は少し冗長ですが、これを引用する理由は、プログラミング業界では、似たような用語がたくさんあります。次に誰かがこれを言うのを聞いても、もう聞いたことがあるので心配しないでください。

Python では、それほど複雑ではありません。

上記の紛らわしい引用を読んだ後、以下のコードを見ると、突然明らかになるでしょう。

コードをコピー コードは次のとおりです:

>>> def add(x): #x はパラメータです
... a = 10 #a は変数
... return a+x
...
>>> x = 3 #x は変数ですが、関数の外にあります
>>> 13
>>> add(3) #上記のプロセスをマージします
13

この時点で、警察官がもう少しはっきりしているかどうか見てみましょう。もちろん、私の記載が間違っていたり、誤解している場合は、遠慮なくご指摘ください。

グローバル変数とローカル変数

以下はコードです。このコードには関数 funcx() があり、この関数の前には変数 x=2 もあります。 🎜>


コードをコピー コードは次のとおりです: x = 2

def funcx(): x = 9

Print "この x は funcx にあります:-->",x

関数()

「-------------------------------------」を印刷

print "この x は関数の外です:-->",x


それで、このコードの出力は何でしょうか?見てください:


コードをコピー コードは次のとおりです: この x は関数内にあります:--> 9
------------------------
この x は機能外です:--> 2


出力から、funcx() が実行されると、funcx() の変数 x=9 が出力され、コードの最後の行が実行され、「この x は funcx から外れています。 ->",x

前者の x は関数内の変数 x を出力し、後者の x は関数の外に変数 x を出力するという事実に特別な注意を払う必要があります。 2 つの変数は両方とも x ですが、互いに影響しません。ここから、2 つの X がそれぞれそれぞれのフィールドで役割を果たしていることがわかり、そのような変数はローカル変数と呼ばれます。

部分があるところには、対応する全体が存在します。幸いなことに、中国語には多義性があるため、グローバル変数
という別の名詞が選択されました。

コードをコピー コードは次のとおりです:

x = 2
def funcx():
グローバルx
x = 9
Print "この x は funcx にあります:-->",x

関数()
「-------------------------------------」を印刷
Print "この x は機能外です:-->",x

上記 2 つのコードの違いは、後者は関数内に追加のグローバル x があることです。この文は、x がグローバル変数として宣言されていることを意味します。これは、この x が関数の外側の x と同じであることを意味します。関数を実行し、x の参照オブジェクトを x=9 を通じて 9 に変更します。したがって、次のような結果が得られます。
この x は関数内にあります:--> 9
------------------------
この x は関数の外です:--> 9

グローバル変数は非常に強力で、関数の内部と外部の両方を制御できるようです。ただし、変数の置換では混乱を引き起こしやすいため、これは注意して使用する必要があることに注意してください。内側と外側では違いがあるので、施術の際には注意が必要です。

パラメータの数が不確かです

関数を設計するときに、たとえば円の面積を計算する関数の場合、必要なパラメーターは半径 (πr^2) であることを確認することがあります。この機能が決まります。

しかし、この世界は常にそれほど単純であるわけではなく、逆に、この世界には不確実性が存在することがよくあります。多くの人が聞いたことのない量子力学を読者が理解すれば、本当の不確実性が理解できるでしょう。もちろん、世界が不確実性に満ちていることを理解するために量子力学を学ぶ必要はありません。そうじゃない?姿を変えた祝福は姿を変えた祝福 これは不確かではないでしょうか。

不確実性が多いので、関数のパラメータの数にも当然不確実性が存在します。関数はこの問題をどのように解決するのでしょうか? Python はパラメータの数の不確実性を次の方法で解決します。

コードをコピー コードは次のとおりです:

def add(x,*arg):
Print x #パラメータ x の値を出力します
結果 = x
Print arg #*arg
で取得した値を出力 引数の i の場合:
結果 +=i
結果を返します

print add(1,2,3,4,5,6,7,8,9) #関数に割り当てられるパラメータの数は 2 つだけではありません

このコードを実行すると、次の結果が得られます:
1 #これは関数本体の最初の出力であり、パラメータの値です (2, 3, 4, 5, 6, 7, 8, 9) #これは関数内の 2 番目の出力であり、パラメーター arg はタプルです
45 #最終計算結果

上記の出力結果は、元の関数と比較しないと、各行に何が表示されているかわかりません。自分を責めてください。

上記の例からわかるように、入力されたパラメータが多すぎると、他のすべてのパラメータが *arg を介してタプルの形式でパラメータ (変数) arg に渡されます。ここではパラメーター (変数) という曖昧な単語を使用していることに注意してください。この式は、データが渡される前は arg が関数ヘッダーのパラメーターであり、関数ステートメントで使用されるときに再度使用されることを意味します。 , は変数です。つまり、多くの場合、オブジェクトがどのチャネルを通じて渡され、どのターゲットに渡されるかがわかっていれば、関数内のパラメータと変数をそれほど区別する必要はありません。

引数をより明確に見るために (名前は異なっていても構いませんが、シンボルが存在する必要があります)、次の簡単な関数を使用してデモンストレーションできます。


コードをコピー コードは次のとおりです: >>> def foo(*args):
... Print ARGS #このパラメータを通じて取得したオブジェクトを出力します
...
>>> #以下は、さまざまな値を渡し、パラメーター *args
を渡すことによって得られる結果を示しています。
>>>foo(1,2,3) (1、2、3)


>>> foo("qiwsir","qiwsir.github.io","python")

('qiwsir'、'qiwsir.github.io'、'python')

>>> foo("qiwsir",307,["qiwsir",2],{"name":"qiwsir","lang":"python"})
('qiwsir', 307, ['qiwsir', 2], {'lang': 'python', 'name': 'qiwsir'})

それが何であれ、それはすべてタプルに詰め込まれます。

*args を使用して複数の値を受け取ることに加えて、**kargs を使用して値を受け取ることもできますが、今回は少し異なります。

コードをコピー コードは次のとおりです:

>>> def foo(**kargs):
... print kargs
...
>>> foo(a=1,b=2,c=3) #代入方法と出力結果に注意
{'a': 1、'c': 3、'b': 2}

今回 foo(1,2,3) を使うと結果はどうなるでしょうか?

コードをコピー コードは次のとおりです:

>>> foo(1,2,3)
トレースバック (最後の呼び出し):
ファイル「」、1 行目、
TypeError: foo() はちょうど 0 個の引数を取ります (3 個が与えられます)

ここで読者はこう思ったかもしれませんが、それは不確実性ではないでしょうか?パラメータがどのように渡されるかはわかりません。これは簡単です。上記を組み合わせるだけです。

コードをコピー コードは次のとおりです:

>>> def foo(x,y,z,*args,**kargs):
... print x
... print y
... print z
... print args
...kargs を印刷
...
>>> foo('qiwsir',2,"python")
キウシール
2
パイソン
()
{}
>>> foo(1,2,3,4,5)
1
2
3
(4, 5)
{}
>>> foo(1,2,3,4,5,name="qiwsir")
1
2
3
(4, 5)
{'名前': 'qiwsir'}

非常に優れており、さまざまなパラメータ要件を満たすことができます。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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)

Windows 11 および 10 の環境変数をプロファイリングに使用するためのガイド Windows 11 および 10 の環境変数をプロファイリングに使用するためのガイド Nov 01, 2023 pm 08:13 PM

環境変数は、アプリケーションやプログラムが実行される場所 (または環境) へのパスです。ユーザーはこれらを作成、編集、管理、削除でき、特定のプロセスの動作を管理する場合に便利です。ここでは、Windows で複数の変数を個別に編集することなく、複数の変数を同時に管理するための構成ファイルを作成する方法を説明します。環境変数でプロファイルを使用する方法 Windows 11 および 10 Windows には、ユーザー変数 (現在のユーザーに適用) とシステム変数 (グローバルに適用) の 2 つの環境変数セットがあります。ただし、PowerToys などのツールを使用すると、別の構成ファイルを作成して新しい変数と既存の変数を追加し、それらをすべて一度に管理できます。方法は次のとおりです: ステップ 1: PowerToysPowerTo をインストールする

i9-12900Hパラメータ評価リスト i9-12900Hパラメータ評価リスト Feb 23, 2024 am 09:25 AM

i9-12900H は 14 コア プロセッサです。使用されているアーキテクチャとテクノロジはすべて新しく、スレッドも非常に高速です。全体的な動作は優れており、いくつかのパラメータが改善されています。特に包括的で、ユーザーに優れたエクスペリエンスをもたらします。 。 i9-12900H パラメータ評価レビュー: 1. i9-12900H は、q1 アーキテクチャと 24576kb プロセス テクノロジを採用した 14 コア プロセッサで、20 スレッドにアップグレードされています。 2. 最大 CPU 周波数は 1.80! 5.00 ghz で、主にワークロードによって異なります。 3. 価格と比較すると、非常に適しており、価格性能比が非常に優れており、通常の使用が必要な一部のパートナーに非常に適しています。 i9-12900H のパラメータ評価とパフォーマンスの実行スコア

PHP7 の変数の厳密モード: 潜在的なバグを減らすには? PHP7 の変数の厳密モード: 潜在的なバグを減らすには? Oct 19, 2023 am 10:01 AM

PHP7 では Strict モードが導入され、開発者が潜在的なエラーを減らすのに役立ちます。この記事では、厳密モードとは何か、および PHP7 で厳密モードを使用してエラーを減らす方法について説明します。同時に、コード例を通じて厳密モードの適用を示します。 1.ストリクトモードとは何ですか? Strict モードは、開発者がより標準化されたコードを作成し、いくつかの一般的なエラーを減らすのに役立つ PHP7 の機能です。厳密モードでは、変数宣言、型チェック、関数呼び出しなどに厳密な制限と検出が行われます。合格

Javaのインスタンス変数とは何ですか Javaのインスタンス変数とは何ですか Feb 19, 2024 pm 07:55 PM

Java のインスタンス変数は、メソッドやコンストラクターではなく、クラスで定義された変数を指します。インスタンス変数はメンバー変数とも呼ばれ、クラスの各インスタンスにはインスタンス変数の独自のコピーがあります。インスタンス変数はオブジェクトの作成時に初期化され、その状態はオブジェクトの存続期間全体にわたって保存および維持されます。インスタンス変数定義は通常、クラスの先頭に配置され、パブリック、プライベート、プロテクト、またはデフォルトのアクセス修飾子など、任意のアクセス修飾子を使用して宣言できます。それは私たちがこれをどうしたいかによって決まります

指定された値を引数として受け取る逆双曲線正弦関数の値を見つける C++ プログラム 指定された値を引数として受け取る逆双曲線正弦関数の値を見つける C++ プログラム Sep 17, 2023 am 10:49 AM

双曲線関数は、円の代わりに双曲線を使用して定義され、通常の三角関数と同等です。ラジアン単位で指定された角度から双曲線正弦関数の比率パラメーターを返します。しかし、その逆、つまり別の言い方をすればいいのです。双曲線正弦から角度を計算したい場合は、双曲線逆正弦演算のような逆双曲線三角関数演算が必要です。このコースでは、C++ で双曲線逆サイン (asinh) 関数を使用し、ラジアン単位の双曲線サイン値を使用して角度を計算する方法を説明します。双曲線逆正弦演算は次の式に従います -$$\mathrm{sinh^{-1}x\:=\:In(x\:+\:\sqrt{x^2\:+\:1})}ここで\:In\:is\:自然対数\:(log_e\:k)

Ajaxを使用してPHPメソッドから変数を取得するにはどうすればよいですか? Ajaxを使用してPHPメソッドから変数を取得するにはどうすればよいですか? Mar 09, 2024 pm 05:36 PM

Ajax を使用して PHP メソッドから変数を取得することは、Web 開発では一般的なシナリオであり、Ajax を使用すると、データを更新せずにページを動的に取得できます。この記事では、Ajax を使用して PHP メソッドから変数を取得する方法と、具体的なコード例を紹介します。まず、Ajax リクエストを処理し、必要な変数を返すための PHP ファイルを作成する必要があります。以下は、単純な PHP ファイル getData.php のサンプル コードです。

Python 構文のマインド マップ: コード構造の深い理解 Python 構文のマインド マップ: コード構造の深い理解 Feb 21, 2024 am 09:00 AM

Pythonはそのシンプルで読みやすい構文から幅広い分野で広く使われています。プログラミングの効率を向上させ、コードがどのように機能するかを深く理解するためには、Python 構文の基本構造をマスターすることが重要です。この目的を達成するために、この記事では、Python 構文のさまざまな側面を詳しく説明した包括的なマインド マップを提供します。変数とデータ型 変数は、Python でデータを保存するために使用されるコンテナです。マインド マップには、整数、浮動小数点数、文字列、ブール値、リストなどの一般的な Python データ型が表示されます。各データ型には独自の特性と操作方法があります。演算子 演算子は、データ型に対してさまざまな操作を実行するために使用されます。マインド マップは、算術演算子、比率など、Python のさまざまな演算子の種類をカバーしています。

C++ 関数パラメータの型の安全性チェック C++ 関数パラメータの型の安全性チェック Apr 19, 2024 pm 12:00 PM

C++ パラメーターの型の安全性チェックでは、コンパイル時チェック、実行時チェック、静的アサーションを通じて関数が予期される型の値のみを受け入れるようにし、予期しない動作やプログラムのクラッシュを防ぎます。 コンパイル時の型チェック: コンパイラは型の互換性をチェックします。実行時の型チェック:dynamic_cast を使用して型の互換性をチェックし、一致しない場合は例外をスローします。静的アサーション: コンパイル時に型条件をアサートします。

See all articles