インターネット上には Python の範囲についての紹介がたくさんあります。そのため、今日私が皆さんに共有する記事は、Python の範囲を簡単に理解するためにこれらの 5 つの知識ポイントを学習できるようにするものです。
">
1. ブロックレベルスコープ
考えてみて、この時に次のプログラムを実行したら出力はあるでしょうか?実行は成功しますか?
#ブロックレベルスコープ
if 1 == 1:
name = "lzl"
print(name)
for i in range(10):
age = i
print(age)
まずは実行結果を見てみましょう
C:/Users/L/PycharmProjects/ s14/preview/Day8/scope/main.py
lzl
9
プロセスは終了コード 0 で終了しました
コードは Java/C# で問題なく実行され、上記のコードは name を要求しますが、age は定義されていません。ただし、Python では正常に実行できます。これは、コード ブロック内の変数を外部から呼び出すことができるためです。
2. ローカル スコープ
関数について学んだとき、関数は別のスコープでした。しかし、次のコードを見てください。ローカル スコープがあります。 #localscope
def func():
name = "lzl"
print(name)
このコードを実行して、何か出力があるかどうか疑問に思いますか?
Traceback (most last call last):
File "C :/Users/L/PycharmProjects/s14/review/Day8/scope/main.py"、 print(name)
NameError: name 'name' が定義されていません
実行エラー、私誰もがこれを理解できると信じて、変数に名前を付けます。これは func() 関数内でのみ有効なので、上記のコードを簡単に調整して結果を確認することはできません。
#ローカル スコープ
def func ():
name = "lzl"
func() #関数の実行
print(name)
変数名を出力する前に、この時点で関数が実行されます。
トレースバック? (最後の呼び出し):
ファイル "C:/Users/L/PycharmProjects/s14/preview/Day8/scope/main.py"、 の 23 行目 print(name) )
NameError: name 'name' が定義されていません
実行してもエラーが報告されます。先ほどの文に戻りましょう: 関数が実行されたとしても、name のスコープは関数内のみであり、まだ実行できません外部から呼び出される; 最初の 2 つの知識ポイントを覚えておいてください。次に、トリック
3 の拡張を開始します。関数を調整して、次のコードの実行結果を確認します。
#スコープチェーン
name = "lzl"
def f1(): name = "Eric"
def f2():
name = "Snor"
print(name)
f2()
f1()
関数を勉強したことがある人なら、f1() が実行された後に Snor が出力されることを知っているはずです。まず、Python にはスコープチェーンがあり、変数は内側から外側に向かって検索されます。持っていない場合は、エラーが見つからなくなるまで上司に行って探してください
4. Ultimate Edition のスコープ
さて、準備は十分です。 、究極版はこちらです~~
#ULTIMATE Edition スコープ
name = "lzl"
def f1():
print(name)
def f2():
name = "eric"
f1()
f2()
f2() が "lzl" を出力する最終的な実行結果を考えてみましょう。それとも "eric" を出力しますか?今は答えを投稿しないでください:
#ULTIMATE SCOPE
name = "lzl"
def f1():
print(name)
def f2() :
name = "eric"
return f1
ret = f2()
ret()
#Output: lzl
実行結果は "lzl" で、上記のコードを分析して、f2() を実行すると、結果は関数 f1 のメモリアドレス、つまり ret=f1; ret() を実行することは、f1() を実行することと同じであり、f2() と f1() は関係ありません。チェーンが同じスコープ内にある場合、関数内に変数がない場合は外側を参照するため、このときの変数名の値は「lzl」になります。これを理解すれば、最終的なコードの答えもわかります。今答えを与えていないことを
#ULTIMATE SCOPE
def f1():
print(name)
def f2():
name = "eric"
f1( )
f2()
# 出力: lzl
はい、出力は「lzl」です。関数が実行される前にスコープが形成され、スコープチェーンも生成されていることを覚えておいてください
5. Sina のインタビューの質問
li = [lambda :x for x in range (10)】
李のタイプを決定しますか? li の要素はどのような型ですか?
print(type(li))
print(type(li[0]))
#
#
li がlist 型の場合、リスト内の要素は関数であり、リスト内の最初の要素の戻り値を出力します。このときの戻り値は何ですか?
#lambada面接の質問
li = [lambda :x for x in range(10)]
res = li[0]()
print(res)
#Output: 9
liFirst関数の戻り値of 9 は 0 ではありません。覚えておいてください: 関数が実行される前に内部コードは実行されません。ブログ内のコードを自分で練習して、印象を深めることができます
概要
上記がこの記事の全内容です。皆さんの勉強や仕事に役立つかどうかはわかりませんが、ご質問がございましたら、メッセージを残してください。
以上がPythonの範囲をわかりやすく理解するための5つの知識を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

inpython、youappendelementStoalistusingtheappend()method.1)useappend()forsingleelements:my_list.append(4).2)useextend()or = formultipleElements:my_list.extend(another_list)ormy_list = [4,5,6] .3)forspecificpositions:my_list.insert(1,5).beaware

シェバンの問題をデバッグする方法には次のものがあります。1。シバン行をチェックして、それがスクリプトの最初の行であり、接頭辞スペースがないことを確認します。 2.通訳パスが正しいかどうかを確認します。 3.通訳を直接呼び出してスクリプトを実行して、シェバンの問題を分離します。 4. StraceまたはTrustsを使用して、システムコールを追跡します。 5.シバンに対する環境変数の影響を確認してください。

pythonlistscanbemanipulatedsingseveralmethodstoremoveElements:1)theremove()methodremovesthefirstoccurrenceofaspecifiedValue.2)thepop()methop()methodremovessanelementatagivenindex.3)thedelstatementementementementementementementementementemoritemoricedex.4)

Integers、strings、floats、booleans、otherlists、anddictionaryを含むpythonlistscanstoreanydatype

PythonListsSupportNumersoperations:1)AddingElementSwithAppend()、Extend()、Andinert()

Numpyを使用して多次元配列を作成すると、次の手順を通じて実現できます。1)numpy.array()関数を使用して、np.array([[1,2,3]、[4,5,6]])などの配列を作成して2D配列を作成します。 2)np.zeros()、np.ones()、np.random.random()およびその他の関数を使用して、特定の値で満たされた配列を作成します。 3)アレイの形状とサイズの特性を理解して、サブアレイの長さが一貫していることを確認し、エラーを回避します。 4)np.reshape()関数を使用して、配列の形状を変更します。 5)コードが明確で効率的であることを確認するために、メモリの使用に注意してください。

BroadcastinginNumPyisamethodtoperformoperationsonarraysofdifferentshapesbyautomaticallyaligningthem.Itsimplifiescode,enhancesreadability,andboostsperformance.Here'showitworks:1)Smallerarraysarepaddedwithonestomatchdimensions.2)Compatibledimensionsare

Forpythondatastorage、chooseLists forfficability withmixeddatypes、array.arrayformemory-efficienthogeneousnumericaldata、およびnumpyArrays foradvancednumericalcomputing.listSareversatilebuteficient efficient forlargeNumericaldatates;


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

ホットトピック









