冲扬心法

笑声激发自强,发愤、图强、飞身向上

   :: 首页 ::  ::  ::  :: 管理
  55 Posts :: 0 Stories :: 1 Comments :: 0 Trackbacks

公告

2018年12月6日 #

摘要: 行转列,老生常谈的问题。这里总结一下网上的方法。 1、生成测试数据: 查询数据: 注意:这里的score是数值类型列,而grade是字符串类型的列 2、利用case when 语句完成行转列,其中行转列之后的列的属性是数值类型 结果: 3、利用case when 语句完成行转列,其中行转列之后的列的阅读全文
posted @ 2018-12-06 22:58 风雨一肩挑 阅读(473) 评论(0) 编辑

2018年6月10日 #

摘要: 参考python核心编程 ORM(Object Relational Mapper),如果你是一个更愿意操作Python对象而不是SQL查询的程序员,并且仍然希望使用关系型数据库作为你的后端,那么你可能更倾向于使用ORM。 ORM将纯SQL语句进行了抽象画处理,将其实现为python中的对象,这样你阅读全文
posted @ 2018-06-10 00:46 风雨一肩挑 阅读(970) 评论(0) 编辑

2018年5月27日 #

摘要: 参考python核心编程 编写一个用户洗牌的脚本,根据用户输入,选择连接sqlserver或者MySQL,创建数据库、表,随机生成数据,并实现增删改查。 其中,为了兼容python2和python3,统一了打印函数、录入函数、动态导包等 一些字段声明为全局变量,这样我们在后续的学习中,可以引用这些变阅读全文
posted @ 2018-05-27 17:00 风雨一肩挑 阅读(994) 评论(0) 编辑

2018年5月21日 #

摘要: 如题,在练习python安装一些包时,出现了microsoft visual c++ 14.0 is required问题。网上有很多资料:一是下载对应的.whl文件,然后pip install安装;二是下载安装一个visualcppbuildtools+full.exe安装程序(其实就是安装VS工阅读全文
posted @ 2018-05-21 21:24 风雨一肩挑 阅读(4355) 评论(0) 编辑

2018年4月26日 #

摘要: 摘录 python核心编程 本节我们将展示一个中级的tkinter应用实例,这个应用是一个目录树遍历工具:它会从当前目录开始,提供一个文件列表,双击列表中任意的其他目录,就会使得工具切换到新目录中,用新目录中的文件列表代替旧文件列表。这里新增了列表框、文本框和滚动条,此外还增加了鼠标单击、键盘按下、阅读全文
posted @ 2018-04-26 22:48 风雨一肩挑 阅读(866) 评论(0) 编辑

2018年4月24日 #

摘要: 摘录 python核心编程s GUI(Graphical User Interface)图形用户界面。 Tcl、Tk和Tkinter Tkinter是python的默认GUI库。它基于Tk工具包,该工具包最初是为工具命令语言(Tcl)设计的。Tk普及后,被移植到很多其他的脚本语言中,包括Perl(P阅读全文
posted @ 2018-04-24 20:42 风雨一肩挑 阅读(500) 评论(0) 编辑

2018年4月19日 #

摘要: 摘录python核心编程 本例中演示生产者-消费者模型:商品或服务的生产者生产商品,然后将其放到类似队列的数据结构中。生产商品中的时间是不确定的,同样消费者消费商品的时间也是不确定的。 使用queue模块(python2.x版本中,叫Queue)来提供线程间通信的机制,从而让线程之间可以分享数据。具阅读全文
posted @ 2018-04-19 21:10 风雨一肩挑 阅读(611) 评论(0) 编辑

2018年4月18日 #

摘要: 摘录python核心编程 一般的,多线程代码中,总有一些特定的函数或者代码块不希望(或不应该)被多个线程同时执行(比如两个线程运行的顺序发生变化,就可能造成代码的执行轨迹或者行为不相同,或者产生不一致的数据),比如修改数据库、更新文件或其他会产生竞态条件的类似情况。此时就需要同步了。 同步:任意数量阅读全文
posted @ 2018-04-18 20:17 风雨一肩挑 阅读(774) 评论(0) 编辑

2018年4月12日 #

摘要: 摘录python核心编程 socketserver(python3.x版本重新命名)是标准库中的网络编程的高级模块。通过将创建网络客户端和服务器所必须的代码封装起来,简化了模板,为你提供了各种各样的类。 除了隐藏了实现细节之外,它督促我们使用类(面向对象的思维)来编写应用程序,并且,这些应用程序是时阅读全文
posted @ 2018-04-12 15:13 风雨一肩挑 阅读(126) 评论(0) 编辑

2018年4月11日 #

摘要: 摘录 python核心编程 使用socket()模块函数创建套接字——通信端点 其中,AF_INET表示使用的是IPv4协议,SOCK_STREAM表示的面向连接的TCP协议,SOCK_DGRAM表示面向无连接的UDP协议。 在创建TCP和UDP客户端与服务器前,先看看socket模块的属性以及套接阅读全文
posted @ 2018-04-11 16:22 风雨一肩挑 阅读(68) 评论(0) 编辑

2018年4月9日 #

摘要: 摘录 廖雪峰网站 datetime是python内置的处理日期和时间的标准库 获取当前日期和时间 获取指定日期和时间 datetime转换为timestamp 实际上,计算机中都是用数字表示时间的。1970年1月1日 00:00:00 UTC+00:00时区的时刻称为epoch time,记为0(1阅读全文
posted @ 2018-04-09 22:30 风雨一肩挑 阅读(343) 评论(0) 编辑

2018年4月8日 #

摘要: 摘录 python核心编程 python的re模块允许多线程共享一个已编译的正则表达式对象,也支持命名子组。下表是常见的正则表达式属性: compile()编译正则表达式 在模式匹配发生之前,正则表达式模式必须编译成正则表达式对象,而且正则表达式在执行的过程中可能进行多次的比较操作。所以,强烈建议使阅读全文
posted @ 2018-04-08 22:27 风雨一肩挑 阅读(79) 评论(0) 编辑

2018年3月31日 #

摘要: 参考 python核心编程 操作字符串是件大事,因为,在编程中涉及到的最多的数据结构非字符串莫属了。 正则表达式(regex),为高级的文本模式匹配、抽取、与/或文本形式的搜索和替换功能提供了基础。 解释:正则表达式,是一些由字符和特殊符号组成的字符串,它描述了模式的重复或者表述多个字符,这就赋予它阅读全文
posted @ 2018-03-31 15:20 风雨一肩挑 阅读(120) 评论(0) 编辑

2018年3月29日 #

摘要: 摘录 python核心编程 上节介绍的thread模块,是不支持守护线程的。当主线程退出的时候,所有的子线程都将终止,不管他们是否仍在工作。 本节开始,我们开始介绍python的另外多线程模块threading,该模块支持守护线程,其工作方式:守护线程一般是一个等待客户端请求的服务器。如果没有客户端阅读全文
posted @ 2018-03-29 23:16 风雨一肩挑 阅读(8673) 评论(0) 编辑

2018年3月26日 #

摘要: 参考书籍:python核心编程 _thread模块除了可以派生线程外,还提供了基本的同步数据结构,又称为锁对象(lock object,也叫原语锁、简单锁、互斥锁、互斥和二进制信号量)。 下面是常用的线程函数: _thread模块的核心函数是start_new_thread()。专门用来派生新的线程阅读全文
posted @ 2018-03-26 22:51 风雨一肩挑 阅读(2006) 评论(0) 编辑

摘要: 本文主要介绍如何在python中使用线程。 全局解释器锁: python代码的执行是由python虚拟机(又名解释器主循环)进行控制的。python中,主循环中同时只能有一个控制线程在执行,就像单核CPU系统中的多线程一样——内存中可以有很多程序,但是在任意给定时刻只有有一个程序在执行。同理,虽然p阅读全文
posted @ 2018-03-26 21:23 风雨一肩挑 阅读(86) 评论(0) 编辑

摘要: 多线程编程 在多线程(multithreaded,MT)出现之前,计算机程序的执行都是由单个步骤序列组成的,该序列组合在主机的CPU中按照同步顺序执行。无论是任务本身需要按照步骤顺序执行,还是整个过程实际上包含了多个子任务,都需要按照既定顺序方式执行。那么,如果这些子任务相互独立,没有因果关系呢,我阅读全文
posted @ 2018-03-26 15:27 风雨一肩挑 阅读(67) 评论(0) 编辑

摘要: 当我们在内存中定义一个dict的时候,我们是可以随时修改变量的内容的: 我们可以随时修改name和age的值。但是当我们重新运行程序的时候,name、age的初始化值还是wc和28,实际情况下我们需要保存该dict的最后的值。 我们把变量从内存中变成可存储或传输的过程称之为序列化。python中称之阅读全文
posted @ 2018-03-26 13:47 风雨一肩挑 阅读(408) 评论(0) 编辑

2018年3月20日 #

摘要: python内置了os模块可以直接调用操作系统提供的接口函数,os.name查询的是操作系统,‘nt’表示windows系统 使用os.environ查看环境变量: 还可以获得某个具体的环境变量的值: 查看当前目录的绝对路径: 在某个目录下面创建新目录,需要两个步骤:先join(合成路径),再mkd阅读全文
posted @ 2018-03-20 23:34 风雨一肩挑 阅读(693) 评论(0) 编辑

摘要: 主要介绍python两个内存读写IO:StringIO和BytesIO,使得读写文件具有一致的接口 StringIO 内存中读写str。需要导入StringIO 也可以用一个str初始化StringIO,然后像读文件一样读取: BytesIO 内存中操作二进制数据: 细心的童鞋会发现,f.read(阅读全文
posted @ 2018-03-20 21:59 风雨一肩挑 阅读(72) 评论(0) 编辑

2018年3月17日 #

摘要: IO——Input/Output,即输入输出。对于计算机来说,程序运行时候数据是在内存中的,涉及到数据交换的地方,通常是磁盘、网络等。比如通过浏览器访问一个网站,浏览器首先把请求数据发送给网站服务器,这个动作叫外发数据,即Output,随后网站服务器把数据网页发送给浏览器,这个动作是从外面接收数据,阅读全文
posted @ 2018-03-17 22:32 风雨一肩挑 阅读(248) 评论(0) 编辑

摘要: 单元测试反应的是一种以测试为驱动的开发模式,最大的好处就是保证一个程序模块的行为符合我们设计的测试用例,在将来修改的时候,可以极大程度保证该模块行为仍然是正确的。 下面我编写一个Dict来,这个类的行为和dict一直,同时可以通过属性来访问。 mydict.py文件: 引入python自带的unit阅读全文
posted @ 2018-03-17 21:21 风雨一肩挑 阅读(2786) 评论(0) 编辑

2018年3月16日 #

摘要: 世界人都知道,程序总会有bug存在。复杂点的bug一般人不能一眼看出,这就一要一套调试程序的手段。 方法一:使用print()函数直接打印: 我们在认为可能出错的地方打印变量出来。这有很大的弊端,因为打印的代码实际功能并不需要。这都是垃圾信息。 方法二:用断言assert代替打印print() as阅读全文
posted @ 2018-03-16 18:02 风雨一肩挑 阅读(519) 评论(0) 编辑

2018年3月15日 #

摘要: 高级语言包括python一般都内置了一套try…catch…finally的错误处理机制: 如果认为某些代码可能会出错,可以用try来运行这段代码; 如果try的代码块出现错误,则try代码省下的代码不会继续执行,而是直接跳转到catch代码块,catch就是错误处理代码块(如果没有错误,则不执行)阅读全文
posted @ 2018-03-15 13:26 风雨一肩挑 阅读(40928) 评论(0) 编辑

2018年3月14日 #

摘要: 枚举类型:在实际问题中,有些变量的值被限定在一个有限的范围内。例如:一个星期有且只有7天,一年有且只有十二个月,一个班每周有6门课程等等。如果把这些量说明为整型、字符串或者其他类型显然是不合适。编程界为此提供了一种称为枚举的类型。在枚举类型定义中列举出所有可能的取值,被说明为该枚举类型的变量取值范围阅读全文
posted @ 2018-03-14 13:32 风雨一肩挑 阅读(191) 评论(0) 编辑

2018年3月12日 #

摘要: Python中的class可以定义许多定制方法,可以让我们方便的生成特定的类。 我们之前介绍了__slots__、__len__(),python中还有许多这样的特殊函数: __str__ 上面我们定义了一个普通的Student类,打印出的是一堆<__main__.Student object at阅读全文
posted @ 2018-03-12 17:27 风雨一肩挑 阅读(53) 评论(0) 编辑

2018年3月8日 #

摘要: 以Animal类为例,假设要实现以下4种动物: Dog(狗)、Bat(蝙蝠)、Parrot(鹦鹉)和Ostrich(鸵鸟) 如果按照哺乳类和鸟类来区分的话,可以这样设计: Animal: |--Mammal |--Dog |--Bat |--Bird |--Parrot |--Ostrich 但是,阅读全文
posted @ 2018-03-08 23:32 风雨一肩挑 阅读(241) 评论(0) 编辑

2018年3月7日 #

摘要: python中,我们可以直接添加和修改属性的值: 但是,101明显超过了满分100分,不合理。可以通过创建setScore()方法,进行参数检查: 但是上面的过程略显复杂。 这时,可以使用@property,既可以用类似属性的方法访问类的变量,又可以检查参数,@property实现起来稍微有点复杂:阅读全文
posted @ 2018-03-07 23:14 风雨一肩挑 阅读(64) 评论(0) 编辑

摘要: 绑定属性 从之前的文章中,我们知道python是动态语言——实例可以绑定任意属性。 那如果实例绑定的属性和类的属性名一样的话,会是什么情况呢? 可知,我们可以给实例变量绑定和类属性同样名字的变量;同时如果实例变量和类属性使用相同的名字时,实例属性将屏蔽掉类属性;最后,如果删除实例属性后,同样的名称,阅读全文
posted @ 2018-03-07 15:31 风雨一肩挑 阅读(51) 评论(0) 编辑

2018年3月6日 #

摘要: type() type()函数用于判断对象类型: type()返回的是对应class类型。下面是判断两个变量的type类型是否相同: 如何判断一个对象是否是函数呢?使用types模块中定义的常量: isinstance() 如果存在以下继承关系:object->Animal->Dog->Husty 阅读全文
posted @ 2018-03-06 21:05 风雨一肩挑 阅读(67) 评论(0) 编辑

摘要: 继承 在面向对象的程序设计中,当我们定义一个class时候,可以从现有的class继承,新的class成为子类,被继承的class称为基类,父类或超类。 比如,编写一个名为Animal的class: 接着编写两个从Animal继承的类:Dog和Cat: 那么,对于Dog、Cat来说,Animal就是阅读全文
posted @ 2018-03-06 20:29 风雨一肩挑 阅读(101) 评论(0) 编辑

摘要: 上一节我们介绍了,Class内部可以有属性和方法,外部代码通过直接调用实例的方法来操作数据,这样就可以隐藏内部的逻辑实现;同时,外部代码还是可以自由的修改实例的属性和增加方法。 但是有时候,我们不想这样呢?即不让内部属性被外部访问。 可以在属性的名称前面加上两个下划线__。如果一个变量以__开头,就阅读全文
posted @ 2018-03-06 19:25 风雨一肩挑 阅读(4636) 评论(0) 编辑

摘要: 面向对象编程的三大特点:封装、继承和多态! 封装 继续上篇文章的例子,Student类已经具备name和score属性,现在要答应学生的姓名和成绩,该怎么设计呢?可以这么想,谁最清楚name、score的数据是什么?当然是Student类的实例本身了!要访问这些数据,没有必要单独写一个外部函数,直接阅读全文
posted @ 2018-03-06 13:23 风雨一肩挑 阅读(115) 评论(0) 编辑

摘要: OOP——Object Oriented Programming,面向对象编程,是一种程序设计思想。该思想将对象作为程序的基本单元,一个对象包含了数据和操作数据的函数。 区别于面向过程的程序设计即把计算机程序视为一系列的命令集合(即一组函数的顺序集合),面向对象的程序设计是把计算机程序视为一组对象的阅读全文
posted @ 2018-03-06 12:32 风雨一肩挑 阅读(1177) 评论(0) 编辑

2018年3月5日 #

摘要: 一、模块定义 python中,一个.py文件就是一个模块(Module)。使用模块的好处:1、提高了代码的可维护性。我们把函数进行分组,分别放在不同的模块中。2、编写代码不必要从0开始,当一个模块编写完毕,就可以被其他的模块引用。python有很多内置的模块和第三方模块供引用。3、可以避免函数名和变阅读全文
posted @ 2018-03-05 22:37 风雨一肩挑 阅读(2580) 评论(0) 编辑

2017年12月28日 #

摘要: 一般的,通过设定函数参数的默认值,可以减低函数调用的难度。比如:int()函数可以把字符串转换成整数: 事实上,int()函数还提供额外的base参数,表示进制,只是默认值是10而已: 现在,如果我们需要转换大量的二进制字符串,每次都调用int(x,base=2)显得比较麻烦。这时我们可以尝试封装函阅读全文
posted @ 2017-12-28 23:45 风雨一肩挑 阅读(98) 评论(0) 编辑

摘要: 函数是个对象,并且可以赋值给一个变量,通过变量也能调用该函数: 利用函数的_name_属性,可以拿到函数的名字: 如果我们在调用函数now()前后自动打印日志,但又不允许修改now()函数的定义——在代码运行期间动态增加功能的方式,称之为‘装饰器’Decorator。 比如,定义一个能打印日志的de阅读全文
posted @ 2017-12-28 22:46 风雨一肩挑 阅读(1164) 评论(0) 编辑

2017年12月27日 #

摘要: 有些时候,我们在传入函数时,不需要显示的定义函数,直接传入匿名函数更方便。在python中,对匿名函数提供了有限支持。以map()函数为例,计算f() = x2,使用匿名函数: 对比可知,匿名函数lambda x:x*x 实际上相当于: 关键字lambda表示匿名函数,冒号前面的x表示函数的参数。 阅读全文
posted @ 2017-12-27 11:00 风雨一肩挑 阅读(71) 评论(0) 编辑

摘要: 首先,来看一个一般意义的求和: 如果我们这么定义呢: 我们发现,这种定义的函数,返回的并不是一个具体的求和,而是一个函数!来看看怎么调用这个函数: 在这个例子中,lazy_sum中又定义了一个函数sum(),这个内部函数可以引用外部函数lazy_sum的参数和局部变量,当lazy_sum返回函数su阅读全文
posted @ 2017-12-27 10:24 风雨一肩挑 阅读(282) 评论(0) 编辑

2017年12月24日 #

摘要: python 内置的sorted()函数可以对一个list进行排序: 既然说是高阶函数,那么它还可以接受一个key函数来实现自定义的排序,比如按照绝对值大小进行排序: key指定的函数将作用于list中的每一个元素上,根据key函数返回的结果进行排序。 来看看字符串排序的问题: 默认的,对于字符串,阅读全文
posted @ 2017-12-24 00:22 风雨一肩挑 阅读(238) 评论(0) 编辑