把元组做为参数传给函数: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])