需求:遍历某个路径下面的所有内容(文件和目录,多层级的) import os #自定义函数(递归函数):遍历目录层级(多级) def printDirs(path): dirs=os.listdir(path) #循环处理列表 for d in dirs: #组装d得到其绝对路径 fileAbsPath=os.path.join(path,d) #判断是目录还是文件 #如果是文件直接打印,如果是目录再次调用此函数 if os.path.isfile((fileAbsPath)): print(d…
演示递归的弊端: def mySum(num): if num == 1: return 1 return num+mySum(num-1) mySum(998) [注意]:递归可以解决绝大多数循环能干的事情,但是使用递归非常占用系统资源(只有进行没有出栈),所以使用递归需要谨慎.…
演示:简单递归函数的定义和使用 需求:1~5进行累加 找寻关系:函数名:mySum(num) 1).找临界点:运算到1(加到1)就结束了 2). 第一次:5+mySum(5-1)-->return 5+10 第二次:4+mySum(4-1)-->return 4+6 10 第三次:3+mySum(3-1)-->return 3+3 6 第四次:2+mySum(2-1)-->return 2+1 3 第五次:1 -->return 1 def mySum(num): if nu…
转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线教程的编写,以及yarn的翻译整理表示感谢. NeHe OpenGL第三十一课:加载模型 模型加载: 你知道大名鼎鼎的Milkshape3D建模软件么,我们将加载它的模型,当然你可以加载任何你认为不错的模型.   这篇渲染模型的文章是由Brett Porter所写的. 这篇教程的代码是从PortaL…
 孤荷凌寒自学python第三十一天python的datetime.timedelta模块 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) datetime.timedelta模块是一个表示 时间长度的 类,不是之前datetime.datetime那样的 表示 时间点(时刻点)的类. 一.怎样得到一个datetime.timedelta对象 (一)  方法一:两个表示时刻点的日期时间对象直接进行减法运算就会得到一个datetime.timedelta对象. 注意:datetime.da…
这一课,我们先接着上一课讲一下wait方法,以及wait方法是如何从静态方法变化实例方法的. 首先我们先看wait方法为啥可以从静态方法变成实例方法,请看register源码: Deferred.register= function(name, fun){  //name="wait",fun=Deferred.wait: this.prototype[name] = function(){   //this=Deferred,this.prototype[name]  = Defer…
在线课堂 一.数据库模型设计 # 在apps/course/models.py中定义如下模型: from django.db import models from utils.models import ModelBase class Teacher(ModelBase): name = models.CharField(max_length=150, verbose_name="讲师姓名", help_text='讲师姓名') positional_title = models.Ch…
封装 封装最好理解了.封装是面向对象的特征之一,是对象和类概念的主要特性. 封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏. class dog(object): nationality='ch'#公有属性 def __init__(self,name,food,leven):#构造函数,方法,初始化方法 self.name=name #实例指针,指向 属性 对象成员 self.food=food self.leven=leve…
3.模块(m) 概念:在python中.py结尾的文件,我们就称为模块,可以将类.函数.属性...等内容定义在模块中 分类: 1).标准库模块:安装完python环境就有的模块,这些模块都是最常用的模块: 例如:random.os.os.path.math.... 2).第三方模块:别人写的有价值的代码(面向全世界),我们如果需要使用, 只需要通过pip安装即可 3).自定义模块:在项目开发过程中,团队中程序员自己定义的,可以给自己,也可以给别人调用 导入模块: 1).精确导入: 举例: imp…
演示with...as...操作 path=r'kaifanglist1.txt' with open(path,'r',encoding='utf-8') as fr: print(fr.read()) 注意事项: 1).将可能出现异常的代码定义到try语句中(try可以认为是扫描器), 但是它是不具备处理异常的能力 2).一旦try中出现了异常对象(自动.手动),第一个except会尝试去捕获它(捕获器), 如果类型匹配,则捕获成功,对象即被处理,然后会顺势去执行except中的内容(逻辑代…
1 python的类:   Python类都继承自object. __init__: 构造函数,如果不写,有一个默认的. __init__: 这个构造函数只能有一个,Python中不能有多个构造函数. 构造函数里面可以用类属性. __del__:  析构函数. class Car(object): // 表示继承自object count = 34 // 这个变量通过Car和car都能看到. def __init__(self, name, age): self.name = name; //…
2.__slots__: 作用:限制对象随意的动态添加属性 举例: class Demo: __slots__ = ('name','age','height','weight') #实例化Demo对象 d = Demo() #动态为d添加属性 d.name = 'abc' d.age = 12 #可以动态添加的属性为:('name','age','height','weight') #而sex不再范围内,所以执行代码报错了 --> AttributeError # d.sex = '男' pr…
演示异常对象传递的过程(往上“抛”),并将其解决 def func1(): print('func1...') print(10/0) def func2(): print('func2...') try: func1() except Exception as e: print(e) def func3(): print('func3...') func2() try: func3() except Exception as e: print(e) print('我能执行吗?') 需求:从键盘…
演示: 1.手动抛出异常对象-->raise关键字 2.try-except代码不能解决语法错误 try: print('try...') raise TypeError('类型有误的异常') except TypeError as e: print(e) else: print('else...') finally: print('finally...') try: # for=100 pass except: print('错了,错了')…
演示else语句和异常处理机制结合使用 try: print('try...') print(10/0) except: print('except...') else: print('else...') finally: print('finally...')…
演示:finally语句的作用 try: fr="" path=r'kaifanglist1.txt' fr=open(path,encoding='utf-8') print(fr.read()) except: print('处理啦,处理啦') finally: print('我是finally,我里面的代码一定会被执行...') if fr: fr.close() 演示finally的小案例: def func1(): try: print('我是try...') print(1…
演示: 1).异常处理的定义格式: 2).常见的运行时异常类型: try: print(10/0) num=int('132a') except Exception as e: print('出错了...代码解决了') except: print('我是Exception的简化版...') except ZeroDivisionError as e: print(e) pass except TypeError as e: print('出现类型不匹配的异常了...') except Value…
习题 31: 作出决定 这本书的上半部分你打印了一些东西,而且调用了函数,不过一切都是直线式进行的.你的脚本从最上面一行开始,一路运行到结束,但其中并没有决定程序流向的分支点.现在你已经学了 if, else, 和 elif ,你就可以开始创建包含条件判断的脚本了. 上一个脚本中你写了一系列的简单提问测试.这节的脚本中,你将需要向用户提问,依据用户的答案来做出决定.把脚本写下来,多多鼓捣一阵子,看看它的工作原理是什么. print "You enter a dark room with two…
数据库操作(DDL) 在数据库下创建表(create_table) 创建表代码块: CREATE TABLE employee( id TINYINT PRIMARY KEY auto_increment, name VARCHAR(25), gender boolean, age INT, department VARCHAR(20), salary DOUBLE(7,2)); 添加字段: 删除字段: 修改字段:…
#装饰器:本质就是函数,为其他函数附加功能原则:1.不修改被修饰函数的源代码2.不修改被修饰函数的调用方式 装饰器=高阶函数+函数嵌套+闭包 #高阶函数 ''' 高阶函数定义: 1.函数接受的参数是一个函数名 2.函数的返回值是一个函数名 3.满足上述条件任意一个,都可称之为高阶函数 ''' # 函数接受的参数是一个函数名的情况下,要改变函数的调用方式 def foo(): time.sleep(2) print("憨憨你好") def test(func): print(func)…
#cnblogs_post_body h2 { background: linear-gradient(to bottom, #18c0ff 0%,#0c7eff 100%); color: #fff; padding: 3px; margin: 10px 0px; font-family: "微软雅黑", "宋体", "黑体", Arial } Python第三章__函数式编程.递归.闭包 欢迎加入Linux_Python学习群  群号:478…
centos   邮件服务  腾讯企业邮箱(免费) 使用iRedmail 需要有公网的centos主机 发邮件协议:smtp 端口25  收邮件协议:pop3 端口110  iredmail安装配置  使用邮箱系统  第三十一节课 常见企业邮箱:腾讯企业邮箱.263企业邮箱(网易) iRedMail的服务器在国外,最近的也在日本,所以最好买国外vps来搭建iRedMail,老师演示的时候根本下载不了 上半节课 两种解决方案 腾讯企业邮箱(免费) 使用iRedmail 需要有公网的centos主机…
风炫安全web安全学习第三十二节课 Python代码执行以及代码防御措施 Python 语言可能发生的命令执行漏洞 内置危险函数 eval和exec函数 eval eval是一个python内置函数,语法为eval(expression, globals=None,locals=None) eval函数接收三个参数:其中 expression 参数是用做运算的字符串类型表达式:globals参数用于指定运行时的全局命名空间:Locals参数用于指定运行时的局部命名空间.globals与 loca…
风炫安全web安全学习第三十一节课 命令执行以及代码执行演示 参考: http://blog.evalshell.com/2020/12/20/风炫安全web安全学习第三十一节课-命令执行以及代/…
本节课程大纲: 1.模块介绍 2.time &datetime模块 3.random 4.os 5.sys 6.shutil 7.json & picle 8.shelve 9.xml处理 10.yaml处理 11.configparser 12.hashlib 13.subprocess 14.logging模块 15.re正则表达式 一.模块介绍 1.定义: 用来从逻辑上组织Python代码(变量,函数,类,逻辑:实现一个功能),本质就是.py结尾的Python文件(例如test.py…
Python第三天 序列  5种数据类型  数值  字符串  列表  元组  字典 各种数据类型的的xx重写xx表达式 目录 Pycharm使用技巧(转载) Python第一天  安装  shell  文件 Python第二天  变量  运算符与表达式  input()与raw_input()区别  字符编码  python转义符  字符串格式化 Python第三天 序列  5种数据类型  数值  字符串  列表  元组  字典 Python第四天   流程控制   if else条件判断  …
Python算法:推导.递归和规约 注:本节中我给定下面三个重要词汇的中文翻译分别是:Induction(推导).Recursion(递归)和Reduction(规约) 本节主要介绍算法设计的三个核心知识:Induction(推导).Recursion(递归)和Reduction(规约),这是原书的重点和难点部分 正如标题所示,本节主要介绍下面三部分内容: • Reduction means transforming one problem to another. We normally red…
1. lamda匿匿名函数2. sorted()3. filter()4. map()5. 递归函数 一. lamda 匿名函数 为了了解决一些简单的需求⽽设计的⼀句话函数 语法: 函数名 = lambda 参数: 返回值 # 计算n的n次⽅ s = lambda a: a *a print(s(10)) 函数的参数可以有多个.多个参数之间⽤用逗号隔开 匿匿名函数不管多复杂.只能写⼀一⾏行行,且逻辑结束后直接返回数据 返回值和正常的函数⼀一样,可以是任意数据类型 二. sorted()  排序函…
三十一.栈的压入.弹出序列 题目:输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序.假设压入栈的数字均不相等.例如,序列{1, 2, 3, 4 ,5}是某栈的压栈序列,序列{4, 5, 3, 2, 1}是该压栈序列对应的一个弹出序列,但{4, 3, 5, 1, 2}就不可能是该压栈序列的弹出序列. 分析:本题中的压栈序列并非是一次全部压入堆栈!如果没有思路,可以举一两个例子,一步步分析压栈.弹出的过程,从中找出规律. 三十二.从上到下打印二叉树 题目一:不分行从…
转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线教程的编写,以及yarn的翻译整理表示感谢. NeHe OpenGL第二十一课:线的游戏 线,反走样,计时,正投影和简单的声音: 这是我第一个大的教程,它将包括线,反走样,计时,正投影和简单的声音.希望这一课中的东西能让每个人感到高兴.   欢迎来到第21课,在这一课里,你将学会直线,反走样,正投影…