自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 收藏
  • 关注

原创 python 快排的各种实现及优化方向

import timeimport randomimport sys"""很多人提起快排和二分都觉得很容易的样子,但是让现场Code很多就翻车了,就算可以写出个递归版本的代码,但是对其中的复杂度分析、边界条件的考虑、非递归改造、代码优化等就无从下手,填鸭背诵基本上分分钟就被面试官摆平了。递归的实现主要是借助系统内的栈来实现的。如果调用层级过深需要保存的临时结果和关系会非常多,进而造成StackOverflow栈溢出。Stack一般是系统分配空间有限内存,每个系统架构默认的栈大小不一样,比如在

2020-09-09 18:39:03 298

原创 算法题归纳整理-python

先问清题目,各方面各种问,题目是什么意思,希望你干什么,你的api以后要拿到怎么用,给谁用?确认方法的输入输出,希望收到什么样的参数?如果不是这种参数怎么处理,输出什么样的结果?结果的范围是?和面试官确认边界条件,上限是什么?下限是什么?corner case要充分讨论写代码时最好不断交流,嘴巴里要说,别就只顾着写最后要给面试官算法复杂度,注意,这里一定要说清楚是最好、平均、最坏,用词要严谨,这些都是细节数组中重复的数字先问面试官要时间/空间需求!!!是否可以使用额外空间,是否可以修改原始数组

2020-09-04 09:37:25 436

原创 全面掌握 Python 中正则表达式的使用

文章目录一、re模块简介二、re模块常量1. IGNORECASE2. ASCII3. DOTALL4. MULTILINE5. VERBOSE6.LOCALE7.UNICODE8. DEBUG9.TEMPLATE10. 常量总结三、re模块函数1.查找一个匹配项2.查找多个匹配项3.分割4.替换5.编译正则对象6.其他四、re模块异常五、正则对象Pattern1. 与re模块 函数一致2. 官...

2020-05-12 22:57:47 1715 2

原创 不使用 if-elif 语句优雅地判断

题目大意是:有从 A 到 F 的 5 个等级,现要判断某个数值(从 0 到 1 之间)所属的等级。举例,如数值 >= 0.9,则属于 A;若数值 >= 0.8,则属于 B;以此类推。若使用 if-elif 语句,可能写成这样:if scr >= 0.9: print('A')elif scr >= 0.8: print('B')elif scr &g...

2020-06-12 17:25:55 546

原创 Python函数返回结果的技巧

文章目录1. 单个函数不要返回多种类型2. 使用 partial 构造新函数3. 抛出异常,而不是返回结果与错误4. 谨慎使用 None 返回值5. 合理使用“空对象模式”6. 使用生成器函数代替返回列表7. 限制递归的使用总结Python 的函数返回方式Python 函数通过调用 return 语句来返回结果。使用 return value 可以返回单个值,用return value1,v...

2020-05-19 10:21:28 8161 1

原创 __slots__ 类属性

使用 slots 类属性节省空间默认情况下,Python 在各个实例中名为 dict 的字典里存储实例属性。为了使用底层的散列表提升访问速度,字典会消耗大量内存。如果要处理数百万个属性不多的实例,通过 __slots__类属性,能节省大量内存,方法是让解释器在元组中存储实例属性,而不用字典。继承自超类的 slots 属性没有效果。Python 只会使用各个类中定义的 slots 属性。定义 slots 的方式是,创建一个类属性,使用 slots 这个名字,并把它的值设为一个字符串构成的可迭代对象,其中各

2020-05-11 11:12:50 347

原创 Python设计模式--策略模式

from collections import namedtupledef reducer(arg1, arg2, strategy=None): if strategy == "addition": return arg1 + arg2 elif strategy == "subtraction": return arg1 - arg2 ...

2020-05-06 11:27:52 125

原创 @staticmethod@classmethod解析

类的方法不需访问实例时,根据具体场景选择使用@staticmethod或者@classmethod进行装饰说明: 一般的类方法要接收一个self参数表示此类的实例,但有些方法不需要访问实例,这时分为两种情况:1、方法不需要访问任何成员,或者只需要显式访问这个类自己的成员。这样的方法不需要额外参数,应当用@staticmethod装饰。 在Python 3.X版本中,允许直接定义不含self参数...

2020-03-21 16:09:33 610

原创 better

希望变成一名更优秀的程序员。在编程领域,我们希望能够解决重大且复杂的问题。为此,需要能够在较高的层次上进行思考。我们需要开发自己在更大组块联合体中解决问题的能力。当能够查看一个全新的问题并且快速将其解构成高层次的组成部分,并且这些组成部分是我们之前就已经解决过时,我们就成为经验丰富可以举一反三的程序员了。要成为更优秀的程序员,我们就需要下决心去提高自身在编程方面的精通程度。每一天都是让自己变...

2020-01-03 11:06:22 120

原创 Python设计模式--责任链模式

def function_1(in_string): print(in_string) return ''.join([x for x in in_string if x != '1'])def function_2(in_string): print(in_string) return ''.join([x for x in in_string if x !...

2019-12-30 17:16:05 95

原创 Python设计模式--原型模式

@[TOC] 原型模式from abc import abstractmethod, ABCMetaclass Bar(metaclass=ABCMeta): @abstractmethod def fun(self): """please Implemente in subclass""" passclass SubBar(Bar):...

2019-12-26 15:18:32 118

原创 Python设计模式--装饰器模式

import timeimport mathfrom functools import wrapsclass Decorator(object): def __init__(self, func): self.f = func def __call__(self, *args, **kwargs): start_time = time.t...

2019-12-24 15:06:31 108

原创 爬虫应用--每月检验自动填充

extra_info = [{‘type’: ‘business_flight’,‘data’: [{‘type’: ‘flight’,‘info’: [{‘carrierName’: ‘南方航空’,‘carrierCode’: ‘CZ’,‘flightNo’: ‘CZ2666’,‘price’: {“maxPrice”: “4000”,“minPrice”: “400”},‘d...

2019-12-16 10:48:16 134

原创 Python--爬虫之selenium

文章目录selenium的使用1. 什么是selenium2. PhantomJS的介绍3. Chromedriver的介绍4. driver的安装5. selenium的入门使用6. selenium的定位操作7. selenium 处理cookie8. 页面等待9. 动手10. 使用selenium切换frame11. selenium的优缺点11. 作业selenium的使用目标了解s...

2019-12-16 10:45:43 105

原创 python之Set操作(下)

文章目录python之Set操作(下)5. Set删除1) 删除一个指定元素2) 随机删除一个元素3) 清空Set4) 删除整个Set6. Set判断1) 判断两个Set是否相等2) 判断两个Set有没有交集3) 判断一个Set是否包含另一个Set4) 判断一个Set是否是另一个Set的子集5) 判断元素是否在Set中7. Set转换1) Set转String2) Set转Tuple3) Set转...

2019-12-11 15:28:59 851

原创 python之Set操作(上)

文章目录python之Set操作(上)1. Set创建1) 创建Set2) 创建不可变Set3) 创建Empty Set2. Set复制1) Set浅拷贝2) Set深拷贝3. Set基础操作1) 获取Set长度4. Set添加1) 添加单个元素2) 添加多个元素3) 添加Set集合python之Set操作(上)Set是一个无序不重复元素的集:具有无序性,所以本章节的举例运行结果可能不尽相...

2019-10-27 18:09:50 1140

原创 python之Dict操作(下)

文章目录python之Dict操作(3)10. Dict排序1) 根据key对字典排序2) 根据key对value排序3) 根据value对字典排序4) 根据某个key对应的value对字典列表排序python之Dict操作(3)10. Dict排序1) 根据key对字典排序根据key,对字典进行排序推荐写法: 使用Python3的标准库,内置函数:sorted(iterable[, k...

2019-10-24 23:36:31 356

原创 python之Dict操作(中)

文章目录python之Dict操作(中)6. Dict更新1) 更新指定key的value7. Dict查找1) 获取value的最大值/最小值2) 获取指定key的value3) 获取键值对列表4) 获取key列表5) 获取value列表6) 从字典中提取符合条件的子集8. Dict判断1) 判断key是否在字典中9. Dict排序1) 根据key对字典排序2) 根据key对value排序3) ...

2019-10-22 19:24:55 9608

原创 python之List操作(下)

文章目录python之List操作(下)7. 列表查找1) 根据index获取元素值2) 获取列表的首尾元素3) 查找某元素出现的次数4) 查找列表中的最大值/最小值5) 查找列表是否包含某个元素6) 查找列表中某个元素的index7) 查找列表中某个重复元素的index集合8) 线性查找列表中某个元素的index9) 二分法查找有序列表中某个元素的index8. 列表转换1) 列表转字符串2) ...

2019-10-20 18:11:41 403

原创 python之Dict操作(上)

文章目录python之Dict操作(上)1. Dict创建1) 创建键值一对一映射的Dict2) 创建键值一对多映射的Dict3) 创建有序Dict4) 创建Empty Dict5) 创建具有默认值的Dict2. Dict复制1) Dict浅拷贝2) Dict深拷贝3. Dict基础操作1) 获取字典长度4. Dict添加1) 添加一个键值对2) 添加多个键值对3) 添加Dict字典5. Dict...

2019-10-20 18:10:27 1147

原创 python之List操作(上)

文章目录python之List操作(上)1 列表创建1) 列表普通创建2) 按照推导式创建列表2. 列表复制1) 列表浅拷贝2) 列表深拷贝3. 基础操作1) 获取列表的长度2) 列表保序去重3) 列表不保序去重4) 二维列表扁平化为一维列表4. 列表添加1) 添加单个元素到列表尾2) 添加单个元素到列表指定位置3) 添加列表到另一个列表5. 列表删除1) 移除列表中的单个元素2) 删除列表中的...

2019-10-17 23:05:19 463

原创 资源操作之文件和目录操作

资源操作之文件操作(上)1. 基础操作打开文件open(file, mode=‘r’, buffering=None, encoding=None, errors=None, newline=None, closefd=True)函数有很多参数,只有file参数是必需的,常用的是file,mode,encoding,分别表示:file:文件描述符,表示要打开的文件;mode:指定文...

2019-10-14 20:57:06 284

原创 资源操作之文件和路径(上)

资源操作之文件和路径1. 路径表示法1) 相对路径获取文件相对路径一般写法: 使用Python3的标准库,pathlib模块Path类的构造函数from pathlib import Path# 相对于当前目录的相对路径p1 = Path()print(p1) # 结果为:.# 相对于当前目录相对路径a/b/c/dp2 = Path('a', 'b', 'c/d')pr...

2019-10-10 20:22:43 125

原创 资源操作之系统属性

资源操作之系统属性1) 获取计算机系统的具体信息获取计算机系统相关的具体信息一般写法: 使用Python3的标准库,platform模块输出结果不同计算机系统有差异import platform# 获取系统名称platform.system() # 'Windows'# 获取操作系统名称及版本号platform.platform() # 'Windows-10-10....

2019-10-09 17:38:50 117

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除