01月05日 三周四次【Python基础进阶】

1.8 递归列出目录里的文件
1.9 匿名函数


1.8 递归列出目录里的文件

#### 遍历目录里的文件(不支持子目录文件)
import os
for i in os.listdir(‘C:/Users/Administrator/Desktop/技术文档‘):
    print (i)
###########################################
#### 目录是否存在
import os
d = os.path.isdir(‘C:/Users/Administrator/Desktop/技术文档/.‘)
print(d)
> True
#### 文件是否存在
import os
d = os.path.isfile(‘C:/Users/Administrator/Desktop/技术文档‘)
print(d)
> False
#### 路径连接
import os
d = os.path.join(‘C:/Users/Administrator/Desktop‘,‘aa‘,‘bb‘)
print(d)
> C:/Users/Administrator/Desktop\aa\bb
######################################################
#### 遍历目录里的文件和子目录里的文件
import os
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 files:
        for f in files:
            print(os.path.join(path, f))
    if dirs:
        for d in dirs:
            print_files(os.path.join(path, d))
print_files(‘C:/Users/Administrator/Desktop/技术文档‘)

1.9 匿名函数

匿名函数

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

    lambda

    defun(x, y):
    return x*y
    #
    r = lambda x,y:x*y
    print(r(2,3))     # 调用
    > 6
  • 匿名函数优点:
    • 1.使用python写一些脚本时, 使用lambda可以省去定义函数的过程, 让代码更加精简
    • 2.对于一些抽象的, 不会被别的地方再重复使用的函数, 有时候函数起个名字也是个难题, 使用lambda不需要考虑命名的问题
    • 3.使用lambda在某些时候让代码更容易理解

      lambda基础

  • lambda语句中, 冒号前是参数, 可以有多个,逗号隔开, 冒号右边是返回值
  • lambda语句构建的其实是一个函数对象

    lamdba使用

    from functools import reduce
    def add(x, y):
    return x + y
    sum = reduce(add, range(1,101))
    print(sum)
    > 5050
    #
    from functools import reduce
    print(reduce(lambda x,y:x+y, range(1,101)))
    > 5050

习题

  1. 从终端接收若干个数字,要求使用filter()函数,将输入的不是数字的值剔除掉(用户输入的内容有随机性,当我们要接收一个数字的时候,他可能会输入一个字符串过来,要求当用户输入的不是数字,就剔除掉)

  1. 从终端接收若干个以空格隔开的字符串,然后去除所有的26个字符之外的字符后,打印到屏幕上
    要求:使用map()函数,map()函数接收两个参数,一个是函数,一个是Iterable,map将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator返回。

  1. 从终端接收若干个以空格隔开的字符串
    (1).以空格隔开的字符串为用户想要输入的一个值
    (2).用户在输入时不小心按出来了字母键

原文地址:http://blog.51cto.com/13542406/2058850

时间: 2024-08-28 23:33:13

01月05日 三周四次【Python基础进阶】的相关文章

01月11日 四周四次【Python基础进阶】

3.1/3.2 类的继承3.3 类的属性总结3.4 类的方法总结 3.1/3.2 类的继承 类的继承 继承是面向对象的重要特点之一 继承关系: 继承是相对两个类而言的父子关系,子类继承父类所有的公有属性和方法 继承实现代码重用 使用继承 继承可以重用已经存在的数据和行为,减少代码的重复编写.Python在类名后使用一对括号来表示继承关系,括号中的类即为父类 class Myclass(ParentClass) 如果父类定义了int方法,子类必须显示调用父类的init方法 ParentClass.

C语言第三天笔记2016年01月14日(周四)P.M

1. 二维数组: 例:int a[5][6] :5行6列 在物理内存中存储时,以一位数组的形式存放. 注:初始化时行数可省,列不能空,数组名不可赋值 2. continue:结束本次循环  即直接返回至判断条件 while: 使用条件内的数字初始化数组元素. break:跳出整个循环 3. 函数:用来实现指定功能的代码模块. 函数返回值的个数最多有一个 函数声明:return-type function-name(argument declarations); 返回值类型 函数名(参数列表) 函

C语言第三天笔记2016年01月14日(周四)A.M

1. while循环:当型循环 先执行判断条件,循环体可能一次都不会执行 do-while循环:直到型循环 先执行循环体后判断条件,循环体至少会执行一次. 2. for循环: for (expr1; expr2; expr3) statement //循环体 expr1:初始化循环控制变量(可选) expr2:循环判断条件(可省)若省略判断条件永真,有可能导致死循环 expr3:修改循环控制变量(可省) 在循环结构中,必须有修改循环控制变量的操作. break:退出整个循环 练习:9*9乘法表

C语言第七天笔记2016年01月21日(周四)P.M

1. 内存分配: C++里面使用new  delete 注意: #include <iostream> #include"stdlib.h" using namespace std; int main(int argc, char *argv[]) { int* p=new int(5); //申请了一个数组大小的堆空间,数组中的元素为int类型,元素个数为5. int* q=new int[5]; //申请了一个数组大小的堆空间,数组中的元素为int类型,元素个数为5.

【EPM-易通元】2016年05月05日晚报发布

涨了.涨了.又涨了! 我们的「EPM易通元」天天见涨!太给力了!! 2016.05月05日今天下午已涨0.01美金,目前坼分已到0.23美金啦!如果你有1000个易通元,你今天就收益10美金 如果你有10000个易通元,今天就收益100美金 如果你有100000个易通元,你今天就收益1000美金 如果你有1000000个易通元,你今天就收益10000美金. 恭喜买到「EPM易通元」的朋友们,买到即是赚到! 买入210美金到3500美金 :1美金:6.3人民币兑换,举例买入3500美金(人民币22

第一金早评 - 2015年01月07日-晨早快訊

每日金市速遞 (2015年01月07日) 谢权东 先生 上日9999 金粒賣出價每両 HKD 12590 金粒賣出價資料參考周生生,周大福 即日投資策略: 黃金日線圖上分析,日線收3連陽,K線沿布林帶中軌和上軌之間運行,金價日內大漲,布林帶有向上開口跡象,布林中軌向上翹頭,短週期均線指標金叉向上,MACD快慢線死叉於0軸下方金叉,有上穿0軸趨勢,紅柱放量. 從4小時來看,布林帶向上開口,金價處於布林上軌1220與MA5-1215之間震盪往上,短週期均線指標金叉向上,MACD快慢線於0軸附近形成金

01月25日【Python3 基础知识】

01月25日[Python3 基础知识] 4.1 读写文件 4.2 文件方法 4.3 python2的乱码问题 4.4 python对passwd文件进行排序 4.1 读写文件 访问 模式 说 明 r 以只读方式打开文件.文件的指针将会放在文件的开头.这是默认模式. w 打开一个文件只用于写入.如果该文件已存在则将其覆盖.如果该文件不存在,创建新文件. a 打开一个文件用于追加.如果该文件已存在,文件指针将会放在文件的结尾.也就是说,新的内容将会被写入到已有内容之后.如果该文件不存在,创建新文件

把NSString *[email&#160;protected]&quot;2013 年 05 月 05 日&quot;;以2013-05-05输出

#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { NSString *[email protected]"2013 年 05 月 05 日"; NSRange strc=NSMakeRange(0, 4); NSRange strc1=NSMakeRange(7, 2); NSRange strc2=NSMakeRange(12, 2)

2015年01月09日_安装archlinux中一些注意事项

一直以来是用win或ubuntu办公.新手不懂高手怎么那么喜欢linux,做完一个大项目后才发觉一个快速运行的系统多么重要.ubuntu办公虽然快一些,但是在办公方面感觉还是略差一节,现决定使用archlinux及轻量级桌面,把所有能用得起的物理资源全部用在工作软件方面.2015年01月09日在安装时出现了一些小问题,现记录如下,供以后自己及有心人查阅. 1. arch wiki文档中可切换到中文查看.确保顺序没错 2. vi中搜索关键字:  /vi vi中的剪切一行:dd vi中的复制一行:y