Python的變數問題

2022-05-20 17:01:31 字數 964 閱讀 4535

學習廖雪峰老師的python教程,在迴圈的課後習題中發現了乙個問題。

name = ['

micheal

','bob

','jack']

for name in

name:

print

(name)

print

(name)

print(name[0])

上面的**執行的結果

for這一條語句裡面出現兩個name,python是如何處理的呢?第四條語句的輸出為什麼是jack呢?我是這麼理解的:

先是建立乙個list,然後,python將乙個名為name的東西

指向這個list(覺得把它想成乙個name指標指向這個list會好理解),list建立初始化後來到for語句,這時候,python先找到名為name的list的記憶體位址,然後申請生成乙個變數空間,然後把剛才那個名為name的東西

(指標?)轉頭指向新開闢的變數空間,然後python依次從list的記憶體空間把資料拿出來存放到name這個變數中。所以第四行中的name的值為「jack」,這也就解釋了為什麼第四行的輸出是jack。第五行為什麼是j?我覺得這是理所當然的,還是解釋下吧,畢竟這是我的第一篇文章:-d.

name="

jack

"print(name[0])

上面的**的執行結果就是  j  ,name是乙個字串,name[0]就是讀取name的第乙個,這在c++中也是這樣:

#includeusing

namespace

std;

intmain()

好了,第一篇部落格到此結束了,如果有什麼理解不對的歡迎指正學習,畢竟開始寫部落格的目的除了記下這段奮鬥的歷程,就是為了能更好的相互學習了。

python的變數作用域問題

偶然掉進了乙個坑里。仔細分析了下原因。原來是變數作用域的問題。簡單抽象如下 id 1 許多行 id for id in range 10 許多行 if id 1 做一些事情 pass else 做另外一些事情 結果由於id在 id for id in range 10 中受到了影響發生了變化,導致蟲...

Python 變數的變數

最近在寫乙個程式的過程中,遇到乙個 python 變數的變數的問題,就是某個變數的值,還是變數,然後我想取最終的值,感謝偉大的 google,寫這篇文章記錄下。先上 usr bin env python encoding utf 8 import inspect import configparse...

python函式中的變數修改問題

先挖個坑,改日再補 參考中的內容 和其他語言不一樣,傳遞引數的時候,python不允許程式設計師選擇採用傳值還是傳引用。python引數傳遞採用的肯定是 傳物件引用 的方式。實際上,這種方式相當於傳值和傳引用的一種綜合。如果函式收到的是乙個可變物件 比如字典或者列表 的引用,就能修改物件的原始值 相...