Python
文章平均质量分 88
饼干叔叔@海洋
义务编程教练
展开
-
【Python】多态与抽象类
多态(polymorphism)是面向对象程序设计的一个重要概念,源自希腊语,意即“有多种形态”。对于程序设计而言,大致可以理解为:即使你不知道变量指向哪种形态,也能够对其执行操作,而且操作的行为将随对象的类型不同而不同。原创 2022-09-28 23:05:03 · 254 阅读 · 0 评论 -
汉诺塔递归算法/搬金盘的婆罗门 - Python实现
法国数学家爱德华·卢卡斯曾转述过一个印度的古老传说:在世界中心贝拿勒斯(在印度北部)的圣庙里,一块黄铜板上插着三根金刚石柱。印度教的主神梵天在创造世界的时候,在其中一根石柱上从下到上的穿好了由大到小的64块金盘,这就是所谓的汉诺塔 - Hanoi Tower。原创 2022-09-24 18:42:57 · 430 阅读 · 0 评论 -
【Python】绘制二元函数曲面 ~ numpy
【Python】绘制二元函数曲面 ~ numpy原创 2022-09-21 16:41:19 · 382 阅读 · 0 评论 -
【Python】一棵递归分形树的建造,一点点数据结构,一点点算法
一棵递归分形树的建造,一点点数据结构,一点点算法原创 2022-09-03 10:15:06 · 175 阅读 · 0 评论 -
先睹为快_Mandelbrot集
简易版本的Mandelbrot集原创 2022-08-30 12:41:44 · 199 阅读 · 0 评论 -
Windows环境下Qt6 C++开发环境的在线下载与安装
如果操作者受限于网络速度,在线安装失败,也可以尝试离线安装原创 2022-08-30 00:49:24 · 1124 阅读 · 0 评论 -
【Python】中的类序列化,迭代器和生成器
对于list、tuple、str这样的类型,我们可以通过[]来访问其特定下标的元素(item);可以通过len()函数来询问其内部包含的元素个数;还可以通过del来删除指定位置的元素。原创 2022-08-30 00:28:09 · 306 阅读 · 0 评论 -
【Python】使用投点法计算圆周率 发现圆周率
在历史的长河里,从古至今的数学家们尝试了无数种计算圆周率的方法。其中,法国数学家布冯(1707-1788)和拉普拉斯(1749-1827)提出的方法比较有趣。原创 2022-08-30 00:11:04 · 1135 阅读 · 0 评论 -
【Python】先玩个魔术 ,再讲二进制 - 心灵感应魔法
哈利波特之心灵感应魔法是一种常见的儿童益智游戏。表演者首先会要求观众在心中默想一个60以内的整数,然后依次将下述卡片1到卡片6出示给观众看,并询问观众他所默想的数字是否在卡片上。在卡片出示的过程中,卡片是背对表演者的,即表演者是看不到卡片的。在听完观众的6个回答之后,表演者即可"猜"出观众默想的数字,仿佛掌握了"读心术"。...原创 2022-08-28 23:47:16 · 1899 阅读 · 0 评论 -
Python趣味案例 - 抓扑克牌的手气
扑克是流行全世界的一种纸牌。一副扑克牌有54张牌,其中52张是正牌,另2张是副牌(大王和小王)。52张正牌又均分为13张1组,共有黑桃、红桃、梅花、方块四组。每组花色的牌包括从2-10以及A、J、Q、K标示的13张牌。在比较流行的斗地主游戏中,三个玩家中除庄家外,另外两个玩家一人要拿17张牌。如果洗牌过程是完美的,那么对于一个玩家而言,拿到哪十七张牌是完全随机的。...原创 2022-08-27 01:56:08 · 1660 阅读 · 0 评论 -
Python生物医学专业案例 - 细胞计数
在上公共的编程基础课时,我们经常受到学生的质疑: 我们学这玩艺儿有什么用? 学生的疑问来自于“他没有从课程中得到通过程序设计来解决本专业问题的体验”。重庆大学的教学团队设计了很多与各专业紧密相关的程序设计案例,我们会陆续分享出来,供大家参考。...原创 2022-08-27 01:35:34 · 2946 阅读 · 1 评论 -
当Python遇到分形数学魔法 --> 树叶
迭代函数系统 - iterated function system是一种创建分形图案的简单算法。下面我们用迭代函数系统来凭"空"生成一片树叶。下面的4组线性函数均可以根据一个二维平面点的点坐标(xi,yi)计算得到一个新的点坐标(xi+1,yi+1)。......原创 2022-08-27 01:02:12 · 692 阅读 · 0 评论 -
Python教学案例 - 三天打渔、两天晒网
郭、王两位大侠同上终南山习武,两人最初的战力值均为100。王大侠骨骼清奇,天赋较高,每练功一天,战力增加2‰,郭大侠比较愚笨,每练功一天,战力增加1‰。如果休假一天不练,两人的战力均减少1‰。相较于王大侠,郭大侠更加勤奋,日日练功,从不休息,而王大侠,则三天打渔,两天晒网,也就是每5天的前三天练功,后两天休假。......原创 2022-08-27 00:42:33 · 3643 阅读 · 0 评论 -
那门用Python讲授的程序设计课程能带给学生什么
那门用Python讲授的程序设计课程能带给学生什么?海洋饼干叔叔 @ 重庆大学最近这几年,Python火上天了。历史上,即便是Python它菩提老祖C语言(Python解释器是用C语言写的),也从未那么火过,毕竞在C语言刚出来那个年代,计算机只有很有钱的人家(比尔盖茨他妈是IBM董事,社会活动家)才有,编程还是少数技术人员拥有的特殊技能。Python火起来的最大原因是所谓人生苦短,我用Python。易学易用的特点使得编程不再是需要专业训练的特殊技能,下至高校教师,家里的小祖宗,上至家里管钱管厨房的领导原创 2020-08-26 18:23:31 · 704 阅读 · 0 评论 -
基于PyQt5的图形界面程序设计 以冒泡排序为例 - Python多线程
本书同名免费MOOC《Python编程基础及应用》在哔哩哔哩(B站)热播,作者带着你学。版权声明:本文内容引用自作者的图书《Python编程基础及应用》(高等教育出版社)。本文可以在互联网上转载传播,但必须包含文中的版权声明;本文不可以以纸质出版为目的进行摘抄或改编。附录A.3. 实践 - 冒泡及轻者上浮Python自带有标准GUI-图形用户界面工具包Tkinter。但Tkinter的功能相对比较简单,界面也不够漂亮,对于规模大一点的GUI应用略显不足。在当前的Python生态圈,如果读者需要一原创 2020-07-30 15:10:38 · 1412 阅读 · 1 评论 -
Visual Studio Code的简单使用
本文描述Visual Studio Code的基本使用方法。版权声明本文可以在互联网上自由转载,但必须:注明出处(作者:海洋饼干叔叔)并包含指向本页面的链接。本文不可以以纸质出版为目的进行改编、摘抄。本文节选自作者的《Python编程基础及应用》视频教程。1.打开或者创建项目目录Visual Studio Code是一个跨语言的代码编辑工具,可以简单地使用目录-Folder来管理程...原创 2020-01-12 12:28:13 · 3284 阅读 · 0 评论 -
Visual Studio Code的下载与安装
本文描述Visual Studio Code的下载及安装方法。版权声明本文可以在互联网上自由转载,但必须:注明出处(作者:海洋饼干叔叔)并包含指向本页面的链接。本文不可以以纸质出版为目的进行改编、摘抄。本文节选自作者的《Python编程基础及应用》视频教程。Visual Studio Code是由微软公司提供的免费代码编辑工具,可以在下述网址下载。同样地,读者需要根据自己的操作系统类...原创 2020-01-12 12:24:20 · 7697 阅读 · 1 评论 -
Visual Studio Code的扩展安装及配置 - Python
本文描述Visual Studio Code的扩展安装及配置方法。版权声明本文可以在互联网上自由转载,但必须:注明出处(作者:海洋饼干叔叔)并包含指向本页面的链接。本文不可以以纸质出版为目的进行改编、摘抄。本文节选自作者的《Python编程基础及应用》视频教程。界面左侧的这个图标用于管理Visual Studio Code的扩展 -Extensions。...原创 2020-01-12 12:21:33 · 1099 阅读 · 0 评论 -
浅尝则止 - SciPy科学计算
21. 浅尝则止 - SciPy科学计算SciPy以NumPy为基础,提供了众多数学、科学、工程计算用的模块,包括但不限于:线性代数、常微分方程求解、信号处理、图像处理、稀疏矩阵处理。本章适合那些有较好高等数学、线性代数、概率论基础的工科学生或从业者阅读。其他读者可以跳过,不影响后续章节。为减轻“数学恐惧症”患者的恐惧,作者尽量选择相对容易的“数学”案例来进行解读。版权声明本文可以在互联...原创 2020-01-12 12:16:57 · 918 阅读 · 0 评论 -
见微智著 - 从一个小例子看Python中的单元测试
单元测试据统计,由于软件缺陷(bug),美国经济每年在浪费生产力、返工和实际毁坏上损失了数十亿美元。近期最严重的案例是波音737 Max飞机的两次重大坠机事故,共造成了346人死亡。经过初步调查,该公司的专用软件难辞其咎。因此,通过软件工程方法以及测试减少软件的缺陷,十分重要。版权声明本文可以在互联网上自由转载,但必须:注明出处(作者:海洋饼干叔叔)并包含指向本页面的链接。本文不可以以纸...原创 2020-01-12 12:10:34 · 406 阅读 · 0 评论 -
Python解释器的简单使用
本文简单描述Python官方解释器的使用方法。版权声明本文可以在互联网上自由转载,但必须:注明出处(作者:海洋饼干叔叔)并包含指向本页面的链接。本文不可以以纸质出版为目的进行改编、摘抄。本文节选自作者的《Python编程基础及应用》视频教程。在Windows系统下,Python解释器可以在终端命令行中启动。读者可以在Windows系统菜单中选择命令提示符,以进入终端。在Mac OS ...原创 2020-01-12 12:09:36 · 2101 阅读 · 0 评论 -
Python, Cython绘制美妙绝伦的Mandelbrot集, 曼德博集分形图案
上世纪60-70年代,美籍数学家曼德博 - Benoit B. Mandelbrot几乎单枪匹马的创立了一个新的数学分支,即分形几何学 - fractal geometry。这个新的数学分支有助于人类探索物理现象背后的数学规律,分形混沌之旋风,横扫数学、理化、生物、大气、海洋以至社会学科,在音乐、美术领域也产生了一定的影响。分形艺术 - fractal art不同于普通的电脑绘画,它利用分形几何...原创 2020-01-12 12:06:58 · 1007 阅读 · 0 评论 -
Python官方解释器的安装 - Windows
本文描述Python官方解释器的下载及安装方法,主要考虑Windows系统。Mac OS X以及Linux系统也有涉及。版权声明本文可以在互联网上自由转载,但必须:注明出处(作者:海洋饼干叔叔)并包含指向本页面的链接。本文不可以以纸质出版为目的进行改编、摘抄。本文节选自作者的《Python编程基础及应用》视频教程。Python解释器软件可以在www.python.org官网上下载。...原创 2020-01-12 12:03:21 · 816 阅读 · 0 评论 -
实践 - 使用Python画一棵递归分形树
本实践中,作者要介绍用Python在Tkinter上画一棵树的方法。通过本实践,读者可以:练习面向对象的程序设计方法;了解生成器的使用方法;运用递归函数;了解Tkinter画图的基本方法;以及学习“树”这种重要的数据结构。版权声明本文可以在互联网上自由转载,但必须:注明出处(作者:海洋饼干叔叔)并包含指向本页面的链接。本文不可以以纸质出版为目的进行改编、摘抄。本文节选自作者的《Pyth...原创 2020-01-12 12:00:13 · 3190 阅读 · 0 评论 -
PyQt扩展在VSC中的配置及基本使用方法
本文介绍在Visual Studio Code中PyQt扩展的配置及基本使用方法。版权声明本文可以在互联网上自由转载,但必须:注明出处(作者:海洋饼干叔叔)并包含指向本页面的链接。本文不可以以纸质出版为目的进行改编、摘抄。本文节选自作者的《Python编程基础及应用》视频教程。PyQt工具简介Qt/PyQt中包括一系列的工具,其中:Qt Designer: 用即见即所得的方式设...原创 2020-01-12 11:56:08 · 853 阅读 · 0 评论 -
Lorenz洛伦兹微分方程的Python求解
本小节求解Lorenz微分方程:在“数学之美”那一章里,为方便读者理解,Lorenz吸引子轨迹的计算采用了比较“原始”的方法。采用integrate模块中的odeint()函数可以更加方便地完成计算。Lorenz吸引子由下述三个微分方程定义:dxdt=σ(y−x),dydt=x(ρ−z)−y,dzdt=xy−βz\frac{dx}{dt}=\sigma(y-x), \quad \frac...原创 2020-01-12 11:52:51 · 5671 阅读 · 0 评论 -
Python求解数值积分-定积分求解
本小节求解下述定积分:∫0.74(cos(2πx)e−x+1.2)dx\int_{0.7}^4(cos(2πx)e^{-x}+1.2)\mathrm{d}x∫0.74(cos(2πx)e−x+1.2)dx版权声明本文可以在互联网上自由转载,但必须:注明出处(作者:海洋饼干叔叔)并包含指向本页面的链接。本文不可以以纸质出版为目的进行改编、摘抄。本文节选自作者的《Python编...原创 2020-01-12 11:51:02 · 10527 阅读 · 0 评论 -
Visual Studio Code里《Python编程基础及应用》随书代码的打开及使用
Visual Studio Code里《Python编程基础及应用》随书代码的打开及使用版权声明本文可以在互联网上自由转载,但必须:注明出处(作者:海洋饼干叔叔)并包含指向本页面的链接。本文不可以以纸质出版为目的进行改编、摘抄。本文节选自作者的《Python编程基础及应用》视频教程。1. 代码下载https://codelearn.club/2019/06/pycodedown/...原创 2020-01-12 11:49:31 · 1395 阅读 · 0 评论 -
Python下如何创建一个文本格式的进度条
本文讨论Python下如何创建一个文本格式的进度条,就像pip下载时的进度条一样。版权声明本文可以在互联网上自由转载,但必须:注明出处(作者:海洋饼干叔叔)并包含指向本页面的链接。本文不可以以纸质出版为目的进行改编、摘抄。本文节选自作者的《Python编程基础及应用》视频教程。微实践 - 文本进度条当计算机执行一个耗时较长的任务时,通常需要显示一个进度条给操作者,便于操作者评估执...原创 2020-01-12 11:46:13 · 379 阅读 · 0 评论 -
加速扩展库下载 - 修改pip的安装源
pip通过位于国外的源服务器下载扩展安装包的速度特别慢,对初学者不太友好。上述问题可以通过修改pip的安装源至国内的镜像服务器来解决。[本篇文章的内容由重庆大学2018级罗少航同学书写]本文节选自作者的《Python编程基础及应用》视频教程。1. 先定位并找到你的Python解释器安装路径2. 新建名为pip的文件夹并打开,此时效果应类似下图3. 确保如下图所示的复选框被选中。...原创 2020-01-12 11:42:55 · 227 阅读 · 0 评论 -
使用pip安装Python扩展库的方法
本文讨论Python扩展库的安装方法版权声明本文可以在互联网上自由转载,但必须:注明出处(作者:海洋饼干叔叔)并包含指向本页面的链接。本文不可以以纸质出版为目的进行改编、摘抄。本文节选自作者的《Python编程基础及应用》视频教程。使用pip进行安装对于Windows, 在开始菜单中找到并进入命令提示符,对于Linux或者Mac OS X, 请进入终端-Terminal.在命令...原创 2020-01-12 11:39:50 · 7425 阅读 · 0 评论 -
数学之美 - Python视角下的Peter de Jong吸引子
据说蝴蝶扇动翅膀这样一件小事,可能最终会引起对面半球的一场飓风。 — 电影《蝴蝶效应》上面这行话来源于2004年的电影《蝴蝶效应》的开篇字幕。更早期,这段话则与气象学家Edward Lorenz有关。他发现简单的热对流现象居然能引起令人无法想象的气象变化,在对相关发现进行数学分析后,Lorenz于1963年提出了混沌理论 - Chaos Theory。混沌理论认...原创 2020-01-12 11:35:27 · 842 阅读 · 0 评论 -
说说程序中的命名规则 - 以Python为例
程序里有很多东西需要命名, 良好的命名习惯可以提高编程效率; 减少出错; 良好命名的程序清晰易读。 好的名称可以提供很多有价值的信息。本文解释作者在《Python编程基础及应用》一书中所使用的命名规则。本文节选自作者的《Python编程基础及应用》视频教程。命名示例变量、类的数据成员iSum sName ...原创 2020-01-12 11:30:25 · 409 阅读 · 0 评论 -
人工智能的味道 - 图像风格迁移 by Python
22. 人工智能的味道 - 图像风格迁移Python是人工智能编程的首选语言,至少当作者在键盘上敲下这行话时,这是事实。作为一本Python基础入门性质的教科书,本书无法就Python在人工智能与深度学习中的应用展开深入讨论。要理解深度学习的内部细节,需要复杂的数学知识。不过作为应用层面的开发者,读者或者不需要理解深度学习复杂的数学细节,简单借助于开源的工具包和模型,也可以享受到人工智能的益处。...原创 2020-01-12 11:25:41 · 1099 阅读 · 0 评论 -
使用numpy进行9宫格图像拼接
本节内容要用到opencv-python模块,请先行安装。本例程中使用到的图片保存在pictures子目录下。本例的任务是要将9张JPG格式图片按三行三列拼接成下述九宫格。版权声明本文可以在互联网上自由转载,但必须:注明出处(作者:海洋饼干叔叔)并包含指向本页面的链接。本文不可以以纸质出版为目的进行改编、摘抄。本文节选自作者的《Python编程基础及应用》视频教程。微实践:九宫格图像...原创 2020-01-12 11:21:55 · 1376 阅读 · 0 评论 -
numpy,matplotlib - Python绘制二元函数曲面
微实践:绘制二元函数曲面我们将演示如何借助于ufunc的广播运算计算下述二元函数的在一个xy平面上的值并将其绘制成3D曲面。其中,x和y的取值范围均为[-2,+2]。z=xe−x2−y2z = xe^{-x^{2}-y^{2}}z=xe−x2−y2为了达到目的,我们需要一个二维的结果数组z,其元素的下标对应参数x,y的取值,其元素的值则为上述函数的函数值。这可以通过广播计算来得到。版...原创 2020-01-12 11:18:21 · 4060 阅读 · 1 评论 -
Python实现 - 斐波那契数列与函数的增长
微实践 - 一对兔兔与函数的增长数学家列昂纳多·斐波那契研究了野外兔子的繁殖问题:一般而言,兔子出生两个月后,就有繁殖能力。假设一对兔子每个月能生出一对小兔子而且所有兔子都不死。如果现在往一片没有兔子的新大陆上放生一对新生的兔子,那么一年以后那个大陆上有多少只兔子?两年以后呢?版权声明本文可以在互联网上自由转载,但必须:注明出处(作者:海洋饼干叔叔)并包含指向本页面的链接。本文不可以以纸...原创 2020-01-12 11:16:14 · 916 阅读 · 0 评论 -
Python下的异常处理及错误日志记录
Python使用被称为异常的特殊对象来表达执行期间发现的错误。当这些异常没有被捕获并处理时,程序将停止,并向控制台打印错误信息。这个错误信息通常是一个traceback,包含了异常的类型,以及诱发这个异常的代码位置及调用栈细节。版权声明本文可以在互联网上自由转载,但必须:注明出处(作者:海洋饼干叔叔)并包含指向本页面的链接。本文不可以以纸质出版为目的进行改编、摘抄。本文节选自作者的《P...原创 2020-01-12 11:13:35 · 1693 阅读 · 0 评论 -
Python - SciPy - ECG信号的谱分析及数字滤波
本节的阅读需要傅里叶级数及傅里叶变换的相关数学知识。示范代码目录下有一个ecgsignal.dat文件,这里存储了作者采集的一段人体心电信号-ECG。这个文件以4字节浮点数存储样本,单位为μV,采样总数 = 文件大小 / 4,采样频率 = 2000样本/秒。需要说明的是,这个心电信号不是标准的医用心电信号,作者在一台其它用途的医用电生理设备上,用左手拿着正电极,右手拿着负电极,简单记录了上述信号...原创 2020-01-12 11:10:41 · 6496 阅读 · 5 评论 -
深入讨论Python中的序列切片语法
本小节深入探讨Python中的序列切片语法。切片-slicing可以获取序列的子序列(列表,字符串…):numbers = [x for x in range(10)]print("numbers:",numbers)print("numbers[3:9]:",numbers[3:9])print("numbers[3:]:",numbers[3:])print("numbers[:9...原创 2020-01-11 22:54:30 · 423 阅读 · 0 评论