![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
python
_松
这个作者很懒,什么都没留下…
展开
-
python学习-综合练习七(二分查找(递归)、线性查找、插入排序、快速排序、选择排序、冒泡排序、归并排序、堆排序)-实例
文章目录二分查找线性查找插入排序快速排序选择排序冒泡排序归并排序堆排序推荐代码一推荐代码二希尔排序拓扑排序说明:本篇博文的知识点大部分来自 Python3 实例二分查找二分搜索是一种在有序数组中查找某一特定元素的搜索算法。这种搜索算法每一次比较都使搜索范围缩小一半。二分查找有一个特定条件,对于有序且从小到大排列的容器才能使用这是从菜鸟教程里面截取的一张图,很好的解释了二分查找。输入数值为4,一半是第五位:7,小于7,在前半部分。再一半取得第二位:3,大于3,在3之后的半部分里面,这样一直二分原创 2020-06-25 17:55:45 · 557 阅读 · 0 评论 -
python学习-综合练习六(列表翻转、变量交换、复制列表、元素求和(lambda和递归)、字典排序、字典pop)
文章目录列表翻转变量交换复制列表元素求和字典排序字典pop说明:本篇博文的知识点大部分来自 Python3 实例列表翻转列表翻转就是把列表的值按顺序左移,逻辑还是挺简单的。我之前的博文也提到过,可以直接使用lst1 = [1, 2, 3, 4, 5]print(lst1[::-1])这就是逆序打印列表·下面代码是另一种方式:def leftRotate(lst1, d, n): for i in range(d): leftRotatebyOne(lst原创 2020-06-23 23:26:13 · 405 阅读 · 0 评论 -
python学习-综合练习五(五人分鱼(优化解)、顺向、反向推导)
文章目录五人分鱼顺推反推说明:本篇博文的知识点大部分来自 Python3 实例五人分鱼# A、B、C、D、E 五人在某天夜里合伙去捕鱼,到第二天凌晨时都疲惫不堪,于是各自找地方睡觉。# 日上三杆,A 第一个醒来,他将鱼分为五份,把多余的一条鱼扔掉,拿走自己的一份。# B 第二个醒来,也将鱼分为五份,把多余的一条鱼扔掉拿走自己的一份。 。# C、D、E依次醒来,也按同样的方法拿鱼。# 问他们台伙至少捕了多少条鱼?题干分析:拿到这种题,如果手动计算,首先想到的是列方程,求解。但是在程序中原创 2020-06-23 00:01:40 · 1823 阅读 · 1 评论 -
python学习-综合练习四(最大公约数、最小公倍数、生成日历、递归调用、字符串)
文章目录最大公约数最小公倍数生成日历递归调用字符串说明:本篇博文的知识点大部分来自 Python3 实例最大公约数求最大公约数的逻辑比较简单,这里直接上代码:def maxCommDiv(val1, val2): if val1 > val2: smaller = val2 else: smaller = val1 commDiv = 0 for item in range(1, smaller + 1): i原创 2020-06-21 23:49:44 · 511 阅读 · 0 评论 -
python学习-综合练习三(斐波那契数列、阿姆斯特朗数、//和/、十进制转二进制bin、八进制oct、十六进制hex、进制转换源码、python中::和:的区别)
文章目录斐波那契数列阿姆斯特朗数十进制转二进制bin、八进制oct、十六进制hex说明:本篇博文的知识点大部分来自 Python3 实例斐波那契数列下面代码实现了判断用户输入值,只有输入为大于等于1的正整数时,才会打印结果。网上看到的是使用while的一种方式,我这里自己实现了一种使用for循环的方式。相比而言,代码更简洁一些。try: num = int(input("斐波那契数列:需要打印几项的值?\n")) if num <= 0: print("请输原创 2020-06-20 23:58:27 · 345 阅读 · 0 评论 -
python学习-综合练习二(整数和浮点数判断奇偶、质数判断)
文章目录判断数字判断质数说明:本篇博文的知识点大部分来自 Python3 实例判断数字判断数字可以使用:str1 = '123'def isNum(s): try: import unicodedata unicodedata.numeric(s) print(True) except(TypeError, ValueError): print(False)isNum(str1)print(str1.is原创 2020-06-19 23:58:20 · 1465 阅读 · 0 评论 -
python学习-综合练习(平方根、海伦公式、随机数、转换函数、数值交换)
文章目录计算平方根计算三角形的面积随机数生成转换说明:本篇博文的知识点大部分来自 Python3 实例计算平方根# 导入复数数学模块import cmathint1 = 16print(int1 ** 0.5)int2 = -10sqrt = cmath.sqrt(int2)print('{0} 的平方根为 {1:.4f}+{2:.4f}j'.format(int2, sqrt.real, sqrt.imag))如果是正数,可以直接 int1 ** 0.5单数对于负数和原创 2020-06-18 23:57:36 · 1033 阅读 · 0 评论 -
python学习-知识点进阶使用(end、while else、range、iter、list的多种遍历方式)
文章目录end 关键字while elserange迭代器结语end 关键字int1, int2 = 0, 1while int2 < 1000: print(int2, end=',') int1, int2 = int2, int1+int2添加了end关键字,打印不再是换行,使用逗号(,)而且此段代码,提供了一种新方式,不同的赋值,可以在同一行里面操作。打印结果:1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,原创 2020-06-17 23:39:50 · 451 阅读 · 0 评论 -
python学习-defaultdict
文章目录传统字典使用使用setdefault使用defaultdict传统字典使用统计某个单词出现次数lst1 = ['这', '是', '一', '段', '话', '一', '段', '话']rst = dict()for word in lst1: if word not in rst: rst[word] = 1 else: rst[word] += 1print('rst = ', rst)这是传统方法。使用setdef原创 2020-06-16 22:59:05 · 142 阅读 · 0 评论 -
python学习-元组的复习及进阶使用(iterable、indexing and slicing、sequence unpacking、immutable、named tuple)
文章目录可迭代的(iterable)索引和切片(indexing and slicing)序列解包(sequence unpacking)不可修改的(immutable)named tuple可迭代的(iterable)iterable就是可遍历的,我们可以通过for打印元组的内容。print('tuple iterable')tup1 = ('python', 1, 2, 3, 4)for item in tup1: print("item = ", item)索引和切片(in原创 2020-06-15 23:57:24 · 259 阅读 · 0 评论 -
python学习-知识点回顾(Python3的安装,编译器、一些关键知识点、数据类型、数据类型转换、运算符优先级)
文章目录说明python特点Python3下载PyCharm标识符python保留字行与缩进基本数据类型Python数据类型转换Python运算符优先级说明首先说明:本篇博文知识点来源感兴趣的小伙伴点击这里或者点击Python3 菜鸟教程python特点Python3下载Python 官网:https://www.python.org/Python文档下载地址:https://www.python.org/doc/当然我最开始学习python的时候也有对应的博文:python学习环原创 2020-06-14 23:56:52 · 145 阅读 · 0 评论 -
python学习-日志(logging的定义、参数、format、示例代码、创建logging对象、设置Handler)
文章目录logging介绍logging.basicConfig定义logging.basicConfig参数说明logging.basicConfig日志等级说明logging.basicConfig示例代码logging.basicConfig 的level设置创建新的logging对象示例代码说明logging介绍logging.basicConfig定义首先查看一下函数提示信息截图:logging.basicConfig参数说明logging.basicConfig函数参数详细介绍:f原创 2020-06-14 13:48:29 · 4408 阅读 · 0 评论 -
python学习-测试(文档测试 doctest、单元测试 unittest)
文章目录文档测试单元测试文档测试doctest:一个简单的模块,为检查文档而设计,但也适合用来编写单元测试。def func(a, b): """ doc test :param a: :param b: :return: >>> func(1, 2) 3 >>> func('a', 'c') 'ac' >>> func('a', {}) Traceback原创 2020-06-13 21:01:38 · 212 阅读 · 0 评论 -
python学习-图片处理小程序(PIL的安装、PIL.Image的使用、 示例程序(图片灰度值修改))
文章目录PIL的安装示例程序PIL的安装首先,win + R,打开命令运行窗口,然后输入cmd命令。然后在命令行中,切换到python的安装目录下:然后输入pip,在python3中pip模块已内置,所以不需要安装pip。接着键入pip install Pillow 提示安装成功(successful)即安装完成这时候引入PIL模块,则不会报错了。示例程序说明:两种方式引入imagefrom PIL import ImageFilter, ImageOpsimport PIL原创 2020-06-13 11:38:31 · 1938 阅读 · 0 评论 -
python学习-代码调试(通过print调试、通过pdb调试、通过编译器调试(断点调试))
文章目录通过print调试通过pdb调试通过编译器调试(断点调试)通过print调试首先我这里写了一段代码,保存列表中的偶数,然后返回列表,在函数执行后,我对函数结果进行打印。见代码:lst1 = [1, 2, 3, 4, 5, 6, 6, 6, 345, 3, 543, 53, 245, 3245, 23, 45]def printEven(lst): evenLst = [] for item in lst: if 0 == item % 2:原创 2020-06-12 23:59:26 · 598 阅读 · 0 评论 -
python学习-异常(异常类型,异常处理、自定义异常)
文章目录python标准异常异常处理自定义异常python标准异常异常就是影响程序正常执行的一个事件。某一行代码发生异常,程序就退出了,后续代码都不会执行。异常名称描述BaseException所有异常的基类SystemExit解释器请求退出KeyboardInterrupt用户中断执行(通常是输入^C)Exception常规错误的基类StopIteration迭代器没有更多的值GeneratorExit生成器(generator)发生异原创 2020-06-10 22:10:08 · 607 阅读 · 0 评论 -
python学习-装饰器(可变参装饰器、完善装饰器)
文章目录可变参装饰器完善装饰器可变参装饰器args表示任何多个无名参数,它是一个tuple;**kwargs表示关键字参数,它是一个dict。并且同时使用args和kwargs时,必须*args参数列要在kwargs前。import functoolsdef a_new_decorator(a_func): @functools.wraps(a_func) def wrapTheFunction(*args, **kwargs): print(a_func.__原创 2020-06-09 22:06:16 · 213 阅读 · 0 评论 -
python学习-装饰器(decorator)
文章目录装饰器普通装饰器装饰器带参数类装饰器类方法装饰器装饰器装饰器(Decorators)是 Python 的一个重要部分。简单地说:他们是修改其他函数的功能的函数。普通装饰器个人理解普通装饰器和直接调用函数没什么区别,就是相当于函数的调用。def test1(x): return x ** 2def test2(x): return x * 3 + x / 2test1(6)test2(8)def func(f): def fNew(x):原创 2020-06-08 23:43:23 · 361 阅读 · 1 评论 -
python学习-列表解析、字典解析
文章目录扩展链接列表解析字典解析扩展链接一些基础数据类型的博文链接:python学习-数据类型 列表 python学习-数据类型 字典 python学习-数据类型 元组 python学习-列表的操作 列表解析根据已有列表,高效创建新列表的方式。列表解析是Python迭代机制的一种应用,它常用于实现创建新的列表,因此用在[]中。优点是代码简洁,编写方便。推荐博文地址:Python 列表解析lst1 = [1, 2, 3, 4, 5, 6, 7, 8, 9]lst2 = [item原创 2020-06-07 12:26:17 · 1729 阅读 · 0 评论 -
python学习-高阶函数(函数传参、返回函数(闭包)、匿名函数lambda)
文章目录高阶函数函数传参返回函数(闭包)匿名函数lambda高阶函数**定义:至少满足下列一个条件:接受一个或多个函数作为输入输出一个函数python里的高阶函数有 filter、map、reduce、sorted、匿名函数lambda等函数传参顾名思义就是把一个函数作为参数传到另一个函数中,也不复杂,直接上代码:def test1(x, func): return func(x)print(test1([1, 2, 3, 4, 5], sum))这是一个很简单的示例原创 2020-06-06 13:33:36 · 458 阅读 · 0 评论 -
python学习-序列化对象(pickle)
文章目录序列化(pickle)序列化(pickle)序列化对象,引入内置模块:import pickle序列化写文件使用二进制的方式去写,需要使用wb我在定义时,类成员变量使用了__修饰,表示私有成员,所以需要添加get函数获取__name对象的值。如果直接使用__name,则会报错。为了做对比,定义了name和__name变量。注意:自定义python文件的文件名时,不要和python模块名相同,否则会引入编译错误import pickleclass person: d原创 2020-06-05 23:55:28 · 1000 阅读 · 0 评论 -
python学习-文件的读写操作
文章目录文件的写操作文件的读操作文件的写操作open函数,原型:def open(file, mode='r', buffering=None, encoding=None, errors=None, newline=None, closefd=True): # known special case of open参数说明:========= =============================================================== Character原创 2020-06-04 22:20:17 · 184 阅读 · 0 评论 -
python学习-if、name、main、PyPi、pip
文章目录if、name、mainpip、PyPiif、name、main上篇博文里面定义了package和module,这里直接引用之前的代码继续做修改。在module.py文件中定义了myMax。def myMax(*args): iBol = False iRst = 0 for item in args: if not iBol: iRst = item iBol = True if iRs原创 2020-06-03 23:45:16 · 258 阅读 · 0 评论 -
python学习-syspath、系统内置模块
@tocsys.pathsys.path是python搜索模块的路径列表,在实际的开发中,默认包含了当前目录为搜索路径,所以当前目录下的模块和子模块均可以正常访问。当一个模块需要导入平级的不同目录的模块,或者上级目录里面的模块,就可以通过修改sys.path来实现,修改sys.path的方法有两种:函数添加(sys.patch.append(xxx)),这是即时生效的方法,就是在模块里面(py文件)修改sys.path的值,这种方法修改的sys.path的作用域只是当前进程。修改环境变量PYTHO原创 2020-06-02 23:21:03 · 473 阅读 · 0 评论 -
python学习-模块和包
文章目录模块包模块模块是一个包含Python定义和语句的文件。文件名就是模块名后跟文件后缀 .py 。在一个模块内部,模块名(作为一个字符串)可以通过全局变量 __ name __ 的值获得。# 模块 moduledef myMin(*args): iBol = False iRst = 0 for item in args: if not iBol: iRst = item iBol = True原创 2020-06-01 23:16:16 · 137 阅读 · 0 评论 -
python学习-类(类方法、实例方法、静态方法)
文章目录基础知识补充类方法和实例方法基础知识补充Python面向对象-访问权限public和private可以在属性的名称前面加上两个下划线__。如果一个变量以__开头,就变成了一个私有变量private,只有内部可以访问。类方法和实例方法class person: def __init__(self, name, age): self.name = name self.age = age # 实例方法,类对象实例化以后才能调用 def d原创 2020-05-30 23:58:06 · 243 阅读 · 0 评论 -
python学习-类(global、nonlocal、继承、多态)
文章目录介绍一下global与nonlocal继承和多态介绍一下global与nonlocal1.函数内部定义的为局部变量,其作用域是局部作用域,函数外无法调用的2.函数外定义的为全局变量,其作用域是全局作用域,如果在函数内想要进行修改,需要使用global修饰变量3.外层函数的变量,如果想要在内层函数进行修改,需要nonlocal关于这部分,有一篇博文写得很详细,通过看他的这篇博文,我已经看懂了两个修饰词的作用。python:函数作用域 global与nonlocal大家感兴趣的可以去看看。原创 2020-05-29 23:51:17 · 328 阅读 · 0 评论 -
python学习-递归(阶乘、汉诺塔)
文章目录求阶乘(循环)求阶乘(递归)汉诺塔求阶乘(循环)如果需要求一个数的阶乘,可能刚开始脑海里面冒出来的是循环计算,下面看看循环如何实现:def recur1(num): rst1 = 1 for item in range(1, num + 1): print(item) rst1 = rst1 * item print(rst1) return rst1recur1(5)为了体现变化,我这里把每个值都打印出来了。运行结果原创 2020-05-28 23:58:25 · 881 阅读 · 0 评论 -
python学习-函数(定义、可变参、小练习(列表最小值函数))
函数目录定义可变参函数自定义列表最小值函数定义函数定义使用关键字def,可以不带参数,也可以带参数,带参数的函数,可以使用位置参数,详见示例:str1 = 'sadf'def printVal(): print(str1)printVal()def myadd(a1, a2): return a1 + a2int1 = myadd(3, 6)str2 = myadd('s1', "s2")print("int1 = ", int1)print("str2原创 2020-05-27 23:09:03 · 950 阅读 · 0 评论 -
python学习-条件语句
条件语句ifif elseif esif elseif偶尔会把之前的一些知识点串起来,见代码int1 = int(input('请输入一个数字:'))bool1 = int1 > 0if bool1: print('int1 {} > 0: {}'.format(int1, bool1)) print('int1 {int1} > 0: {bool1}'.format(int1=int1, bool1=bool1)) print(f'int1 {int原创 2020-05-26 22:52:24 · 184 阅读 · 0 评论 -
python学习-集合(创建、add、remove、discard、与、或、去同、存异)
集合创建集合的使用创建字典的keys和values的返回值是list,并不是set,set是用{}set和元组类似,不可变对象,该对象所指向的内存中的值不能被改变。即元素不能修改值。set内部是无序的,每次运行打印的结果会不一样。见代码:set1 = {'a', 'b', 'c'}print(type(set1))print('a' in set1)lst1 = [1, 2, 3, 4, 5, 6, 6, 4, 5, 6]set2 = set(lst1)print(set2, type原创 2020-05-26 21:54:15 · 1193 阅读 · 0 评论 -
python学习-阶段训练(通讯录小练习)(增、删、改、查、还原)
文章目录代码结果代码说明:本文中的还原,是一个很简略的还原,删除操作不会修改备份数据,修改和增加均会修改备份数据,这个只是一个简单设定而已,大家有需要,自行修改研究话不多说,上代码:print('''|---欢迎进入通讯录增删改查---||---1、 查询所有联系人姓名---||---2、 查询所有联系人电话---||---3、 查询所有联系人资料---||---4、 查询指定联系人资料---||---5、 插入新的联系人资料---||---6、 删除指定联系人资料---||---7、原创 2020-05-26 00:17:48 · 623 阅读 · 0 评论 -
python学习-字典(哈希表、创建、插值、取值、keys、values、items、copy、fromkeys)
字典字典的创建字典的使用字典的创建首先需要注意,字典是由键值对(key=>value)组成,成对出现的,其中key是不能改变的值,如整数,浮点数,字符串,元组等Python的字典实现使用的是hash表,它是一个数组,他的索引是通过键的hash函数获得的。先看看字典的定义吧# key不能改变dict1 = { 3: 3, 2: 4, 2.1: 3, 'sd': 2, 4: 'ss'}print('dict1 = ', dict1)运行结果:原创 2020-05-25 23:20:22 · 1239 阅读 · 0 评论 -
python学习-元组tuple(定义、删除、长度、复制、查找、遍历、operator,和列表的区别)
元组tuple元组的创建元组的使用使用进阶元组和列表的区别元组的创建Python的元组与列表类似,不同之处在于元组的元素不能修改。元组的创建,使用()或在定义变量以后添加一个逗号(,)tup1 = (1, 2, 3)tup2 = 123,print('tup1 = ', tup1, type(tup1))print('tup2 = ', tup2, type(tup2))print('tup1[0] = ', tup1[0])print('tup1[1] = ', tup1[1])pri原创 2020-05-24 22:37:47 · 7997 阅读 · 0 评论 -
python学习-列表的操作(常用函数均会介绍)
列表的操作基本操作进阶附加内容基本操作本文中的基本操作有:获取最大,最小值,获取某个元素在列表中出现的次数。列表的append,insert,remove,以及下标取值,赋值。列表的扩展,以及列表的截取,详见代码。列表的reverse,sort(正序和倒序),sort有个参数key,本文没有介绍。lst5 = [1, 3, 5, 2, 45, 0, 4, 10, 2]print('lst5 = ', lst5)print('max(lst5) = ', max(lst5))print('m原创 2020-05-24 18:15:36 · 240 阅读 · 0 评论 -
python学习-数据类型(列表→创建、取值、大小、长度)
数据类型列表(list)列表的创建列表的取值(划重点)列表的大小和长度列表(list)列表的创建列表的创建很简单,使用中括号。理论上中括号里面的值是任意类型,上代码:lst1 = [1, 2, 3]print(type(lst1))print(lst1)lst2 = ['abc', "123", 123, 123.0, True, None, ['abc', "123", 123, 123.0, True, None]]print(type(lst2))print(lst2)运行结果:原创 2020-05-23 12:37:06 · 1142 阅读 · 0 评论 -
python学习-数据类型(布尔、空值)
数据类型布尔型(bool)空值(None)布尔型(bool)只有两个值,True和False,作为后续条件判断时的条件使用True和False的首字母要大写,不然会报未定义。bl1 = Truebl2 = Falseprint(type(bl1))print(bl1)print(type(bl2))print(bl2)运行结果:空值(None)空值在后续也是作为判断条件之一,判断空或者非空no1 = Noneno2 = ""print(type(no1))print(no原创 2020-05-23 11:16:46 · 686 阅读 · 0 评论 -
python学习-字符串格式化
字符串格式化使用占位符使用大括号使用大括号+自定义名称使用f-string直接引用变量使用占位符常用的占位符如%s %d等,需要严格按照数据类型对应占位符name = "python"age = 18str01 = "this is %s, age is %d" % (name, age)print(str01)如果占位符使用错误,比如name使用的是%d,那么会报错这种方式不推荐使用大括号使用大括号作为占位符,则不需要指定占位符类型,不过如果需要赋值的地方多了,也不方便。nam原创 2020-05-23 00:39:07 · 217 阅读 · 0 评论 -
python学习-字符串的基本操作
文章目录字符串字符串定义字符串下标字符串的加法字符串的减法-非常规意义的减法字符串的乘法字符串的除法-非常规意义的除法(未完待续...)说明:目前由于对python语法以及命名规则还不太熟悉,示例代码使用的命名,都是没有任何规范可言的,希望大家不要学习这种命名方式,还是要遵守命名规范,这个特别重要。要养成自己的风格。后续我会抽时间学习命名规则,然后分享出来给大家!字符串字符串定义在python中使用单引号或双引号是没有区别的,都可以用来表示一个字符串。但是我们可以自由选择使用方式,让语义看起来更简原创 2020-05-22 22:57:45 · 206 阅读 · 1 评论 -
python学习-注释、语法、整数、浮点数初步接触
文章目录注释编码特点自定义函数题外话注释井号(#),规范写法是“# ” 井号+空格python的代码风格是PEP8python能够根据赋值自己定义数据类型,不需要单独定义。**python结尾不需要加分号( ; ),因为结尾的回车已经代表语句的结束**关于python的一些规范,推荐官网:https://www.python.org/dev/peps/pep-0008/#introduction部分内容截图:全英文网址,如果看英文费劲,可以翻译成中文观看。编码特点C++是需要定原创 2020-05-20 23:59:10 · 197 阅读 · 0 评论