python 的艺术
文章平均质量分 92
一枚大果壳
编程驿站 等你来
展开
-
Python 课堂记录
import time #时间模块#生成随机数ran=random.randint(1,100) # int :整数c=0#无限重复执行c+=1 # 自增一 c=c+1# 等一秒turtle.write(“第”+str©+“次:”,font=(“黑体”,16) )#等待询问an=turtle.numinput(“提示”,“输入一个数字”)#清屏#比较 1、大了 2、小了 3、相等。原创 2023-12-12 10:17:17 · 264 阅读 · 0 评论 -
Python_ 作业答疑_6.8~6.11
编写一个函数,能自动输出一个找茬的游戏字符串,如很多“大”字中查找唯一的与之相似的“太”字的位置。需要使用随机模块自成生成一个任意长度的字符串,此字符串主要是以“大”字为主,在字符串的随机位置插入一个‘太’。中,可以使用 ord(‘字符’)得到数字编码,也可以使用 ·chr(97)·把数字转换成对应的字符。公约数指能同时被 2 个数字整除的数字,最大公约数指能同时被 2 个数字整除的数字中的最大的那个。给定一个列表,该列表中有的元素是列表,有的元素是整数。开始连续的偶数位上,返回最少的移动次数。原创 2023-12-06 15:47:33 · 85 阅读 · 0 评论 -
Python作业答疑_6.22~6.25
输入[1,2,3]及元素个数3,输入[4,5]及元素个数2,输出[1,2,3,4,5],经过合并新的数组为[1,2,3,4,5]。输入[1,2,5]及元素个数3,输入[3,4]及元素个数2,输出[1,2,3,4,5],经过合并新的数组为[1,2,3,4,5]。输入[[0,0],[1,0],[2,0]],输出2,两个回旋镖是[[1,0],[0,0],[2,0]]和[[1,0],[2,0],[0,0]]。找到[1,n]中所有未出现在此数组中的元素。输入[4,3,2,7,8,2,3,1],输出[5,6]。原创 2023-12-06 15:45:29 · 895 阅读 · 0 评论 -
Python 作业答疑_6.15~6.18
个以上的字母,那么这是一个抽搐词。最直接的方案是,计算列表中每一个数字与目标数字的差,然后再求最小值。程序运行时,能接受用户输入5 个字符组成的字符串,程序运行后,以相反顺序输出字符串。全部写完,至少需要多少行?在迭代字符串之前,声明一个临时变量,刚开始初始化为空字符串,如。函数获取字母在数组中的位置,再获取字母对应的编码。迭代字符串,获取每一个字符的宽度。的莫尔斯码串接起来),即为一个词的转换。,本题和上题的是不相同的,请注意审题。,用来保存当前迭代字符的前一个字符。其中,一个字符的宽度由一个给定数组。原创 2023-12-06 15:38:49 · 420 阅读 · 0 评论 -
Python作业答疑
问第4个人岁数,他说比第3个人大2岁,问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁,最后问第一个人,他说是10岁。如有一个字符串”this is a test”请根据用户指定的单词位置,输出单词。名的人,分别获得金牌、银牌和铜牌。给定一个字符串(以字符数组的形式)和一个偏移量,根据偏移量原地从左向右旋转字符串。中,字符串是不能进行修改的,如果要修改字符串中的字符,可以先转换成列表。输入学生的成绩,把学生的成绩传入自定义函数,函数输出学生成绩的平均分。,返回旋转后的字符串。原创 2023-12-06 15:36:43 · 100 阅读 · 0 评论 -
Python 作业答疑
我们可以写出3~100以内的孪生素数,一共有8对,分别是(3,5),(5,7),(11,13),(17,19),(29,31),(41,43),(59,61)和(71,73)。根据“黑洞数”定义,对于任意一个数字不全相同的整数,最后结果总会掉入到一个黑洞圈或黑洞数里,最后结果一旦为黑洞数,无论再重复进行多少次的“重排求差”操作,结果都是一样的,因此可把结果相等作为判断“黑洞数”的依据。的最简分数,可以对分子采用穷举的方法。的分数,或者说分子和分母是互质数的分数,叫作最简分数,又称既约分数。原创 2023-12-06 15:34:11 · 137 阅读 · 0 评论 -
Python 有趣的几个案例
*题目需求:**对于任何自然数,将它自身和它的倒序数(反转过来)相加,再将得到的和与它的倒序数相加,一直重复,最终总会得到一个回文数。**题目需求:**任找一个 3 的倍数,把各位数字的立方相加,得出和,再把和的各位数字立方后相加,如此反复进行,最后必然出现“输入一个数字,并求解出此数字的所有因子,如 6的因子是 1,2,3,6 因子指能被数字整除的数字。题目需求:使用随机模块随机生成 20 个1~100之间的数字,并求解这20个数字相加的结果。把自己的家人的信息以文件的方式保存。原创 2023-12-06 15:32:44 · 130 阅读 · 0 评论 -
Python 几个简单的案例
输入一个数字,求解此数字的所有因子之和!如 6 的因子有 1,2,3,6,所有因子相加 1+2+3+6=12。请编写一个程序:用户一次性输入一串整数,整数之间以一个空格隔开,程序输出这串整数中重复次数最多那个。(若有多个不同整数重复次数最多且重复次数相同,则输出这些整数中数值最小的那个数)定义函数时的参数也称为形式参数,表示此函数可接收一个数据。如果函数需要数据,则传数据过去。此时的数据也称为实际参数。5 个班,每班有 5名学生,求解每一个班的学生平均分。一级考试的主要考核内容,就是几个常用函数。原创 2023-12-06 15:30:45 · 479 阅读 · 0 评论 -
Python 作业解答
*题目需求:**假设一个房间总共有 10 个人,每一个人都有编号(0~9),现按照如下规则排除人。所有人围成一圈,然后输入一个基数如3。顺时针报数,每次报到3的人将被排除掉的人将从房间内被移走。然后从被kill掉的下一个人重新报数,继续报3,再清除,直到剩余一人。求解最后留下来的人的编号是多少。上述问题名为约瑟夫环问题,是一个经典的数学问题。原创 2023-12-06 15:26:50 · 140 阅读 · 0 评论 -
Python <算法思想集结>之抽丝剥茧聊动态规划
1. 概述动态规划算法应用非常之广泛。对于算法学习者而言,不跨过动态规划这道门,不算真正了解算法。初接触动态规划者,理解其思想精髓会存在一定的难度,本文将通过一个案例,抽丝剥茧般和大家聊聊动态规划。动态规划算法有 3 个重要的概念:重叠子问题。最优子结构。状态转移。只有吃透这 3 个概念,才叫真正理解什么是动态规划。什么是重叠子问题?动态规划和分治算法有一个相似之处。将原问题分解成相似的子问题,在求解的过程中通过子问题的解求出原问题的解。动态规划与分治算法的区别:分治算法的原创 2022-05-30 09:33:07 · 138 阅读 · 0 评论 -
Python <算法思想集结>之初窥基础算法
1. 前言数据结构和算法是程序的 2 大基础结构,如果说数据是程序的汽油,算法则就是程序的发动机。什么是数据结构?指数据在计算机中的存储方式,数据的存储方式会影响到获取数据的便利性。现实生活中,如果把春夏秋冬的衣物全部堆放在一起,当需要某一季节的衣服时,寻找起来是困难的。如果分门别类、有条理地存放,则寻找起来会方便很多。同理,编写程序时,如果对程序所依赖的数据有条理、易于查找的方式进行存储,则在处理数据时,可以提升程序的整体性能。数据结构准确说是一个空间管理概念,同样的数据使用不同的数据结构时原创 2022-05-24 12:29:14 · 402 阅读 · 0 评论 -
Python 散列表查询_进入<哈希函数>为结界的世界
1. 前言哈希表或称为散列表,是一种常见的、使用频率非常高的数据存储方案。哈希表属于抽象数据结构,需要开发者按哈希表数据结构的存储要求进行 API 定制,对于大部分高级语言而言,都会提供已经实现好的、可直接使用的 API,如 JAVA 中有 MAP 集合、C++ 中的 MAP 容器,Python 中的字典……使用者可以使用 API 中的方法完成对哈希表的增、删、改、查……一系列操作。如何学习哈希表?可以从 2 个角度开始:**使用者角度:**只需要知道哈希表是基于键、值对存储的解决方案,另需要原创 2022-05-10 08:48:20 · 244 阅读 · 0 评论 -
Python 树表查找_千树万树梨花开,忽如一夜春风来(二叉排序树、平衡二叉树)
什么是树表查询?借助具有特殊性质的树数据结构进行关键字查找。本文所涉及到的特殊结构性质的树包括:二叉排序树。平衡二叉树。使用上述树结构存储数据时,因其本身对结点之间的关系以及顺序有特殊要求,也得益于这种限制,在查询某一个结点时会带来性能上的优势和操作上的方便。树表查询属于动态查找算法。所谓动态查找,不仅仅能很方便查询到目标结点。而且可以根据需要添加、删除结点,而不影响树的整体结构,也不会影响数据的查询。本文并不会深入讲解树数据结构的基本的概念,仅是站在使用的角度说清楚动态查询。阅读此文原创 2022-04-28 09:19:51 · 1741 阅读 · 0 评论 -
Python 查找算法_众里寻他千百度,蓦然回首那人却在灯火阑珊处(线性、二分,分块、插值查找算法)
查找算法是用来检索序列数据(群体)中是否存在给定的数据(关键字),常用查找算法有:线性查找: 线性查找也称为顺序查找,用于在无序数列中查找。二分查找: 二分查找也称为折半查找,其算法用于有序数列。插值查找: 插值查找是对二分查找算法的改进。分块查找: 又称为索引顺序查找,它是线性查找的改进版本。树表查找: 树表查找又可分二叉查找树、平衡二叉树查找。哈希查找: 哈希查找可以直接通过关键字查找到所需要数据。因树表查找、哈希查找的所需篇幅较多,就不在本文讲解。本文将详细介绍除树表、哈希之外的查找原创 2022-04-24 14:56:58 · 1652 阅读 · 0 评论 -
Python 一网打尽<排序算法>之堆排序算法中的树
本文从树数据结构说到二叉堆数据结构,再使用二叉堆的有序性对无序数列排序。1. 树树是最基本的数据结构,可以用树映射现实世界中一对多的群体关系。如公司的组织结构、网页中标签之间的关系、操作系统中文件与目录结构……都可以用树结构描述。树是由结点以及结点之间的关系所构成的集合。关于树结构的更多概念不是本文的主要内容,本文只关心树数据结构中的几个特殊变种:二叉树如果树中的任意结点(除叶子结点外)最多只有两个子结点,这样的树称为二叉树。满二叉树如果 二叉树中任意结点(除叶子结点外)都有 2 个子结点,则原创 2022-04-21 09:08:27 · 134 阅读 · 0 评论 -
Python 一网打尽<排序算法>之从希尔排序算法的分治哲学开始
1. 前言本文将介绍希尔排序、归并排序、基数排序(桶排序)、堆排序。在所有的排序算法中,冒泡、插入、选择属于相类似的排序算法,这类算法的共同点:通过不停地比较,再使用交换逻辑重新确定数据的位置。希尔、归并、快速排序算法也可归为同一类,它们的共同点都是建立在分治思想之上。把大问题分拆成小问题,解决所有小问题后,再合并每一个小问题的结果,最终得到对原始问题的解答。通俗而言:化整为零,各个击破。分治算法很有哲学蕴味:老祖宗所言 合久必分,分久必合,分开地目的是为了更好的合并。分治算法的求解流程:原创 2022-04-16 08:18:24 · 589 阅读 · 0 评论 -
Python 一网打尽<排序算法>之先从玩转冒泡排序开始
1. 前言所谓排序,就是把一个数据群体按个体数据的特征按从大到小或从小到大的顺序存放。排序在应用开发中很常见,如对商品按价格、人气、购买数量……显示。初学编程者,刚开始接触的第一个稍微有点难理解的算法应该是排序算法中的冒泡算法。我初学时,“脑思维”差点绕在 2 个循环结构的世界里出不来了。当时,老师要求我们死记冒泡的口诀,虽然有点搞笑,但是当时的知识层次只有那么点,口诀也许是最好的一种学习方式。当知识体系慢慢建全,对于冒泡排序的理解,自然也会从形式到本质的理解。本文先从冒泡排序的本质说起,不仅是原创 2022-04-12 10:24:58 · 605 阅读 · 0 评论 -
Python 图_系列之纵横对比 Bellman-Ford 和 Dijkstra 最短路径算法
1. 前言因无向、无加权图的任意顶点之间的最短路径由顶点之间的边数决定,可以直接使用原始定义的广度优先搜索算法查找。但是,无论是有向、还是无向,只要是加权图,最短路径长度的定义是:起点到终点之间所有路径中权重总和最小的那条路径。如下图所示,A 到 C 的最短路径并不是 A 直接到 C(权重是 9),而是 A 到 B 再到 C(权重是 7)。所以,需要在广度优先搜索算法的基础上进行算法升级后才能查找到。加权图的常用最短路径查找算法有:贝尔曼-福特(Bellman-Ford)算法Dijkstra原创 2022-04-07 16:01:11 · 1987 阅读 · 1 评论 -
Python 图_系列之基于<链接表>实现无向图最短路径搜索
图的常用存储方式有 2 种:邻接炬阵链接表邻接炬阵的优点和缺点都很明显。优点是简单、易理解,对于大部分图结构而言,都是稀疏的,使用炬阵存储空间浪费就较大。链接表的存储相比较邻接炬阵,使用起来更方便,对于空间的使用是刚好够用原则,不会产生太多空间浪费。操作起来,也是简单。本文将以链接表方式存储图结构,在此基础上实现无向图最短路径搜索。1. 链接表链接表的存储思路:使用链接表实现图的存储时,有主表和子表概念。主表: 用来存储图对象中的所有顶点数据。子表: 每一个顶点自身会维护一原创 2022-04-05 16:07:19 · 2419 阅读 · 2 评论 -
Python 图_系列之基于邻接矩阵实现广度、深度优先路径搜索算法
图是一种抽象数据结构,本质和树结构是一样的。图与树相比较,图具有封闭性,可以把树结构看成是图结构的前生。在树结构中,如果把兄弟节点之间或子节点之间横向连接,便构建成一个图。树适合描述从上向下的一对多的数据结构,如公司的组织结构。图适合描述更复杂的多对多数据结构,如复杂的群体社交关系。1. 图理论借助计算机解决现实世界中的问题时,除了要存储现实世界中的信息,还需要正确地描述信息之间的关系。如在开发地图程序时,需要在计算机中正确模拟出城市与城市、或城市中各道路之间的关系图。在此基础上,才有可能通原创 2022-04-02 12:18:17 · 4131 阅读 · 15 评论 -
Python turtle 模块可以编写游戏,是真的吗?
1. 前言turtle (小海龟) 是 Python 内置的一个绘图模块,其实它不仅可以用来绘图,还可以制作简单的小游戏,甚至可以当成简易的 GUI 模块,编写简单的 GUI 程序。本文使用 turtle 模块编写一个简单的小游戏,通过此程序的编写过程聊一聊对 turtle 模块的感悟。编写游戏,如果要做专业的、趣味性高的,还是请找 pygame,本文用 turtle 编写游戏的目的是为了深度理解 turtle 的功能。turtle 模块的使用相对而言较简单,对于基础方法不做讲解。只聊 turt原创 2022-03-30 21:44:54 · 6281 阅读 · 2 评论 -
Python 分形算法,代码里开出来的数学之花
1. 前言分形几何是几何数学中的一个分支,也称大自然几何学,由著名数学家本华曼德勃罗( 法语:BenoitB.Mandelbrot)在 1975 年构思和发展出来的一种新的几何学。分形几何是对大自然中微观与宏观和谐统一之美的发现,分形几何最大的特点:整体与局部的相似性: 一个完整的图形是由诸多相似的微图形组成,而整体图形又是微图形的放大。局部是整体的缩影,整体是局部的放大。具有自我叠加性: 整体图形是由微图形不断重复叠加构成,且具有无限叠加能力。什么是分形算法?所谓分形算法就原创 2022-03-28 23:43:52 · 3297 阅读 · 0 评论 -
Python 细聊从暴力(BF)字符串匹配算法到 KMP 算法之间的精妙变化
1. 字符串匹配算法所谓字符串匹配算法,简单地说就是在一个目标字符串中查找是否存在另一个模式字符串。如在字符串 “ABCDEFG” 中查找是否存在 “EF” 字符串。可以把字符串 “ABCDEFG” 称为原始(目标)字符串,“EF” 称为子字符串或模式字符串。本文试图通过几种字符串匹配算法的算法差异性来探究字符串匹配算法的本质。常见的字符串匹配算法:BF(Brute Force,暴力检索算法)RK (Robin-Karp 算法)KMP (D.E.Knuth、J.H.Morris、V.R.P原创 2022-03-25 18:51:03 · 2625 阅读 · 0 评论 -
Python 基础知识自检,你离深入掌握 Python 还有多远
1. 模块化编程思想模块化编程是 Python 的基本思想。初学 Python,都应该使用过小海龟、随机、数学模块。使用模块之前,需要导入模块,然后根据自己的问题需要使用这些模块。Python 提供了大量的模块库,这些模块中有 Python 语言系统自带的、也有第三方提供的、也可以由开发者根据需要创建。内置模块,直接拿来使用就可以。第三方模块,需要使用 Python 自带的安装程序 pip(pip3 是 pip 的升级版本) 安装。pip3 install 模块pip 或 pip3 是命令行程原创 2022-03-21 23:18:47 · 743 阅读 · 0 评论 -
Python 基于 selenium 实现商品价格对比
1. 前言selenium 原本是一款自动化测试工具,因其出色的页面数据解析和用户行为模拟能力而常用于爬虫程序中,致使爬虫程序的爬取过程更简单、快捷。爬虫程序与其它类型程序相比较,本质一样,为数据提供处理逻辑,只是爬虫程序的数据来源于 HTML 代码片段中。怎样准确查找到页面中数据所在的标签(或叫节点、元素、组件)就成了爬虫程序的关键,只有这一步成立,后续的数据提取、清洗、汇总才有可能。相比较于 Beaufulsoup 模块, selenium 底层依靠的是强大的浏览器引擎,在页面解析能力上颇有王者原创 2022-03-19 09:25:05 · 1993 阅读 · 0 评论 -
Python 让书法作品和 PIL 库来一场美丽的邂逅
1. 前言不久之前写过一篇文章,详细介绍了 PIL 库中的 Image 模块的使用。曾经学习过、使用过一段时间的 PS,认识 PIL 后,觉得这这玩意太好玩了,有了想使用 PIL 库实现 PS 中的图片特效的想法。好,现在直接上案例,不另废其它话。2. 遮罩图片本文案例中所用的图片素材,取自于我舅舅的书法作品(有点小名气的书法家)。第一张书法作品:心佛。这张心中有佛的作品,我只需要上面的佛字,进行后续操作之前,首要任务是截取佛字,也就整张图片的上面一部分。这里使用两种方案实现。2.1 使用原创 2022-03-15 23:10:34 · 4855 阅读 · 0 评论 -
Python 从底层结构聊 Beautiful Soup 4(内置豆瓣最新电影排行榜爬取案例)
1. 前言什么是 Beautiful Soup 4 ?Beautiful Soup 4(简称 BS4,后面的 4 表示最新版本)是一个 Python 第三方库,具有解析 HTML 页面的功能,爬虫程序可以使用 BS4 分析页面无素、精准查找出所需要的页面数据。有 BS4 的爬虫程序爬行过程惬意且轻快。BS4 特点是功能强大、使用简单。相比较只使用正则表达式的费心费力,BS4 有着弹指一挥间的豪迈和潇洒。2. 安装 Beautiful Soup 4BS4 是 Python 第三库,使用之前需要安装原创 2022-03-15 10:34:10 · 2208 阅读 · 0 评论 -
Python 细聊可以媲美 PS 的 PIL 图片处理库
1 . 前言PIL 是 Python Image Library 的简称。PIL 库中提供了诸多用来处理图片的模块,可以对图片做类似于 PS(Photoshop) 的编辑。比如:改变图像大小、旋转图像、图像格式转换,转换颜色通道,图像增强,直方图处理,插值和滤波等等。PIL 是第三方库,使用之前需要先安装。pip install pillow2. 颜色模式继续之前先解一个重要概念:颜色模式。所谓颜色模式:指在计算机中如何模拟出现实世界中的各种颜色,或准确讲是一种颜色生成算法。常用的颜色模原创 2022-03-11 19:31:16 · 5823 阅读 · 0 评论 -
Python 完美诠释“高内聚“概念的 IO 流 API 体系结构
1. 前言第一次接触 Python 语言的 IO API 时,是惊艳的。相比较其它语言所提供的 IO 流 API 。无论是站在使用者的角度还是站在底层设计者的角度,都可以称得上无与伦比。很多人在学习 JAVA 语言中的 IO 流 API 时,几乎是崩溃的。其 API 太多、API 之间的关系过于复杂。类的层次结构需要花费很多时间才能搞明白。API 设计者未免有炫技之嫌。而 Python 的 IO 流操作,才真正应了哪句话:人生苦短,我学 python 。以 open( ) 函数 为操作起点,便捷原创 2022-03-08 20:00:29 · 680 阅读 · 0 评论 -
Python “爬虫“出发前的装备之二数据先行( Requests 模块)
1. 概念爬虫不是动物,而是一种计算机程序。这种程序有自己特定的功能,能按照使用者给定的一系列规则自行浏览万维网并获取需要的信息。此类程序被称为 网络爬虫(web crawler) 或 网络蜘蛛(spider)。它具有智能分析能力,也称为 机器人程序 。爬虫的应用应用领域:如百度、谷歌等以搜索为主的公司,就是利用其自行研发的爬虫程序在互联网上对网页中的数据进行爬取、分析、归类、存储……再提供给用户使用。新闻聚合应用也是利用爬虫程序爬取各新闻网站上的新闻信息,进行分检归类后提供给使用者。爬虫程序原创 2022-03-04 08:58:58 · 124 阅读 · 0 评论 -
Python 基于 TCP 传输协议的网络通信实现
1、基础概念什么是网络编程?指在网络环境中,如何实现不在同一物理位置中的计算机之间进行数据通信如果要保证数据通信顺利完成,则需要先了解如下几个概念:1.1 协议不同计算机内的进程之间进行数据通信时,需要先对数据进行封装或打包后方可以进行传输。所谓协议指通信双方需要共同遵守的数据打包格式。如同现实世界里邮寄商品一样:商品相当于要传送给对方的数据:在传输之前,需要商品拥有者对商品进行打包,并在打包时填写上收件人地址、收什人姓名、发件人地址……这是第一次封装,在此次封装过程中遵原创 2022-03-01 21:11:20 · 1468 阅读 · 0 评论 -
Python “爬虫“出发前的装备之一正则表达式
1. 正则表达式正则表达式是一种模板表达式语言通过定义规则去匹配、查找、替换、分割一个长字符串中特定的子字符信息。如在一篇文章中查找出所有合法的电子邮箱地址,则可以先用正则表达式定义一个电子邮箱规则,然后再使用这个规则在整个字符串中查找。爬虫程序一般都会借助正则表达式定义的规则在爬出来的内容中做精细化筛检。正则表达式有自己独立于其它计算机语言的语法结构,且大部分计算机编程语言都提供有对正则表达式的支持。如 Java、JavaScript、python……1.1 正则表达式语法普通字符匹配规则原创 2022-03-01 21:04:04 · 56 阅读 · 0 评论 -
Python 面向对象编程之封装的艺术
1. 面向对象编程OOP ( Object Oriented Programming) 即面向对象编程。面向对象编程是一种编码思想,或是一种代码组织方式。如同编辑文章时,可以选择分段、分节的方式让文章看起来有层次、更方便阅读或修改。编码时可以选择使用 OOP 方案,也可以选择不使用。如同行文一样,使用或不使用都不会对核心逻辑产生影响。面向对象编程有自己的核心编码理论,对于任何一种计算机语言而言,如果选择支持此理论,则称此计算机语言支持面向对象编程。如 C++、Java、Python…….原创 2022-03-01 20:58:23 · 265 阅读 · 0 评论