def
findcontinuoussequence_optimize
(self, tsum)
:# write code here
if tsum <3:
return
res =
for i in
range(1
,int
((tsum +1)
/2))
:print
('外層迴圈i:%d'
% i)
sum=
0 temp =
while
sum< tsum:
print
('內層迴圈i:%d'
% i)
sum+= i
i +=1if
sum== tsum:
return res
記錄一下,在做的時候比較納悶為什麼內部迴圈時可以在i值基礎上進行改變,跳出內部迴圈i值對外部迴圈i值也沒影響。
由此想到python的字串數字是不可變變數,而變數只是給儲存的數字字串等起的「名字」,因此輸出了一下i在內外迴圈的位址,發現,內外迴圈對應相同的i值位址相同,應證了python的不可變變數。
不可變(immutable):int、字串(string)、float、(數值型number)、元組(tuple)
可變(mutable):字典型(dictionary)、列表型(list)
python函式引數對於可變物件,函式內對引數的改變會影響到原始物件;對於不可變物件,函式內對引數的改變不會影響到原始引數。原因在於:
1、可變物件,引數改變的是可變物件,其內容可以被修改。
2、不可變物件,改變的是函式內變數的指向物件。引自
因此,**中i值只是當前數值的引用。
python 可變物件和不可變物件
變數沒有型別,那麼就意味著它可以隨意指向任何物件。python中的變數相當於乙個指標。當將乙個變數a賦值給另乙個變數b時,無論變數a指向的是可變物件還是不可變物件,變數b指向變數a指向的物件。例 alist 1 2,3 anolist alist id alist id anolist true b...
python可變物件與不可變物件
可改變的物件 例子1def change num print function parameter id num num 100 print assigin value to num id num if name main a 10 print origin id a id a change a p...
Python可變物件和不可變物件
python中一切皆物件,每個物件都有其唯一的id,對應的型別和值,其中id指的是物件在記憶體中的位置。根據物件的值是否可修改分為可變物件和不可變物件。其中,不可物件包括 數字,字串,tuple,frozenset 不可變集合 可變物件包括 list,dict,set python中的變數可以指向任...