![](https://img-blog.csdnimg.cn/cde74d7f40ba4fb4a4681b517a77a7e3.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
python零基础
文章平均质量分 90
小甲鱼
XILALIKE
这个作者很懒,什么都没留下…
展开
-
《零基础入门学习Python》第077讲:Tkinter 模块:标准对话框
注:这三个模块原来是独立的,分别是 tkMessageBox、tkFileDialog 和 tkColorChooser,需要导入才能使用。在 Python3 之后,这些模块全部被收归到 tkinter 模块的麾下。下边的所有演示都是在 Python3 下实现,如果你用的是 Python2.x,请在文件头 import tkMessageBox,然后将 messagebox 替换为 tkMessageBox 即可。原创 2023-08-03 00:26:07 · 391 阅读 · 0 评论 -
《零基础入门学习Python》第076讲:GUI的终极选择:Tkinter13
这节课我们来学习 Tkinter 的布局管理器,那什么是布局管理器呢?说白了,就是用于管理你的组件如何排列。Tkinter 提供了 3 大布局管理器:pack、grid 和 place。原创 2023-08-03 00:25:12 · 91 阅读 · 0 评论 -
《零基础入门学习Python》第075讲:GUI的终极选择:Tkinter12
Tkinter 的基本组件我们已经介绍得七七八八了,剩下的一些我们在这节课全部都会讲解完毕。原创 2023-08-02 22:51:11 · 355 阅读 · 0 评论 -
《零基础入门学习Python》第074讲:GUI的终极选择:Tkinter11
捕获鼠标在组件上的运动轨迹print("当前位置为:", event.x, event.y)截止目前为止,我们都是泛泛的跟大家说怎么用,现在我们主要谈一下语法性的东西啦,首先,我们刚才的Button、Key、KeyPress、Motion 都称之为 时间序列。Tkinter 使用一种称为事件序列的机制来允许用户定义事件,用户需使用 bind() 方法将具体的事件序列与自定义的方法相绑定。原创 2023-08-01 10:41:40 · 98 阅读 · 0 评论 -
《零基础入门学习Python》第073讲:GUI的终极选择:Tkinter10
菜单不仅可以添加我们普通的命令行(add_command),事实上我们还可以添加 像 Checkbutton(多选按钮)和 Radiobutton(单选按钮)这样子的菜单项,它们的用法就和 Checkbutton 和 Radiobutton 组件是差不多的。我说的是正式开发中,在学习中,没事搞一搞是可以让我们学习到更多知识的。传统的菜单有大家熟悉的 File,Edit,Help等,点开之后,是下拉菜单,今天我们就来学习使用 tkinter 如何制作这样子的菜单。我们来看一下它实现的效果就知道了。原创 2023-07-30 16:01:40 · 150 阅读 · 1 评论 -
《零基础入门学习Python》第072讲:GUI的终极选择:Tkinter9
像Windows 自带的画图程序,我们的用户可以在上面随心所欲的绘制自己想要的图画,大家仔细想想,其实画图程序的实现原理很简单,就是通过获取用户拖拽鼠标时候的每一个位置(每个坐标),然后每个坐标对应绘制上一个点就可以了。这就提供了用户进行自由的绘制,但是有一点,tkinter 并没有提供支持画点的方法,但是呢,我们可以通过绘制一个超小的圆来表示一个点。显示列表决定当两个画布对象重叠的时候是如何覆盖的(默认情况下新创建的会覆盖旧的画布对象的重叠部分,即位于显示列表上方的画布对象将覆盖下方那个)。原创 2023-07-30 13:06:19 · 108 阅读 · 0 评论 -
《零基础入门学习Python》第071讲:GUI的终极选择:Tkinter8
我们今天讲解 Canvas 组件,一个可以让你任性的组件,一个可以让你随心所欲去绘制界面的组件,Canvas 是一个通用的组件,通常用于显示以及编辑图形,你可以用它来绘制直线、三角形、矩形、多边形甚至是绘制其他的组件都可以。首先,我们创建一个 Canvas 对象,叫做 w,这个对象来自于 root ,设置宽度 200,高度 100,如果就这样运行的话,得到的就是一个空白的画布,背景颜色和窗口的背景颜色是一样的,所以我们看不到它在哪里,我们可以通过设置它的 background ,设置为 white。原创 2023-07-29 15:56:27 · 136 阅读 · 0 评论 -
《零基础入门学习Python》第069讲:GUI的终极选择:Tkinter6
绘制单行文本我们当然知道要使用 Label 组件,多行选项我们使用 Listbox 组件,输入框用 Entry 组件,Button 就是按钮,Radiobutton 和 Checkbutton 分别对应单选和多选的情况,然后呢,有多个组件,我们还可以使用 Frame 和 LabelFrame 把它们构成一个框架,之后我们还学习了两个会滚的组件:Scrollbar 和 Scale,Scrollbar 就是滚动条,Scale 就是提供一个范围,让用户在这个范围内选择一个确切的值。原创 2023-07-27 09:32:51 · 141 阅读 · 0 评论 -
《零基础入门学习Python》第068讲:GUI的终极选择:Tkinter5
当你希望用户输入某个范围内的一个数字的时候,你可能会使用Entry 组件,但是Entry 组件不能限制一个范围,你只能给出提示,然后对得到的数字进行检测,这样不方便。如你所见,刚开始创建出来的时候,是空的,里面什么都没有,没有任何选项,所以我们要做的第一件事就是给它添加选项,添加选项同样是用 insert() 方法, insert() 方法 有两个参数,第一个参数就是添加的位置,第二个参数就是添加的内容。虽然它和滚动条长得像,同样都可以滚,都有滑块,都是条形的,但是它们的应用范围可是不一样的。原创 2023-07-26 17:17:56 · 103 阅读 · 0 评论 -
《零基础入门学习Python》第067讲:GUI的终极选择:Tkinter4
我们学了还几个 tkinter 的组件之后,你自然就会发现,其实,很多方法和选项,它们之间都是通用的,这些选项对于不同的组件来说,名字一样,内容也一样。我们首先生成两个 Label ,来自于 root 窗口,显示作品和作者,关于布局,我们传统的做法是用两个 Frame 把它包围起来,现在教你一个新的方法,tkinter 总共提供了三种不同的 布局组件的方法,一种就是我们熟悉的。其中,f 就是你“冷却后”的验证函数名,s1、s2、s3 这些是额外的选项,这些选项会作为参数依次传给 f 函数。原创 2023-07-26 17:17:09 · 160 阅读 · 0 评论 -
《零基础入门学习Python》第065讲:GUI的终极选择:Tkinter2
前面我们说过,Label 组件是用于在界面上输出描述性的标签,例如:提示用户“你所下载的影片含有未成年人限制的内容,请满18周岁后再点击观看!4. 如果该选项设置为 "bottom","left","right" 或 "top",那么图像显示在文本的旁边(如 "bottom",则图像在文本的下方)相信大家现在已经有一个大问题了,这么多选项,你演示这么多,我怎么全部记得住啊,没关系,不要怕,我这里已经给大家准备好了,我这里已经把所有选项的用法以及功能都给大家列举出来了,还举了例子,大家随时查阅即可。原创 2023-07-24 15:55:23 · 89 阅读 · 0 评论 -
《零基础入门学习Python》第064讲:GUI的终极选择:Tkinter
接下来,创建一个 按钮 组件,使用tk.Button() 方法,这个按钮就放在 frame 框架中,按钮文本为 “打招呼”,fg(Foreground) 设置前景色,另外,bg 设置背景色。是一个组件,这个组件实例化之后,赋值到 tk.Label 变量中去,这个组件是放在 app 窗口上的,然后组件显示文字为 “我的第二个GUI程序”。实在是太简单了,因此,它只适合大家接受 GUI 编程的敲门砖,这一次,我们要讲的可不是什么二流货色,这一次我们来讲讲 Tkinter,Tkinter 是什么呢?原创 2023-07-24 09:25:33 · 103 阅读 · 0 评论 -
《零基础入门学习Python》第063讲:论一只爬虫的自我修养11:Scrapy框架之初窥门径
上一节课我们好不容易装好了Scrapy,今天我们就来学习如何用好它,有些同学可能会有些疑惑,既然我们懂得了Python编写爬虫的技巧,那要这个所谓的爬虫框架又有什么用呢?其实啊,你懂得Python写爬虫的代码,好比你懂武功,会打架,但行军打仗你不行,毕竟敌人是千军万马,纵使你再强,也只能是百人敌,完成为千人敌,甚至是万人敌,你要学会的就是排兵布阵,运筹帷幄于千里之外,所以,Scrapy 就是Python爬虫的孙子兵法。使用 Scrapy抓取一个网站一共分为四个步骤:–创建一个Scrapy项目;原创 2023-07-23 19:00:11 · 410 阅读 · 0 评论 -
《零基础入门学习Python》第062讲:论一只爬虫的自我修养10:安装Scrapy
如果不能成功的话,可能就是没有安装 pip(如果你是使用Python2.9 以前的版本,是需要自己另外安装pip的,步骤如下:)如果在安装时没有勾选,也没关系,打开“运行”,输入cmd。Scrapy最初是为了页面抓取(更确切来说, 网络抓取)所设计的,也可以应用在获取。–如果没有,请服用Windows特效药:重启系统尝试一下。下面的内容针对 没有 pip 的用户,其他的人可以直接看。d)重启cmd,输入命令“pip --version”直接下载安装包安装即可,在安装时,必须勾选。原创 2023-07-23 18:59:26 · 402 阅读 · 0 评论 -
《零基础入门学习Python》第061讲:论一只爬虫的自我修养9:异常处理
try:else:注:这一种写法有一点需要注意的就是:except HTTPError 必须写在 except URLError 的前面,这样才会响应到 HTTPError ,因为 HTTPError是 URLError 的子类,如果 except URLError 写在前面,那么 except HTTPError 永远都响应不了。原创 2023-07-23 17:48:34 · 296 阅读 · 0 评论 -
《零基础入门学习Python》第060讲:论一只爬虫的自我修养8:正则表达式4
有了前面几节课的准备,我们这一次终于可以真刀真枪的干一场大的了,但是呢,在进行实战之前,我们还要讲讲的实用方法和扩展语法,然后再来实战,大家多把持一会啊。我们先来翻一下文档:首先,我们要举的例子是讲得最多的 search() 方法,search() 方法 既有模块级别的,就是直接调用 re.search() 来实现,另外,编译后的正则表达式模式对象也同样拥有 search() 方法,我问问大家,它们之间有区别吗?原创 2023-07-23 17:48:00 · 820 阅读 · 0 评论 -
《零基础入门学习Python》第059讲:论一只爬虫的自我修养7:正则表达式3
今天我们先接着上节课的内容,把这个表格讲完:上节课我们介绍了的特殊字符中的 元字符,正则表达式的特殊字符除了 元字符之外呢,还有 一种就是通过反斜杠加上一个普通字符组成的特殊符号。我们接下来谈谈它们的含义。\序号,这个我们上节课已经讲过了,序号就是数字:①引用序号对应的子组所匹配的字符串,此时序号的范围是 1~99,子组的序号是从 1 开始计算。②如果序号是以 0 开头,或者 3 位数字的长度。那么不会被用于引用对应的子组,而是用于匹配八进制数字所表示的值对应的字符。原创 2023-07-23 15:08:07 · 421 阅读 · 0 评论 -
《零基础入门学习Python》第058讲:论一只爬虫的自我修养6:正则表达式2
上一节课我们通过一个例子(匹配 ip 地址)让大家初步了解到的魔力,也让大家充分了解到学习正则表达式是一个相对比较困难的事情。所以这一节课我们将继续学习 正则表达式的语法。我们依稀还记得在Python中,正则表达式是以字符串的形式来描述的,正则表达式的强大之处在于特殊符号的应用,我们上节课举了例子,例如 点号(.),在正则表达式中表示匹配除了 换行符之外的任何字符,它就是一个特殊的字符。原创 2023-07-23 14:31:50 · 466 阅读 · 0 评论 -
《零基础入门学习Python》第057讲:论一只爬虫的自我修养5:正则表达式
如果你在课后有勤加练习,那么你对于字符串的查找应该是已经深恶痛绝了,你发现下载一个网页是很容易的,但是要在网页中查找到你需要的内容,那就是困难的,你发现字符串查找并没有你想象的那么简单,并不是说直接使用 find 方法找到匹配字符串的位置就可以了。我们来举个例子,学习了前面几节课你应该已经尝试过写一个脚本来自动获取最新的代理 ip 地址,但是呢,你肯定会遇到困难,我现在来重现一下大家会遇到的困难。原创 2023-07-22 19:08:31 · 597 阅读 · 0 评论 -
《零基础入门学习Python》第056讲:论一只爬虫的自我修养4:网络爬图
今天我们结合前面学习的知识,进行一个实例,从网络上下载图片,话说我们平时闲来无事会上看看新鲜事,那么,熟悉煎蛋网的朋友一定知道,这里有一个的栏目,我们今天就来写一个爬虫,自动抓取每天更新的 随手拍。,(页码数应该小于等于当天的页码数(即目前最大页码数)),我们完全可以通过搜索在后面偏移 3 位就可以得到 77 这个最新的页面,因为你不能去输入一个具体的数字,因为这里的数字每天都会改变。原创 2023-07-22 17:43:50 · 229 阅读 · 0 评论 -
《零基础入门学习Python》第055讲:论一只爬虫的自我修养3:隐藏
上节课我们说过了,有一些网站比较痛恨爬虫程序,它们不喜欢被程序所访问,所以它们会检查链接的来源,如果说来源不是正常的途径,那么它就会把你给屏蔽掉,所以呢,要让我们的程序可以持续的干活,要可以投入生产,我们就需要对代码进行隐藏,让它看起来更像是普通人浏览器的正常点击。它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方式。尤其在网络阻塞的时候。代理的工作原理就是这么简单,因此呢,服务器看到的IP地址就是代理的IP地址,而不是你的IP地址,这样子你用很多个代理同时发起访问,服务器也没有办法。原创 2023-07-22 16:21:18 · 257 阅读 · 0 评论 -
《零基础入门学习Python》第054讲:论一只爬虫的自我修养2:实战
我们要看的是 Network 这一块,当我们点下自动翻译按钮时,在下面会看到有很多 Method,其中有 Get , 有Post ,这些内容都是浏览器与客户端的通信内容,在客服端与服务器之间进行请求的时候,两种最常用的方法:一种就是Get,一种就是 Post,在定义上来说,Get是指从服务器请求获得数据,而Post是向指定服务器提交被处理的数据,当然在现实情况中,Get也常常用作提交数据。,这个网站是为猫农量身定制的一个站点,网站后面你只需要加上 /宽度/高度,就可以得到一只相应宽度和高度的猫的图片。原创 2023-07-22 16:20:22 · 232 阅读 · 0 评论 -
《零基础入门学习Python》第053讲:论一只爬虫的自我修养
答:爬虫事实上就是一个程序,用于沿着互联网结点爬行,不断访问不同的网站,以便获取它所需要的资源。原创 2023-07-22 16:15:40 · 209 阅读 · 0 评论 -
《零基础入门学习Python》第052讲:像极客一样去思考
这里有两点需要注意的,首先,不是所有的模块都有 __all__ 属性,有 __all__ 的话,这个属性里面包含的内容就是作者希望外部调用的名字,其它的就是不希望外部调用的了。接下来就来举个实例,说说我遇到问题是怎么自救的,前阵子,我们不是举了一个计时器的例子吗,后来在第44课的课后作业的最后面,我们说,现实编程中,计时器工具千万不要自己动手写,因为有很多未知的因素会影响到你的数据,所以我们建议使用现成的模块,这个模块叫做 timeit,来对你的代码来进行计时。原创 2023-07-21 16:13:50 · 69 阅读 · 0 评论 -
《零基础入门学习Python》第051讲:__name__属性、搜索路径和包
在实际开发中,一个大型的系统通常有成千上万个Python模块,那么使用模块定义Python的功能还是远远不够的,因为如果你把这些模块全部放在一起,那你想想看,成千上万个文件放在一个文件夹是什么概念,非常乱,非常糟糕,而且还会有命名冲突的可能,那么因此呢,Python中也出现了包的概念,什么是包呢,其实就像我们刚才做的,把模块分门别类的放到不同的文件夹,然后把各个文件夹的位置告诉Python。但是包的做法更加简洁,创建一个包也非常简单,步骤如下:原创 2023-07-21 13:38:37 · 129 阅读 · 0 评论 -
《零基础入门学习Python》第050讲:模块:模块就是程序
这一讲将给大家介绍一个新的知识:模块。(一)什么是模块?模块是更高级的封装,说到封装,回顾一下我们之前学过哪些封装:没错,模块就是平常我们写的任何代码,保存每一个 .py 结尾的Python文件,就是保存了一个独立的模块。我们来句一个简单的例子:我们在安装Python的目录下新建一个 hello.py 文件,我们在里面定义一个 hi() 函数,当我按下 Ctrl + S 将这个文件保存起来的时候,这就是一个独立的Python 模块了,大家要注意的是,为了使我们的 IDLE 能够顺利的找到这个模块,我们这个模原创 2023-07-21 11:49:19 · 67 阅读 · 0 评论 -
《零基础入门学习Python》第049讲:生成器
答:所谓的协同程序就是可以运行的独立函数调用,函数可以暂停或者挂起,并在需要的时候从程序离开的地方继续或者重新开始。Python 是通过生成器来实现类似于协同程序的概念:生成器可以暂时挂起函数,并保留函数的局部变量等数据,然后在再次调用它的时候,从上次暂停的位置继续执行下去。原创 2023-07-20 11:24:20 · 33 阅读 · 0 评论 -
《零基础入门学习Python》第048讲:魔法方法:迭代器
对于一个容器对象,调用 iter() 就得到它的迭代器,调用 next() ,迭代器就会返回下一个值,那么怎么结束呢,如果没有值可以返回了,Python 就会抛出一个 StopIteration 的异常。字符串就是一个容器,同时也是一个迭代器,for 语句的作用就是触发这个迭代器的迭代功能,每次从容器里面依次拿出一个数据,这就是所谓的迭代操作。迭代的意思就类似于循环,每一次重复的过程被称之为一次迭代的过程,而每一次迭代得到的结果将会被用来作为下一次迭代的初始值,那么提供迭代方法的容器我们称之为。原创 2023-07-20 11:23:00 · 56 阅读 · 0 评论 -
《零基础入门学习Python》第047讲:魔法方法:定制序列
答:如果你想要定制一个不可变的容器(像 String),你就不能定义像 __setitem__() 和 __delitem__() 这些会修改容器中的数据的方法。答:应该定义 __reversed__() 方法,提供对内置函数 reversed() 的支持。答:在 Python 中,我们通过 len() 内置函数来查询容器的“容量”,所以容器应该定义 __len__() 方法。L答:读 —— __getitem__(),写 —— __setitem__(),删除 —— __delitem__(),"u。原创 2023-07-19 21:15:18 · 1002 阅读 · 0 评论 -
《零基础入门学习Python》第046讲:魔法方法:描述符(Property的原理)
答:如果你想要定制一个不可变的容器(像 String),你就不能定义像 __setitem__() 和 __delitem__() 这些会修改容器中的数据的方法。答:应该定义 __reversed__() 方法,提供对内置函数 reversed() 的支持。答:在 Python 中,我们通过 len() 内置函数来查询容器的“容量”,所以容器应该定义 __len__() 方法。L答:读 —— __getitem__(),写 —— __setitem__(),删除 —— __delitem__(),"u。原创 2023-07-19 21:14:33 · 1013 阅读 · 0 评论 -
《零基础入门学习Python》第045讲:魔法方法:属性访问
答:__getattribute__(self, name)原创 2023-07-18 17:36:49 · 178 阅读 · 0 评论 -
《零基础入门学习Python》第044讲:魔法方法:简单定制
在开始计时测试之前,把一切都关掉,断开网络的连接。所以,这一次,小甲鱼提出了更优秀的解决方案(Python官方推荐):用 time 模块的 perf_counter() 和 process_time() 来计算,其中 perf_counter() 返回计时器的精准时间(系统的运行时间);不要忘记,你的工作结果将以比秒更小的单位呈现,你的计时框架中的小错误将会带来不可挽回的结果扭曲。学习完这一节课后,我想告诉大家一件事,其实,关于 Python 代码优化你需要知道的最重要问题是,决不要自己编写计时函数!原创 2023-07-18 17:20:48 · 111 阅读 · 0 评论 -
《零基础入门学习Python》第043讲:魔法方法:算术运算2
并没有传入参数传入了 3 个参数,分别是:1 2 3答:其实很容易啦,检查下大家之前的知识点有没有记牢固而已。class C:print("并没有传入参数")else:print("传入了 %d 个参数,分别是:" % len(args), end='')Python 魔法方法详解。原创 2023-07-18 17:20:10 · 120 阅读 · 0 评论 -
《零基础入门学习Python》第042讲:魔法方法:算术运算
示例:iiiiiiii')>>> a - b答:只需要重载 __sub__ 魔法方法即可。答:只需要重载 __lshift__ 和 __rshift__ 魔法方法即可。>>> a + b899>>> a - b23>>> a * b201918>>> a / b>>> a // b1代码清单:else:print("参数错误!")当然,你还可以这样做:total = 0。原创 2023-07-18 14:38:46 · 72 阅读 · 0 评论 -
《零基础入门学习Python》第041讲:魔法方法:构造和析构
并没有传入参数传入了 3 个参数,分别是:1 2 3答:其实很容易啦,检查下大家之前的知识点有没有记牢固而已。class C:print("并没有传入参数")else:print("传入了 %d 个参数,分别是:" % len(args), end='')Python 魔法方法详解。原创 2023-07-18 14:37:43 · 74 阅读 · 0 评论 -
《零基础入门学习Python》第040讲:类和对象:一些相关的BIF
property 的优势:举个例子,在上面这个例子中,这个程序慢慢写的很复杂了,有一天,你想把这个程序进行大改,把函数名进行改写,如果没有 property,那你提供给用户的调用接口就西药修改,就会降低用户体验,但是有了property,问题就不存在了,因为提供给用户的接口都是 x,程序里面无论如何修改,property里面的参数跟着改进行了,用户还是只用调用 x 来设置或者获取 size 属性就可以了。返回对象指定的属性值。设定对象中指定属性的值,如果指定的属性不存在,会新建一个新的属性,并给其赋值。原创 2023-07-18 14:37:09 · 83 阅读 · 0 评论 -
《零基础入门学习Python》第039讲:类和对象:拾遗
答:Python 继承机制很有用,但容易把代码复杂化以及依赖隐含继承。因此,经常的时候,我们可以使用组合来代替。在Python里组合其实很简单,直接在类定义中把需要的类放进去实例化就可以了。例子:// 乌龟类// 鱼类// 水池类self.turtle = Turtle(x) // 组合乌龟类进来self.fish = Fish(y) // 组合鱼类进来print("水池里总共有乌龟 %d 只,小鱼 %d 条!原创 2023-07-18 14:34:38 · 79 阅读 · 0 评论 -
《零基础入门学习Python》第038讲:类和对象:继承
答:不会删除!Python 的做法跟其他大部分面向对象编程语言一样,都是将父类属性或方法覆盖,子类对象调用的时候会调用到覆盖后的新属性或方法,但父类的仍然还在,只是子类对象“看不到”。答:覆盖父类方法,例如将函数体内容写 pass,这样调用 fly 方法就没有任何反应了。设点 A(X1,Y1)、点 B(X2,Y2),则两点构成的直线长度 |AB| = √((x1-x2)2+(y1-y2)2)Python 中计算开根号可使用 math 模块中的 sqrt 函数。原创 2023-07-16 17:44:34 · 77 阅读 · 0 评论 -
《零基础入门学习Python》第037讲:类和对象:面向对象编程
平日票价100元周末票价为平日的120%儿童半票else:if child:else:>>> print("2个成人 + 1个小孩平日票价为:%.2f" % (adult.calcPrice(2) + child.calcPrice(1)))2个成人 + 1个小孩平日票价为:250.00(初学者不一定可以完整实现,但请务必先自己动手,你会从中学习到很多知识的^_^)假设游戏场景为范围(x, y)为0<=x<=10,0<=y<=10游戏生成1只乌龟和10条鱼它们的移动方向均随机。原创 2023-07-15 17:45:37 · 42 阅读 · 0 评论 -
《零基础入门学习Python》第036讲:类和对象:给大家介绍对象
答:叮当猫,咖啡猫,Tom(Tom&Jerry),Kitty(Hello Kitty)……答:属性可以是长和宽,方法可以是计算周长、面积等。答:正确的做法是应该尽可能的抽象,因为这样更符合面向对象的思维。原创 2023-07-15 15:49:18 · 283 阅读 · 0 评论