學習廖雪峰老師的python教程,在迴圈的課後習題中發現了乙個問題。
name = ['上面的**執行的結果micheal
','bob
','jack']
for name in
name:
(name)
(name)
print(name[0])
![](https://pic.w3help.cc/804/6a555f0e16fd9a8940aeed3eb0510.jpeg)
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="上面的**的執行結果就是 j ,name是乙個字串,name[0]就是讀取name的第乙個,這在c++中也是這樣:jack
"print(name[0])
#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引數傳遞採用的肯定是 傳物件引用 的方式。實際上,這種方式相當於傳值和傳引用的一種綜合。如果函式收到的是乙個可變物件 比如字典或者列表 的引用,就能修改物件的原始值 相...