随笔分类 - Python学习
摘要:Python内建的filter()函数用于过滤序列 和map()一样,filter()也接收一个函数和一个序列。和map()不同的是,filter()把传入的函数依次作用于每个元素,然后根据返回值是True还是False决定保留还是丢弃改元素 例如,在一个list中,删掉偶数,保留奇数 把序列作为参
阅读全文
摘要:Python内建map()和reduce()函数 map()函数接收两个参数一个是函数一个是一个Iterable(迭代器),并把结果作为新的Iterator(生成器)返回 有一个函数f(x)=x*x作用于序列list[1,2,3,4,5,6,7,8,9] 使用python函数实现 map传递的第一个
阅读全文
摘要:Socket通长也称作"套接字",用于描述IP地址和端口,是一个通信的句柄. vim day8-16.py 运行,然后在开启一个客户端访问 本客户端返回 使用python建立一个socket的服务端和客户端 vim socket_server.py vim socket_client.py 运行服务
阅读全文
摘要:单例模式 内存中只存在一个实例 vim day.8-15.py 多次调用一个实例会在内存生成不同id,改变调用方法可以保证内存里面只有一个实例,节省内存空间
阅读全文
摘要:先模拟一个web页面的选择不同输出不同 vim day8-7.py vim home.py vim account.py 执行输入不同的会出现不同的结果,输入不对则返回404 如果针对一个网站所有的页面都通过这种方法来判断代码将会很长也不合理 可以使用mvc框架 models 数据库 views h
阅读全文
摘要:当一个程序运行时报错,可以通过Python异常处理机制忽略错误或者以友好的方式提示错误 vim day8-2.py 错误有很多种可以定义对于某一种异常进行处理 PS:可以在最后加 except Exception,e:处理所有无法预测到的错误 以上的捕获异常代码异常,还有一种异常是主动触发异常,如果
阅读全文
摘要:isinstance判断一个变量的类型 >>> n1 = 10>>> isinstance (n1,int)True 判断n1是否是数字类型,如果是返回True如果不是防护False 同理可以判断是否是字符串 或者其他类型 也可以通过isinstance判断一个函数是否是从某个类的派生类 vim d
阅读全文
摘要:对于这些类成员有修饰符 之前定义字段country任何对象都可以访问,是公有的 可以定义为私用属性,只有类内部的方法可以调用,外部不能直接调用,但是可以间接调用 vim day7-10.py 如果直接在外部调用Foo.__country会报错 同样在方法前面加两个下划线在类的外部的无法调用 PS:私
阅读全文
摘要:属性的定义和调用 1,定义时,在普通方法的基础上添加@property装饰器 2,定义时,属性仅有一个self参数 3,调用时,无需括号 vim day7-8.py 使用以上方法可以根据页数取得需要查询的数据的序号开始和结束值 这里使用属性的方法是为了调用看起来更加合理 取消属性装饰器,调用的时候就
阅读全文
摘要:普通方法要执行类里面的方法是通过对象触发的 触发的时候把自己赋值给self 类方法 vim day7-7.py 类的执行触发者是类,把自身赋值给cls,触发的时候是把类当成参数传递. 静态方法 静态方法的调用者是类,类加上静态方法其实就等于一个函数(java使用这种方法模拟函数) 类方法是对静态方法
阅读全文
摘要:类成员: 字段,方法,属性 属性是在一个函数方法前面加一个装饰器,伪造成为一个字段,调用的时候不需要加括号() 目的是把一个方法伪造成为一个字段,属性也是方法的一种,对这个方法进行改造就可以以 字段的方法进行访问,访问一个方法是一系列动作返回一个结果,访问属性相当于自身特有 的一个特质而不是一个动作
阅读全文
摘要:#基类class F: def f1(self): pass #派生类class S(F): def f2(self): pass obj = s()obj.f2()obj.f1() Python 支持多继承,多继承的类里面有相同的方法前面的优先 vim day7-4.py 输出为D.bar 改成新
阅读全文
摘要:面向函数的编程和面向对象编程对比 vim day7-2.py 通过函数和对象的方法实现同样的功能,看起来是面向函数的编程比较简单 假如是连接数据库的增,删,改,查操作使用面向对象的方法代码更加简单 vim day7-3.py 可以obj1 obj2等进行类的实例化,把不同的主机或端口封装在不同的类里
阅读全文
摘要:Random模块生成随机数 >>> print random.random() #随机生成0-1的小数0.772367387029>>> print random.randint(1,200) #随机生成整数小于或者等于107>>> print random.randrange(1,200) #随机
阅读全文
摘要:vim day6-5.py 类是一个模板不应用就是一个静态的 实例化会生成一个对象,对象是实体,对象是真实存在的 实例化是一个动作 给类赋予一个吃的功能 vim day6-5.py 执行就在吃了 调用p2.eat()也显示在吃,但是到底是谁在吃不知道 vim day6-6.py 这样需要在定义的时候
阅读全文
摘要:re模块用于对python的正则表达式的操作 字符: .匹配除换行符以外的任意字符 \w匹配字母或数字或下划线或汉字 \s匹配任意空白符 \b匹配单词的开始或结束 ^匹配字符串的开始 $匹配字符串的结束 次数 *重复零次或多次 +重复一次或多次 ?重复零次或者一次 {n}重复n次 {n,}重复n次或
阅读全文
摘要:logging 用于便捷既然日志切线程安全的模块 vim log_test.py 运行生成日志文件log.log 模拟一个生成错误日志的脚本 执行如果输入的是数字,写入info日志如果不是则写成error日志 PS:level=logging.DEBUG 是代表最低记录基本如果改成WARNING则不
阅读全文
摘要:1,怎么打印时间戳 2,怎么打印日期 3,怎么把字符串转换成python认识的日期 把日期转换成字符串 字符串转换成日期格式 time.strptime("2017-5-16","%Y-%m-%d") time.struct_time(tm_year=2017, tm_mon=5, tm_mday=
阅读全文
摘要:shutil 高级的 文件,文件夹,压缩包 处理模块 正常把一个文件的内容拷贝到另外一个文件 s = file("test.py")d = file("test_copy.py","wd")d.write(s.read())d.close() 使用shutil拷贝模块 import shutils
阅读全文