把元組做爲參數傳給函數:python
fun(*tuple)函數
注:命名參數後面跟元組,不能把元組放在命名參數前spa
fun(x=1, y=2)遞歸
注:x 和 y 不能改爲其餘字符,必須和函數定義的形式參數一致;import
字典傳值:file
fun(**dict)循環
字典的keys要和函數的行參一致方法
冗餘參數:im
向函數傳元組和字典命名
處理多餘實參
def fun(x,y,*args,**kwargs)
遞歸是函數內部調用本身,一般用來計算階層
計算階層有循環和遞歸兩種方法;
普通方法:
- 使用循環
1到n遞乘:
#! /usr/bin/python
def factorial(n):
sum = 1
for i in range(1, n+1):
sum *= i
return sum
print factorial(5)
1到n遞加:
#! /usr/bin/python
def factorial(n):
sum = 0
for i in range(1, n+1):
sum += i
return sum
print factorial(100)
遞歸調用:
n到1遞乘:
def factorial(n):
if n == 0:
return 1
else:
return n * factorial(n-1)
print factorial(5)
1到n遞加:
#! /usr/bin/python
def factorial(n):
if n == 0:
return 0
else:
return n + factorial(n-1)
print factorial(100)
遞歸的注意事項:
必須有最後的默認結果
if n == 0
遞歸參數必須向默認結果收斂的:
factorial(n-1)
os模塊的幾個方法:
os.listdir()
列出目錄下的文件和目錄,以列表形式輸出
os.path.isdir()
判斷是否是目錄,返回bool值
os.path.isfile()
判斷是否是文件,返回bool值
os.path.join()
鏈接路徑,不會判斷文件存不存在
打印目錄下全部文件:
#! /usr/bin/python
import os
import sys
def print_files(path):
lsdir = os.listdir(path)
dirs = [i for i in lsdir if os.path.isdir(os.path.join(path, i))]
files = [i for i in lsdir if os.path.isfile(os.path.join(path, i))]
if dirs:
for d in dirs:
print_files(os.path.join(path,d))
if files:
for f in files:
print os.path.join(path,f)
print_files(sys.argv[1])