*)可以這樣,不用儲存遞迴中的變數
import os*)誰說while最少會執行一次的,並不是這樣def findfile (str,dir = os.path.abspath('.')):
for x in os.listdir(dir):
if os.path.isdir(os.path.join(dir,x)):
findfile(str,os.path.join(dir,x))
elif str in x:
print(os.path.join(dir,x))#我一直都是想辦法儲存在遞迴的程式中
>>> while a>2view code:... print(a)
... a-=1
...>>>
>>> a=3
>>> while a>2
:... print(a)
... a-=1
...3
>>> a.extend(2,3)>>> atraceback (most recent call last):
file "", line 1, in typeerror: extend() takes exactly one argument (2 given)
>>> a.extend(2)
traceback (most recent call last):
file "", line 1, in typeerror: 'int' object is not iterable
[1, 2, 2, 4, [2, 4]]
extend()不是
>>> a=[1,2]*)方法名相同的情況下,例如方法名內部有重名的方法和引數,呼叫的情況>>> b=[2,4]
>>> a.extend(b)
>>> a
[1, 2, 2, 4]
>>> a
[1, 2, 2, 4, [2, 4]]
def name1(collection):*)遞迴失敗:print('外面的name1,引數:collection:',collection)
def name1(collection):
print('裡面的name1,引數:collection:',collection)
name1(collection)
if __name__=='__main__':
collection=[1,2,3,4,5,6]
name1(collection[2:])
(sort) λ python fortest.py
外面的name1,引數:collection: [3, 4, 5, 6]
裡面的name1,引數:collection: [3, 4, 5, 6]
def name1(collection):*)python中的切片也是[a:b]是從a到b-1的print('外面的name1,引數:collection:',collection)
name1(collection)
traceback (most recent call last):
file "fortest.py", line 8, in name1(a)
file "fortest.py", line 5, in name1
name1(collection)
file "fortest.py", line 5, in name1
name1(collection)
file "fortest.py", line 5, in name1
name1(collection)
[previous line repeated 993 more times]
file "fortest.py", line 2, in name1
print('外面的name1,引數:collection:',collection)
recursionerror: maximum recursion depth exceeded while calling a python object
*)關於for迴圈中range(2),i到底是從0還是1開始。特別是在用陣列的長度作為range的引數的時候經常會犯糊塗
還有range(a,b,c)無論怎樣,返回的陣列都是[a,....b-1](c>0)或者[a,.....b+1](c<0)就是不到b
#首先*)range反向迴圈、反向遞減、將步長設定為負數就好了,注意要調換開始和結束的位置>>> for i in range(5):
... print(i)
...012
34#> s=[1,2,3,4,5]
>>> length=len(s)
>>> for i in range(length):#所以,這裡完全不用-1,類似於,因為range()會減去1,這就抵消掉了陣列長度比陣列下標多了1這個屬性說造成的訪問陣列會超出index這個trouble。
... print(s[i])
...123
45>>> length
5
>>> for i in range(5,3,-1):#從5開始,到3結束*)這樣range(0,0)並不會丟擲異常,而是什麼也不輸出... print(i)
...5
4>>>
>>> for i in range(0,0):... print(i)
...>>>
Python 語言中經常有疑惑的地方
可以這樣,不用儲存遞迴中的變數 import os def findfile str,dir os.path.abspath for x in os.listdir dir if os.path.isdir os.path.join dir,x findfile str,os.path.join d...
學習Python 中經常遇到疑惑的地方
可以這樣,不用儲存遞迴中的變數 import os deffindfile str dir os.path.abspath for x in os.listdir dir if os.path.isdir os.path.join dir,x findfile str,os.path.join di...
c語言中經常忽略的型別提公升
型別提公升常發生在表示式中,char,short 包括它們的signed和unsigned型別 以及列舉型別enum,在表示式中被提公升為int 如果int足夠表示轉換後的數的話,否則就是unsigned int 在含有unsigned int的表示式裡,int轉換為unsigned int來做運算...