自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 第十七章 使用API

使用API17.1 使用Web API17.1.1 Git 和 GitHub17.1.2 使用API调用请求数据17.1.3 安装Requests17.1.4 处理API响应17.1.5 处理响应字典17.1.6 概述最受欢迎的库17.1.7 监视API的速率限制17.2 使用Plotly可视化仓库17.2.1 改进Plotly图标17.1 使用Web APIWeb API 是网站的一部分,用于与使用具体URL请求特定信息的程序交互17.1.1 Git 和 GitHubgit是一个分布式版本控制系统

2022-02-11 21:10:39 1072

原创 第十六章 下载数据

下载数据16.1 CSV文件格式16.1.1 分析CSV文件头16.1.2 打印文件头及其位置16.1.3 提取并读取数据16.1.4 绘制温度图表16.1.5 模块datetimedatetime中设置日期和实践的格式16.1.6 在图表中添加日期16.1.7 涵盖更长的时间16.1.8 再绘制一个数据系列16.1.9 给图标区域着色16.1.10 错误检查1 检查 death_valley_2018_simple.csv的文件头2 在death_valley.py中修改代码3 修改death_valle

2022-02-10 18:00:32 1280

原创 第十五章 生成数据

生成数据15.1 安装Matplotlib本文与课本稍有出入,本文采用的工具是pycharm,与课本稍有出入15.1 安装Matplotlibwin + R ,并输入 cmd , 进入命令行界面如下图:使用 python -m pip list , 查看本机的安装的所有模块如下图:按提示信息,将 pip 版本升级至最新如下图:升级成功后, 使用 python -m pip install matplotlib 安装Matplotlib如下图:...

2022-02-08 18:55:54 1194

转载 第052讲:像极客一样去思考 | 课后测试题及答案

0. 请问以下代码会打印什么内容?>>> def func(): pass>>> print(type(func()))A. <type ‘function’>B. <type ‘tuple’>C. <type ‘NoneType’>D. <type ‘type’>答:C1. 请问以下代码会打印什么内容?>>> print(type(1J))A. <type ‘uni

2022-01-30 14:52:04 363

转载 第051讲:__name__属性、搜索路径和包 | 课后测试题及答案

测试题(笔试,不能上机哦~):0. __ name__ 属性的含义是什么?答:所有模块都有一个 __ name__ 属性,__ name__ 的值取决于如何应用模块,在作为独立程序运行的时候,__ name__ 属性的值是 ‘__ main__’,而作为模块导入的时候,这个值就是该模块的名字了。1. 什么时候 __ name__ 属性的值是 “main”?答:请参考上一题答案。2. 如果获得当前 Python 的搜索路径?答:我们可以通过 sys 模块中的 path 变量显示出来(不同的机器上显

2022-01-29 17:33:50 226

转载 第050讲:模块:模块就是程序 | 课后测试题及答案

测试题(笔试,不能上机哦~):0. 说到底,Python 的模块是什么?答:模块就是程序。没错,所谓模块就是平时我们写的任何代码,然后保存的每一个“.py”结尾的文件,都是一个独立的模块。1. 我们现在有一个 hello.py 的文件,里边有一个 hi() 函数:.def hi(): print("Hi everyone, I love FishC.com!")请问我如何在另外一个源文件 test.py 里边使用 hello.py 的 hi() 函数呢?答:只需要在 test.py 中

2022-01-29 17:22:45 194

转载 第049讲:乱入:生成器 | 课后测试题及答案

测试题(笔试,不能上机哦~):0. 通常,一般的函数从第一行代码开始执行,并在什么情况下结束?答:对于调用一个普通的 Python 函数,一般是从函数的第一行代码开始执行,结束于 return 语句、异常或者函数所有语句执行完毕。一旦函数将控制权交还给调用者,就意味着全部结束。函数中做的所有工作以及保存在局部变量中的数据都将丢失。如果再次调用这个函数时,一切都将重新开始。1. 什么是协同程序?答:所谓的协同程序就是可以运行的独立函数调用,函数可以暂停或者挂起,并在需要的时候从程序离开的地方继续或者重

2022-01-29 17:11:58 182

转载 第048讲:魔法方法:迭代器 | 课后测试题及答案

测试题(笔试,不能上机哦~):0. 请用你的话解释一下“迭代”的概念?答:迭代是重复反馈过程的活动,其目的通常是为了接近并到达所需的目标或结果。每一次对过程的重复被称为一次“迭代”,而每一次迭代得到的结果会被用来作为下一次迭代的初始值。1. 迭代器是一个容器吗?答:不是。因为我们耳熟能详的容器像列表,字典,元组都是可以存放数据的,而迭代器就是实现了__next__()方法的对象(用于遍历容器中的数据)。2. 迭代器可以回退(获取上一个值)吗?答:迭代器性质决定没有办法回退,只能往前进行迭代。但这

2022-01-29 16:57:03 222

转载 第047讲:魔法方法:定制序列 | 课后测试题及答案

测试题(笔试,不能上机哦~):0. 你知道 Python 基于序列的三大容器类指的是什么吗?答:无疑是列表(List),元组(Tuple)和字符串(String)啦。1. Python 允许我们自己定制容器,如果你想要定制一个不可变的容器(像 String),你就不能定义什么方法?答:如果你想要定制一个不可变的容器(像 String),你就不能定义像 __ setitem __() 和 __ delitem __() 这些会修改容器中的数据的方法。2. 如果希望定制的容器支持 reversed()

2022-01-29 16:45:47 150

转载 第046讲:魔法方法:描述符(Property的原理) | 课后测试题及答案

测试题:0. 请尽量用自己的语言来解释什么是描述符(不要搜索来的答案,用自己的话解释)?答:有时候,某个应用程序可能会有一个相当微妙的需求,需要你设计一些更为复杂的操作来响应(例如每当属性被访问时,你也许想创建一个日志记录)。最好的解决方案就是编写一个用于执行这些“更复杂的操作”的特殊函数,然后指定它在属性被访问时运行。那么一个具有这种函数的对象被称之为描述符。往再简单了说,描述符就是一个类,一个至少实现 __ get ()、 set __() 或 __ delete __() 三个特殊方法中的任意一

2022-01-29 16:32:08 174

转载 第045讲:魔法方法:属性访问 | 课后测试题及答案

测试题:0. 请问以下代码的作用是什么?这样写正确吗?(如果不正确,请改正)def __setattr__(self, name, value): self.name = value + 1答:这段代码试图在对象的属性发生赋值操作的时候,将实际的值 +1赋值给相应的属性。但这么写法是错误的,因为每当属性被赋值的时候, __ setattr __() 会被调用,而里边的 self.name = value + 1 语句又会再次触发 __ setattr __() 调用,导致无限递归。

2022-01-29 16:01:32 276

转载 第044讲:魔法方法:简单定制 | 课后测试题及答案

动动手:0. 按照课堂中的程序,如果开始计时的时间是(2022年2月22日16:30:30),停止时间是(2025年1月23日15:30:30),那按照我们用停止时间减开始时间的计算方式就会出现负数,你应该对此做一些转换。答:参考代码写的比较“纠结”,期待鱼油们写出更漂亮的实现。\import time as tclass MyTimer: def __init__(self): self.unit = ['年', '月', '天', '小时', '分钟', '秒']

2022-01-29 15:29:36 303

转载 第043讲:魔法方法:算术运算2 | 课后测试题及答案

测试题:0. 一般情况下,两个相同对象相加(a + b),如果 a 对象有 __ add __ 方法,请问 b 对象的 __ radd __ 会被调用吗?答:不会!>>> class Nint(int): def __radd__(self, other): print("__radd__ 被调用了!") return int.__add__(self, other)>>> a =

2022-01-29 15:22:31 165

转载 第042讲:魔法方法:算术运算 | 课后测试题及答案

测试题:0. 自 Python2.2 以后,对类和类型进行了统一,做法就是将 int()、float()、str()、list()、tuple() 这些 BIF 转换为工厂函数。请问所谓的工厂函数,其实是什么原理?答:工厂函数,其实就是一个类对象。当你调用他们的时候,事实上就是创建一个相应的实例对象。# a 和 b 是工厂函数(类对象) int 的实例对象>>> a = int('123')>>> b = int('345')>>> a +

2022-01-20 11:53:11 208

转载 第041讲:魔法方法:构造和析构 | 课后测试题及答案

测试题:0. 是哪个特征让我们一眼就能认出这货是魔法方法?答:魔法方法总是被双下划线包围,例如 init1. 类实例化对象所调用的第一个方法是什么?答:__ new __ 是在一个对象实例化的时候所调用的第一个方法。它跟其他魔法方法不同,它的第一个参数不是 self 而是这个类(cls),而其他的参数会直接传递给 __ init __ 方法的。2. 什么时候我们需要在类中明确写出 __ init __ 方法?答:当我们的实例对象需要有明确的初始化步骤的时候,你可以在 init 方法中部署初始化的

2022-01-20 10:50:51 194

转载 第040讲:类和对象:一些相关的BIF | 课后测试题及答案

测试题:0. 如何判断一个类是否为另一个类的子类?答:使用 issubclass(class, classinfo) 函数,如果第一个参数(class)是第二个参数(classinfo)的一个子类,则返回 True,否则返回 False。另外以下这些常识你应该知道:一个类被认为是其自身的子类classinfo 可以是类对象组成的元祖,只要 class 与其中任何一个候选类的子类,则返回 True在其他情况下,会抛出一个 TypeError 异常1. 如何判断对象 a 是否为 类 A 的实例

2022-01-19 21:07:51 197

转载 第039讲:类和对象:拾遗 | 课后测试题及答案

测试题:0. 什么是组合(组成)?答:Python 继承机制很有用,但容易把代码复杂化以及依赖隐含继承。因此,经常的时候,我们可以使用组合来代替。在Python里组合其实很简单,直接在类定义中把需要的类放进去实例化就可以了。// 乌龟类class Turtle: def __init__(self, x): self.num = x// 鱼类class Fish: def __init__(self, x): self.num = x// 水池类

2022-01-19 16:31:03 186

转载 第038讲:类和对象:继承 | 课后测试题及答案

测试题:0. 继承机制给程序猿带来最明显的好处是?答:可以偷懒,据说这是每一个优秀程序猿的梦想!如果一个类 A 继承自另一个类 B,就把这个 A 称为 B 的子类,把 B 称为 A 的父类、基类或超类。继承可以使得子类具有父类的各种属性和方法,而不需要再次编写相同的代码(偷懒)。在子类继承父类的同时,可以重新定义某些属性,并重写某些方法,即覆盖父类的原有属性和方法,使其获得与父类不同的功能。另外,为子类追加新的属性和方法也是常见的做法。1. 如果按以下方式重写魔法方法 __ init __,结果会

2022-01-19 15:37:10 222

转载 第037讲:类和对象:面向对象编程 | 课后测试题及答案

测试题:0. 以下代码体现了面向对象编程的什么特征?>>> "FishC.com".count('o')1>>> [1, 1, 2, 3, 5, 8].count(1)2>>> (0, 2, 4, 8, 12, 18).count(1)0答:体现了面向对象编程的多态特征。1. 当程序员不想把同一段代码写几次,他们发明了函数解决了这种情况。当程序员已经有了一个类,而又想建立一个非常相近的新类,他们会怎么做呢?答:他们会定义一个新类继承

2022-01-19 12:00:59 414

转载 第036讲:类和对象:给大家介绍对象 | 课后测试题及答案

测试题:0. 对象中的属性和方法,在编程中实际是什么?答:变量(属性)和函数(方法)。1. 类和对象是什么关系呢?答:类和对象的关系就如同模具和用这个模具制作出的物品之间的关系。一个类为它的全部对象给出了一个统一的定义,而他的每个对象则是符合这种定义的一个实体,因此类和对象的关系就是抽象和具体的关系。2. 如果我们定义了一个猫类,那你能想象出由“猫”类实例化的对象有哪些?答:叮当猫,咖啡猫,Tom(Tom&Jerry),Kitty(Hello Kitty)……3. 类的定义有些时候或许

2022-01-19 10:54:57 289

转载 第035讲:图形用户界面入门:EasyGui | 课后测试题及答案(略)

略https://fishc.com.cn/forum.php?mod=viewthread&tid=48359&extra=page%3D2%26filter%3Dtypeid%26typeid%3D398

2022-01-19 10:08:00 228

转载 第034讲:丰富的else语句及简洁的with语句 | 课后测试题及答案

测试题:0. 在 Python 中,else 语句能跟哪些语句进行搭配?答:在 Python 中,else 语句不仅能跟 if 语句搭,构成“要么怎样,要么不怎样”的语境;Ta 还能跟循环语句(for 语句或者 while 语句),构成“干完了能怎样,干不完就别想怎样”的语境;其实 else 语句还能够跟我们刚刚讲的异常处理进行搭配,构成“没有问题,那就干吧”的语境。1. 请问以下例子中,循环中的 break 语句会跳过 else 语句吗?def showMaxFactor(num): co

2022-01-18 17:25:19 150

转载 第033讲:异常处理:你不可能总是对的2 | 课后测试题及答案

测试题:0. 我们使用什么方法来处理程序中出现的异常?答:使用 try……except 搭配来捕获处理程序中出现的异常。try:检测范围except Exception[as reason]:出现异常(Exception)后的处理代码1. 一个 try 语句可以和多个 except 语句搭配吗?为什么?答:可以。因为 try 语句块中可能出现多类异常,利用多个 except 语句可以分别捕获并处理我们感兴趣的异常。try: sum = 1 + '1' f = open('我

2022-01-18 16:08:18 205

转载 第032讲:异常处理:你不可能总是对的 | 课后测试题及答案

测试题:0. 结合你自身的编程经验,总结下异常处理机制的重要性?[Python标准异常总结] link答:由于环境的不确定性和用户操作的不可以预知性都可能导致程序出现各种问题,因此异常机制最重要的无非就是:增强程序的健壮性和用户体验,尽可能的捕获所有预知的异常并写好处理的代码,当异常出现的时候,程序自动消化并恢复正常(不至于崩溃)。|1. 请问以下代码是否会产生异常,如果会的话,请写出异常的名称:>>> my_list = [1, 2, 3, 4,,]答:语法错误Synta

2022-01-18 15:31:27 167

转载 第031讲:永久存储:腌制一缸美味的泡菜 | 课后测试题及答案

测试题:0. pickle的实质是什么?答:pickle的实质就是利用一些算法将你的数据对象“腌制”成二进制文件,存储在磁盘上,当然也可以放在数据库或者通过网络传输到另一台计算机上。1. 使用pickle的什么方法存储数据?答:pickle.dump(data, file) # 第一个参数是待存储的数据对象,第二个参数是目标存储的文件对象,注意要先使用’wb’的模式open文件哦_2. 使用pickle的什么方法读取数据?答:pickle.load(file) # 参数是目标存储的文件对象,注意

2022-01-18 15:07:01 146

转载 第030讲:文件系统:介绍一个高大上的东西 | 课后测试题及答案

动动手:0. 编写一个程序,统计当前目录下每个文件类型的文件数,程序实现如图:import osall_files = os.listdir(os.curdir) # 使用os.curdir表示当前目录更标准file_dict = dict()for each_file in all_files: if os.path.isfile(each_file): file_size = os.path.getsize(each_file) file_dict

2022-01-18 15:00:39 177

转载 第029讲:文件:一个任务 | 课后测试题及答案

动动手:0. 编写一个程序,接受用户的输入并保存为新的文件,程序实现如图:def file_write(file_name): f = open(file_name, 'w') print('请输入内容【单独输入\':w\'保存退出】:') while True: write_some = input() if write_some != ':w': f.write('%s\n' % write_some) else:

2022-01-18 14:51:23 250

转载 第028讲:文件:因为懂你,所以永恒 | 课后测试题及答案【无标题】

测试题:0. 下边只有一种方式不能打开文件,请问是哪一种,为什么?>>> f = open('E:/test.txt', 'w') # A>>> f = open('E:\test.txt', 'w') # B>>> f = open('E://test.txt', 'w') # C>>> f = open('E:\\test.txt', 'w') # D答:B不能打开文件。Windows在路径名中既可以接受

2022-01-18 14:38:56 284

转载 第027讲:集合:在我的世界里,你就是唯一 | 课后测试题及答案

测试题:0. 请问集合的唯一作用是什么呢?答:集合几乎所有的作用就是确保里边包含的元素的唯一性,就像世界上没有两片完全相同的树叶一样,集合内不可能存在两个相同的元素!1. 如果你希望创建的集合是不变的,应该怎么做?答:frozenset()2. 请问如何确定一个集合里边有多少个元素?答:没错,len()函数正好可以满足你此刻的需求_3. 请目测以下代码会打印什么内容?>>> num_set = set([1, 2, 3, 4, 5])>>> num_se

2022-01-18 10:21:34 172

转载 第026讲:字典:当索引不好用时2 | 课后测试题及答案

测试题:0. Python的字典是否支持一键(Key)多值(Value)?答:不支持,对相同的键再次赋值会将上一次的值直接覆盖。1. 在字典中,如果试图为一个不存在的键(Key)赋值会怎样?答:会自动创建对应的键(Key)并添加相应的值(Value)进去。2. 成员资格操作符(in和not in)可以检查一个元素是否存在序列中,当然也可以用来检查一个键(Key)是否存在字典中,那么请问哪种的检查效率更高些?为什么?答:在字典中检查键(Key)是否存在比在序列中检查指定元素是否存在更高效。因为字典

2022-01-18 10:13:19 179

转载 第025讲:字典:当索引不好用时 | 课后测试题及答案

测试题:0. 当你听到小伙伴们在谈论“映射”、“哈希”、“散列”或者“关系数组”的时候,事实上他们就是在讨论什么呢?答:是的,事实上他们就是在讨论我们这一讲介绍的“字典”,都是一个概念!(切记,装X的本质就是把同一个东西说成各种不同的事物~)1. 尝试一下将数据(‘F’: 70, ‘C’: 67, ‘h’: 104, ‘i’: 105, ‘s’: 115)创建为一个字典并访问键 ‘C’ 对应的值?>>> MyDict = dict((('F', 70), ('i',105), ('

2022-01-18 10:05:08 211

转载 第023、024讲:递归:这帮小兔崽子、汉诺塔 | 课后测试题及答案

动动手:0. 使用递归编写一个十进制转换为二进制的函数(要求采用“取2取余”的方式,结果与调用bin()一样返回字符串形式)。def Dec2Bin(dec): result = '' if dec: result = Dec2Bin(dec//2) return result + str(dec%2) else: return resultprint(Dec2Bin(62))1. 写一个函数get_digits

2022-01-17 18:01:43 188

转载 第022讲:函数:递归是神马 | 课后测试题及答案

测试题:0. 递归在编程上的形式是如何表现的呢?答:在编程上,递归表现为函数调用本身这么一个行为。1. 递归必须满足哪两个基本条件?答:一、函数调用自身二、设置了正确的返回条件2. 思考一下,按照递归的特性,在编程中有没有不得不使用递归的情况?答:例如汉诺塔,目录索引(因为你永远不知道这个目录里边是否还有目录),快速排序(二十世纪十大算法之一),树结构的定义等如果使用递归,会事半功倍,否则会导致程序无法实现或相当难以理解。3. 用递归去计算阶乘问题或斐波那契数列是很糟糕的算法,你知道为什么

2022-01-17 17:58:12 217

转载 第021讲:函数:lambda表达式 | 课后测试题及答案

测试题:0. 请使用lambda表达式将下边函数转变为匿名函数?def fun_A(x, y=3): return x * y>>> a = lambda x, y=3: x * y>>> a(1,2)2>>> a(2)61. 请将下边的匿名函数转变为普通的屌丝函数?lambda x : x if x % 2 else Nonedef a(x): if x % 2: return x else: re

2022-01-17 16:23:54 491

转载 第020讲:函数:内嵌函数和闭包 | 课后测试题及答案

测试题:0. 如果希望在函数中修改全局变量的值,应该使用什么关键字?global 关键字>>> count = 5>>> def MyFun(): global count count = 10 print(count)>>> MyFun()10>>> count101. 在嵌套的函数中,如果希望在内部函数修改外部函数

2022-01-17 16:03:22 183

转载 第019讲:函数:我的地盘听我的 | 课后测试题及答案

测试题:0. 下边程序会输入什么?def next(): print('我在next()函数里...') pre()def pre(): print('我在pre()函数里...') next()答:我在next()函数里…我在pre()函数里…1. 请问以下这个函数有返回值吗>>> def hello(): print('Hello FishC!')如果没有使用 return 语句指定返回值,Python 也不是

2022-01-17 13:51:40 278

转载 第018讲:函数:灵活即强大 | 课后测试题及答案

测试题:0. 请问以下哪个是形参哪个是实参?def MyFun(x): return x ** 3y = 3print(MyFun(y))x 是形式参数(形参),y 是实际参数(实参)。跟绝大部分编程语言一样,形参指的是函数创建和定义过程中小括号里的参数,而实参指的是函数在调用过程中传递进去的参数。1. 函数文档和直接用“#”为函数写注释有什么不同?给函数写文档是为了让别人可以更好的理解你的函数,所以这是一个好习惯函数的文档字符串可以按如下方式访问: MyFirstFunct

2022-01-17 13:26:09 226

转载 第017讲:函数 - Python的乐高积木 | 课后测试题及答案

测试题:0. 你有听说过DRY吗?答:DRY 是程序员们公认的指导原则:Don’t Repeat Yourself.快快武装你的思维吧,拿起函数,不要再去重复拷贝一段代码了!1. 都是重复一段代码,为什么我要使用函数(而不使用简单的拷贝黏贴)呢?使用函数有以下好处:可以降低代码量(调用函数只需要一行,而拷贝黏贴需要N倍代码)可以降低维护成本(函数只需修改def部分内容,而拷贝黏贴则需要每一处出现的地方都作修改)使序更容易阅读(没有人会希望看到一个程序重复一万行“I love FishC.c

2022-01-17 13:06:06 328

转载 第016讲:序列 | 课后测试题及答案

测试题:0. 我们根据列表、元组和字符串的共同特点,把它们三统称为什么?序列,因为他们有以下共同点:1)都可以通过索引得到每一个元素2)默认索引值总是从0开始(当然灵活的Python还支持负数索引)3)可以通过分片的方法得到一个范围内的元素的集合4)有很多共同的操作符(重复操作符、拼接操作符、成员关系操作符)1. 请问分别使用什么BIF,可以把一个可迭代对象转换为列表、元组和字符串?list([iterable]) 把可迭代对象转换为列表tuple([iterable]) 把可迭代对象转换

2022-01-17 10:46:17 459

转载 第014-15讲:字符串 (见小甲鱼新版27讲-32讲)| 课后测试题及答案

由于小甲鱼最新版python已更新至函数,且新版的逻辑脉络更清晰,课后测试习题使用新版试题字符串的各种方法大合集 https://fishc.com.cn/thread-183975-1-3.html第027讲:字符串(I)| 课后测试题及答案大小写字母换来换去capitalize()、casefold()、title()、swapcase()、upper()、lower()左中右对齐center(width, fillchar=’ ‘)、ljust(width, fillchar=’ ‘)

2022-01-16 16:57:39 2978

空空如也

空空如也

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

TA关注的人

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