2018-11-28学习笔记

1. 多类型传值和冗余参数 

把元组作为参数传给函数:

fun(*tuple)

注:命名参数后面跟元组,不能把元组放在命名参数前

fun(x=1, y=2)

注:x 和 y 不能改成其他字符,必须和函数定义的形式参数一致;

字典传值:

fun(**dict)

字典的keys要和函数的行参一致

冗余参数:

向函数传元组和字典

处理多余实参

def fun(x,y,*args,**kwargs)

  • x y表示普通命名参数;
  • 接收冗余参数用*args 和 **kwargs表示;
  • *args 会把多余的参数写到元组里;
  • **kwargs 冗余参数是默认参数类型或字典时写入Kwargs;

2. 函数的递归调用

递归是函数内部调用自己,通常用来计算阶层

计算阶层有循环和递归两种方法;

普通方法:

    - 使用循环

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])


猜你喜欢

转载自my.oschina.net/u/3803404/blog/2962977