python 多變數賦值

劉秋杉發表於2015-03-10
為什麼我用start,stop=10
這樣寫就不行,必須在後面再加上一個start!

回答

至於為什麼需要這樣賦值,可能跟樓主學習過C,C++或者JAVA語言有關,舉例來講, 在C語言中,如下程式碼是可以正常編譯的:
#include <stdio.h>int main()
{
 int start, stop  = 10;
 int a;
 printf("start:%d, stop:%d, a:%d", start, stop, a);
 return 0;
}
輸出:start:0, stop:10, a:0
說明10賦值給了stop, start跟a一樣,你只是定義了這兩個變數,然後C編譯器自動把他們初始化為0

在python就不太一樣, python無需變數申明,你只要使用變數並同時賦值,這個變數就產生了,所以像上述語句中start,a變數都只是定義,在python中是不允許的。
另外python中有多變數賦值這個概念
如:
>>> v = ('a', 'b', 'e')
>>> (x, y, z) = v     
>>> x 'a'
>>> y 'b'
>>> z 'e'
所以如果像以下方式賦值的話:start,stop=10
10只是賦值給了start,而stop沒有被賦值,所以出錯。
可以這樣 start,stop = 10 , 20   
輸出: start=10, stop=20
如果
 start = 9
 start,stop = 10 , start 輸出:start = 10stop = 9

參考:

http://zhidao.baidu.com/question/230686818.html?         from=pubpage&msgtype=2http://zhidao.baidu.com/question/130438908.html


轉載自: http://my.oschina.net/liango/blog/79789

相關文章