博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
2018-11-29学习笔记
阅读量:6553 次
发布时间:2019-06-24

本文共 1658 字,大约阅读时间需要 5 分钟。

hot3.png

1. 递归列出目录里的文件

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

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

普通方法:

    - 使用循环

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

 

2. 匿名函数

   - lambda函数是一种快速定义单行的最小函数,可以用在任何需要函数的地方。

def fun(x, y):

         return x*y

    fun(2, 3)

r = lambda x,y: x*y

    r(2, 3)

注:<function __main__.<lambda>>返回带<>号的都是对象

 

匿名函数优点:

    - 1.使用python写一些脚本时,使用lambda可以省去定义函数的过程,让代码更加精简。

    - 2. 对于一些抽象的,不会被别的地方再重复使用的函数,有时候函数起个名字也是个难题,使用lambda不需要考虑命名的问题。

    - 3. 使用lambda在某些时候让代码更容易理解。

 

lambda语句中,冒号前是参数,可以有多个,逗号隔开,冒号右边是返回值。

lambda语句构建的其实是一个函数对象

 

reduce()函数:

reduce是内置函数

reduce后面的函数必须有两个参数,后面跟一个序列

序列中的参数执行所跟函数的return

def add(x, y):

        return x + y

    sum = reduce(add, [1, 2, 3])

 

reduce(lambda x,y:x+y, range(1,4))

转载于:https://my.oschina.net/u/3803404/blog/2963844

你可能感兴趣的文章
Android Apk 瘦身大法
查看>>
Python线程event
查看>>
编译内核开始的小问题Unable to find the Ncurses libraries
查看>>
C# 编程数据结构学习笔记 2
查看>>
初识C++有感
查看>>
python---------------递归函数
查看>>
Getting start with dbus in systemd (03) - sd-bus.h 使用例子 (systemd version>=221)
查看>>
排序四:归并排序--分治法
查看>>
不想当裁缝的厨子不是好司机
查看>>
scikit-learn算法选择路径图
查看>>
C#操作XML方法详解
查看>>
Linux内核学习笔记
查看>>
单选按钮取消选中的三种方式
查看>>
组员交换
查看>>
nginx的5个特点
查看>>
MyEclipse安装Maven插件
查看>>
CSS3 pointer-events属性
查看>>
浏览器的工作原理
查看>>
JDK1.8 HashMap源码分析
查看>>
Android5.x Notification应用解析
查看>>