
Python基础
文章平均质量分 65
欢乐的小猪
当你认为你应该成为怎样的人,你就会紧张;当你做你自己,你就会放松
展开
-
python基础:那些你不知道且好玩的函数
string.center# format函数通过字典设置参数原创 2018-08-14 10:19:59 · 526 阅读 · 0 评论 -
python 实现 原型模式
本文的目录地址本文的代码地址有时,我们需要原原本本地为对象创建一个副本。举例来说,假设你想创建一个应用来存储、分享、编辑(比如,修改、添加注释及删除)食谱。用户Bob找到一份蛋糕食谱,在做了一些改变后,觉得自己做的蛋糕非常美味,想要与朋友Alice分享这个食谱。但是该如何分享食谱呢?如果在与Alice分享之后,Bob想对食谱做进一步的试验,Alice手里的食谱也能跟着变化吗?Bob能...原创 2018-09-05 15:59:01 · 1066 阅读 · 0 评论 -
python 实现 适配器模式
本文的目录地址:https://blog.youkuaiyun.com/hbu_pig/article/details/80431304结构型设计模式处理一个系统中不同实体(比如,类和对象)之间的关系,关注的是提供一种简单的对象组合方式来创造新功能。适配器模式(Adapter pattern)是一种结构型设计模式,帮助我们实现两个不兼容接口之间的兼容。首先,解释一下不兼容接口的真正含义。如果我们希望把一个老组...原创 2018-06-04 15:26:36 · 3340 阅读 · 0 评论 -
python 实现 建造者模式
本文目录地址本文代码地址想象一下,我们想要创建一个由多个部分构成的对象,而且它的构成需要一步接一步地完成。只有当各个部分都创建好,这个对象才算是完整的。这正是建造者设计模式(Builder design pattern)的用武之地。建造者模式将一个复杂对象的构造过程与其表现分离,这样,同一个构造过程可用于创建多个不同的表现。我们来看个实际的例子,这可能有助于理解建造者模式的目的。假设我...原创 2018-09-04 13:10:13 · 1575 阅读 · 0 评论 -
conda: command not found
问题描述:Ubuntu下安装Anaconda2-5.2.0-Linux-x86_64.sh之后重启,conda命令不识别分析:首先,Anaconda提供了包管理和虚拟环境管理功能,可以方便地解决多版本python共存、切换以及第三方包安装问题。回归正题,安装完了不识别,推测是路径没有加入到环境变量PATH中。解决方法:1.编辑文件sudo gedit etc/profile 2.将添加到文件的最后...原创 2018-06-12 17:49:48 · 2257 阅读 · 1 评论 -
python 实现 工厂模式
本文目录地址本文代码地址创建型设计模式处理对象创建相关的问题,目标是当直接创建对象(在Python中是通过__init__()函数实现的)不太方便时,提供更好的方式。在工厂设计模式中,客户端①可以请求一个对象,而无需知道这个对象来自哪里;也就是,使用哪个类来生成这个对象。工厂背后的思想是简化对象的创建。与客户端自己基于类实例化直接创建对象相比,基于一个中心化函数来实现,更易于追踪创建了哪...原创 2018-09-03 15:51:21 · 5758 阅读 · 0 评论 -
python实现设计模式
本文的代码地址什么是设计模式软件工程中,设计模式是指软件设计问题的推荐方案。设计模式一般是描述如何组织代码和使用最佳实践来解决常见的设计问题。需要谨记的一点是:设计模式是高层次的方案,与具体实现细节无关(如算法,数据结构,网页等)。设计模式最重要的部分可能就是它的名称。给模式起名的好处是大家相互交流时有共同的词汇。随着编程语言的演进,一些设计模式(如单例)也随之过时,甚至成了反模式...原创 2018-06-04 15:44:44 · 1934 阅读 · 1 评论 -
python 实现 外观模式
不错!这一方案同时具备可读的代码和可接受的性能。此时,你可能想争论说这不是修饰器模式,因为我们并不是在运行时应用它。被修饰的函数确实无法取消修饰,但仍然可以在运行时决定是否执行修饰器。这个有趣的练习就留给你来完成吧。使用修饰器进行一层额外的封装,基于某个条件来决定是否执行真正的修饰器。修饰器的另一个有趣的特性是可以使用多个修饰器来修饰一个函数。本章没有涉及这一特性,因此这是另一个练习,创建一个修饰...原创 2018-06-15 14:45:25 · 810 阅读 · 0 评论 -
python 实现 享元模式
本文的目录地址本文的代码地址由于对象创建的开销,面向对象的系统可能会面临性能问题。性能问题通常在资源受限的嵌入式系统中出现,比如智能手机和平板电脑。大型复杂系统中也可能会出现同样的问题,因为要在其中创建大量对象(用户),这些对象需要同时并存。这个问题之所以会发生,是因为当我们创建一个新对象时,需要分配额外的内存。虽然虚拟内存理论上为我们提供了无限制的内存空间,但现实却并非如此。如果一个系统耗尽了所...原创 2018-06-05 17:39:12 · 691 阅读 · 0 评论 -
python 实现 代理模式
本文的目录地址原创 2018-06-21 13:30:59 · 5238 阅读 · 3 评论 -
python 实现 模型—视图—控制器模式(MVC)
本文的目录地址原创 2018-06-25 11:09:20 · 5521 阅读 · 0 评论 -
python 实现 策略模式
本文的目录地址本文的代码地址大多数问题都可以使用多种方法来解决。以排序问题为例,对于以一定次序把元素放入一个列表,排序算法有很多。通常来说,没有公认最适合所有场景的算法。一些不同的评判标准能帮助我们为不同的场景选择不同的排序算法,其中应该考虑的有以下几个。需要排序的元素数量算法的最佳、平均、最差时间复杂度算法的空间复杂度算法的稳定性算法的代码实现复杂度可能还有更多的评判标准值得考虑,但重要的是,我...原创 2018-07-05 17:23:55 · 1598 阅读 · 0 评论 -
python 实现 模板模式
本文的目录地址本文的代码地址编写优秀代码的一个要素是避免冗余。在面向对象编程中,方法和函数是我们用来避免编写冗余代码的重要工具。回想策略模式中的sorted()例子。sorted()函数非常通用,可使用任意键来对多种数据结构(列表、元组和命名元组等)进行排序。这是一个良好函数的定义。sorted()这样的函数属于理想的案例。现实中,我们没法始终写出100%通用的代码。许多算法都有一些(...原创 2018-09-06 13:56:02 · 4147 阅读 · 1 评论 -
python 实现 状态模式
本文的目录地址本文的代码地址面向对象编程着力于在对象交互时改变它们的状态。在很多问题中,有限状态机(通常名为状态机)是一个非常方便的状态转换建模(并在必要时以数学方式形式化)工具。首先,什么是状态机?状态机是一个抽象机器,有两个关键部分,状态和转换。状态是指系统的当前(激活)状况。例如,假设我们有一个收音机,其两个可能的状态是在调频波段(FM)或调幅波段(AM)上调节。另一个可能的状态是从...原创 2018-07-26 16:35:55 · 4520 阅读 · 0 评论 -
python 实现 观察者模式
本文的目录地址本文的代码地址有时,我们希望在一个对象的状态改变时更新另外一组对象。在MVC模式中有这样一个非常常见的例子,假设在两个视图(例如,一个饼图和一个电子表格)中使用同一个模型的数据,无论何时更改了模型,都需要更新两个视图。这就是观察者设计模式要处理的问题。观察者模式描述单个对象(发布者,又称为主持者或可观察者)与一个或多个对象(订阅者,又称为观察者)之间的发布—订阅关系。在MV...原创 2018-07-25 16:57:39 · 1240 阅读 · 0 评论 -
python 实现 解释器模式
本文的目录地址本文的代码地址对每个应用来说,至少有以下两种不同的用户分类。 基本用户:这类用户只希望能够凭直觉使用应用。他们不喜欢花太多时间配置或学习应用的内部。对他们来说,基本的用法就足够了。 高级用户:这些用户,实际上通常是少数,不介意花费额外的时间学习如何使用应用的高级特性。如果知道学会之后能得到以下好处,他们甚至会去学习一种配置(或脚本)语言。 能够更好地控制一...原创 2018-07-25 14:36:29 · 1075 阅读 · 0 评论 -
python 实现 命令模式
本文的目录地址原创 2018-06-27 12:00:41 · 1429 阅读 · 0 评论 -
python 实现 修饰器模式
是原创 2018-06-12 14:04:49 · 904 阅读 · 0 评论 -
python 实现 责任链模式
是原创 2018-06-25 23:17:51 · 1499 阅读 · 2 评论 -
Ubuntu环境下pip的安装
注:本人使用的环境为Ubuntu18.04桌面版。pip是什么?pip是python的包管理器。它自己是一个命令行程序,安装完pip后,可在命令行输入python3 -m pip install "package_name"进行包的安装python3 -m pip uninstall "package_name"进行包的卸载等。pip官网有详细的安装教程:链接地址。此处列出Debi...原创 2018-05-16 14:47:02 · 1105 阅读 · 0 评论 -
python基础: 生成器,生成器表达式
函数是python中最主要也是最重要的代码组合和复用手段。函数用def关键字声明,用return关键字返回:def my_function(x,y,z=1.5): if z>1: return z*(x+y) else: return z/(x+y)如果到达函数末尾时没有遇到任何一条return语句,则返回None。函数可以有一些位置参数(po...原创 2018-05-15 15:40:35 · 757 阅读 · 0 评论 -
Python基础:input和while循环
函数input()让程序暂停运行,等待用户输入一些文本,并返回它。函数input()接收一个参数:即要向用户显示的提示或说明,让用户知道该怎么做>>> name=input('Please input your name:')Please input your name:Eric>>> print('Hello, '+name+'!')Hello, Eri...原创 2018-03-21 16:41:49 · 7528 阅读 · 0 评论 -
Python基础:字典(dict)、集合(set)
在Python中,字典用花括号{}中的一系列键——值对表示。键-值对是无序的,这意味着你不能通过索引来访问它,必须通过键值来访问、修改和删除。>>> alien_0={'color':'green','age':5}>>> print (alien_0['color'])green>>> del alien_0['color']>...原创 2018-03-21 16:41:14 · 390 阅读 · 0 评论 -
Python基础:测试代码
Python标准库中的模块unittest提供了代码测试工具。单元测试用于核实函数的某个方面没有问题;测试用例是一组单元测试,这些单元测试一起核实函数在各种情形下的行为都符合要求。测试函数要学习测试,得有要测试的代码。下面是一个简单的函数,它接受名和姓并返回整洁的姓名:name_function.pydef get_formatted_name(first, last): '''Generate...原创 2018-03-26 11:18:45 · 3090 阅读 · 1 评论 -
Python基础:文件和异常
写入文件要将文本写入文件,你在调用open()时需要提供两个实参:第一个实参是文件的名称,可以是相对路径(Python基于当前执行的.py文件所在的目录),也可以是绝对路径(不用多说),在Linux或OS X中,文件路径类似于这样'text_files/filename.txt';在Windows系统中,使用反斜杠而不是斜杠'text_files\filename.txt',由于反斜杠在Pytho...原创 2018-03-25 23:58:27 · 324 阅读 · 0 评论 -
Python基础:If语句
条件测试If语句的核心都是一个值为True和False的表达式,这种表达式被称为条件测试(别名为布尔表达式)。使用两个等号(==)检查是否相等;判断不相等(!=);比较数字可以有(>=)(>)(<=)(<);检查多个条件可以使用and和or关键字;使用关键字in检查值是否在列表中;使用关键字not in确定值未包含在列表中In [5]: a,b=2,-9In [6]: ...原创 2018-03-21 11:53:54 · 365 阅读 · 0 评论 -
Python数据类型:列表、元组
列表是什么列表由一系列按特定顺序排列的元素组成。用方括号[]来表示列表,并用逗号来分隔其中的元素。可通过从0开始的索引来访问列表元素,-1代码最后一个元素,-2代表倒数第二个元素>>> ls=[1,0.4,"ab",[2,23]]>>> print ls[-1][2, 23]>>>列表:添加和删除元素添加元素:1.使用append()方法...原创 2018-03-20 22:22:56 · 423 阅读 · 0 评论 -
Python简单数据类型:字符串、整型、浮点型
本文主要介绍:创建变量名的注意事项;简介字符串、整型、浮点型;如何添加注释;Python之禅;变量命名规则:变量名只能包含字母、数字和下划线。变量名可以字母或下划线打头,但不能以数字打头;变量名不能包含空格,但可使用下划线来分隔其中的单词;不要将Python关键字和函数名用作变量名,即不要使用Python保留用于特殊用途的单词,如print;变量名应既简短又具有描述性;慎用小写字母i和大写字母O,...原创 2018-03-20 15:03:18 · 1630 阅读 · 0 评论 -
在Linux系统中搭建Python编程环境
本文主要介绍:如何在计算机安装Python,并运行第一个程序:在屏幕上打印消息“Hello world!”安装文本编辑器,以简化Python代码的编写工作第一个python程序检查Python版本当前有两个不同的Python版本:python2和python3,并且python3不向下兼容python2在你的系统中运行应用程序Terminal(如果你使用的是Ubuntu,可按Ctrl+Alt+T)...原创 2018-03-23 13:42:37 · 8527 阅读 · 0 评论 -
Windows下使用Git进行版本控制(入门级)
版本控制软件让你能够拍摄处于可行状态的项目的快照。修改项目(如实现新功能)后,如果项目不能正常运行,可恢复到前一个可行状态。需要经过一定的练习才能学会使用版本控制,一旦开始使用,你将离不开它。下载安装Git可在所有操作系统上运行,但其安装方法有异。要在Windows系统下安装Git,请访问 https://gitforwindows.org/ ,并单击Download。配置gitGit跟踪谁修改了...原创 2018-03-19 17:11:57 · 14124 阅读 · 0 评论 -
Python基础:函数
def关键字告诉python你要定义一个函数。接下来是函数名,括号必不可少,即使没有任何参数。后面的所有缩进行构成了函数体。注释的文本是被称为文档字符串 (docstring),描述了函数是做什么的。greeter.pydef greet_user(username): '''显示简单的问候语''' print("Hello, "+username+'!') greet_user('jes...原创 2018-03-21 18:06:06 · 277 阅读 · 0 评论 -
python基础: 柯里化:部分参数应用
柯里化(currying)是一个有趣的计算机科学术语,它指的是通过“部分参数应用”(partial argument application)从现有函数派生出新函数的技术。假设我们有一个简单的执行两数相加的函数:def add_numbers(a,b): return a+b通过这个函数,我们可以派生出一个新的只有一个参数的函数——add_five,它用于对其参数加5:add_five =...原创 2018-05-07 09:21:24 · 716 阅读 · 0 评论 -
python基础:itertools模块常用函数
常用函数及说明compress(data, selectors)#compress('ABCDEF', [1,0,1,0,1,1]) --> A C E Fchain(*iterables)# chain('ABC', 'DEF') --> A B C D E Ffilterfalse(predicate, iterable)# filterfalse(lambda x: x%2, r...原创 2018-05-05 18:06:07 · 1113 阅读 · 0 评论 -
Ubuntu环境下Pycharm的安装
PyCharm是python的一款IDE,它具有智能代码补全、实时错误检查和快速修复功能等,使你的日常工作更加高效。建议去官网下载:http://www.jetbrains.com/pycharm/安装:解压。unpack the pycharm-*.tar.gz file to a different folder, if your current Download folder doesn't...原创 2018-05-18 14:50:30 · 792 阅读 · 0 评论 -
Python基础:函数参数的工作方式
在python中,函数参数的工作方式其实很简单。当你编写func(a,b,c,d=some,e=value)时,位置和关键字参数其实分别是被打包成元组和字典的。函数实际接收到的是一个元组args和一个字典kwargs,并在内部完成如下转换:a,b,c=argsd=kwargs.get('d',d_default_value)e=kwargs.get('e',e_default_value)这一切都...原创 2018-05-10 15:44:12 · 445 阅读 · 0 评论 -
python:Lambda表达式
可以使用lambda关键字创建小型匿名函数。实际上它只是一个正常函数定义的语法糖。lambda a,b: a+b表示一个接受a,b两个参数,返回两个数之和的函数。lambda表达式 作为函数的返回值,举例:>>> def make_incrementor(n):... return lambda x: x + n...>>> f = make_in...原创 2018-04-19 14:17:44 · 589 阅读 · 0 评论 -
问题:Ubuntu环境下pycharm不能识别已经安装的模块
问题描述:在terminal中安装sklearn成功,pycharm中import提示No Module Named ***解决办法:1,通过python -vimport sklearn命令来查看模块的安装路径,我这里是/usr/local/lib/python3.6/dist-packages/2,pycharm的解释器里面添加一条path记录即可。...原创 2018-04-18 10:15:34 · 16016 阅读 · 1 评论 -
Python基础:类
创建和使用类使用类几乎可以模拟任何东西。下面编写一个表示小狗的简单类Dog:它包含了两项信息(名字和年龄)和两种行为(蹲下和打滚)。根据约定,在Python中,首字母大写的名称指的是类。这个类定义中的括号是空的,因为我们要从空白创建这个类。class Dog(): '''doc string''' def __init__(self, name, age): ...原创 2018-03-25 16:15:46 · 792 阅读 · 0 评论 -
在Windows系统中搭建Python编程环境
本文主要介绍:如何在计算机安装Python,并运行第一个程序:在屏幕上打印消息“Hello world!”安装文本编辑器,以简化Python代码的编写工作第一个python程序安装Python当前有两个不同的Python版本:python2和python3,并且python3不向下兼容python2,此处建议下载python3.下载地址:https://www.python.org/downloa...原创 2018-03-20 00:34:38 · 13145 阅读 · 2 评论