
python学习
文章平均质量分 95
csu_xiji
这个作者很懒,什么都没留下…
展开
-
python 可迭代对象、迭代器对象、生成器
迭代器 VS 可迭代对象为何在pythonpythonpython中可以很方便的使用forforfor循环来遍历列表、字符串甚至是文件?它的背后实现离不开迭代器和可迭代对象。首先来谈谈pypypy中的迭代器协议:实现内置函数iteriteriter,它返回一个迭代器对象。通过调用迭代器对象的nextnextnext函数,取得每次迭代的内容。多次调用nextnextnext函数后,抛出StopIterationStopIterationStopIteration异常(迭代终止)。可以猜测pyt原创 2021-09-28 15:21:57 · 211 阅读 · 0 评论 -
深入Python3(十四) 特殊方法名称
文章目录0.摘要1.基础知识2.行为方式与迭代器类似的类3.计算属性4.行为方式与函数类似的类5.行为方式与序列类似的类6.行为方式与字典类似的类7.行为方式与数值类似的类8.可比较的类9.可序列化的类10.可在 with 语块中使用的类11.真正神奇的东西0.摘要 在本书其它几处,我们已经见识过一些特殊方法——即在使用某些语法时 PythonPythonPython 所调用的“神奇”方法。使用特殊方法,类用起来如同序列、字典、函数、迭代器,或甚至像个数字!本附录为我们已经见过特殊方法提供了参考,并对原创 2020-12-09 20:37:38 · 429 阅读 · 0 评论 -
深入Python3(十三) HTTP Web 服务
文章目录0.摘要1.HTTP的特性1.1缓存1.2最后修改时间的检查1.3ETags1.4压缩1.5重定向2.避免通过 HTTP 重复地获取数据3.线路上是什么?4.介绍 httplib24.1关于httplib2返回字节串而不是字符串的简短解释4.2httplib2怎样处理缓存4.3httplib2怎么处理Last-Modified和ETag头4.4http2lib怎么处理压缩4.5httplib2怎样处理重定向5.HTTP GET之外6.HTTP POST之外0.摘要 简单地讲,HTTP 原创 2020-12-08 16:16:53 · 392 阅读 · 0 评论 -
深入Python3(十二) 序列化Python对象
文章目录0.摘要1.保存数据到 Pickle 文件2.从Pickle文件读取数据3.不使用文件来进行序列化4.字节和字符串又一次抬起了它们丑陋的头5.调试Pickle 文件6.序列化Python对象以供其它语言读取7.将数据保存至 json 文件8.将Python数据类型映射到json9.序列化json不支持的数据类型10.从json文件加载数据0.摘要 序列化的概念很简单。内存里面有一个数据结构,你希望将它保存下来,重用,或者发送给其他人。你会怎么做?嗯, 这取决于你想要怎么保存,怎么重用,发送给谁原创 2020-12-07 21:45:49 · 394 阅读 · 0 评论 -
深入Python3(十一) XML
文章目录0.摘要1.5分钟XML速成2.Atom Feed的结构3.解析XML3.1元素即列表3.2属性即字典4.在XML文档中查找结点5.深入lxml6.生成XML7.解析破损的XML0.摘要 基本是和xmlxmlxml相关的一些知识,个人感觉用处不是特别大,有需求再细致了解也不迟。 本书的大部分章节都是以样例代码为中心的。但是xmlxmlxml这章不是;它以数据为中心。最常见的xmlxmlxml应用为“聚合订阅(syndication feedssyndication\ feedss原创 2020-12-07 14:13:14 · 430 阅读 · 0 评论 -
深入Python3(十) 文件
文章目录0. 摘要1. 读取文本文件1.1 字符编码抬起了它腌臜的头…1.2 流对象1.3 从文本文件读取数据1.4 关闭文件1.5 自动关闭文件1.6 一次读取一行数据2.写入文本文件2.1再次讨论字符编码3.二进制文件4.非文件来源的流对象4.1处理压缩文件5.标准输入、输出和错误5.1标准输出重定向0. 摘要 文件是每一个主流操作系统的主要存储模型;这种观念如此根深蒂固以至于难以想出一种替代物。打个比方,你的电脑实际上就是泡在文件里了。 这一章将学习pythonpythonpython中的文原创 2020-12-06 01:19:57 · 256 阅读 · 0 评论 -
深入Python3(九) 重构
文章目录0.摘要1.新的错误2.控制需求变化3.重构4.总结0.摘要 本章继续深入前一章节的例子,通过更改需求—修改代码—重构这一流程让你逐步意识到单元测试的意义,以及它对重构的重要性。1.新的错误 就算是竭尽了全力编写全面的单元测试,还是会遇到错误。我所说的“错误”是什么意思?错误是尚未写到的测试实例。 这段代码非常简单。通过传入一个空字符串调用 from_roman()from\_roman()from_roman() ,并确保其引发一个 InvalidRomanNumeralEr原创 2020-12-05 16:46:18 · 463 阅读 · 0 评论 -
深入Python3(八) 单元测试
文章目录0.摘要1.一个简单的问题2.处理非法输入3.More Halting, More Fire4.还有一件事情……5.可喜的对称性6.更多错误输入0.摘要 在此章节中,你将要编写及调试一系列用于阿拉伯数字与罗马数字相互转换的方法。并利用pythonpythonpython的unittestunittestunittest模块进行单元测试。 罗马数字的规则引出很多有意思的结果:只有一种正确的途径用阿拉伯数字表示罗马数字。反过来一样,一个字符串类型的有效的罗马数字也仅可以表示一个阿拉伯数字原创 2020-12-05 00:53:06 · 414 阅读 · 0 评论 -
Python3 itertools
文章目录0. 摘要1. Merging and Splitting Iterators1.1 chain()1.1.1 chain.from_iterable()1.2 zip()1.2.1 zip_longest()1.3 islice()1.4 tee()2. Converting Inputs2.1 map()2.2 starmap()3. Producing New Values3.1 count()3.2 cycle()3.3 repeat()4.Filtering4.1 dropwhile()4原创 2020-12-04 16:39:13 · 640 阅读 · 0 评论 -
深入Python3(七) 高级迭代器
文章目录0.摘要1.字母算数2.找到一个模式所有出现的地方3.在序列中寻找不同的元素4.作出断言5.生成器表达式6.计算排列… 懒惰的方法!7.itertools模块中的其它有趣的东西8.一种新的操作字符串的方法9.将任何字符串作为Python表达式求值10.把所有东西放在一起0.摘要 通过一个例子逐步了解高级迭代器、zip()zip()zip()、translate()translate()translate()、eval()eval()eval()的用法。1.字母算数 像这样的谜题被称为c原创 2020-12-04 14:14:59 · 257 阅读 · 0 评论 -
深入Python3(六) 类与迭代器
文章目录0.摘要1.类的定义1.1__init__() 方法2.实例化类3.实例变量4.斐波那契迭代器5.复数规则迭代器0.摘要 上一节我们学习了生成器,它是一类特殊迭代器。这一节我们将学习类和迭代器。1.类的定义 PythonPythonPython是完全面向对象的:你可以定义自己的类,从你自己或系统自带的类继承,并生成实例。 在PythonPythonPython里定义一个类非常简单。就像函数一样, 没有分开的接口定义。PythonPythonPython类以保留字 classclass原创 2020-12-03 20:09:00 · 868 阅读 · 0 评论 -
Python3 正则表达式
文章目录0.摘要1.推荐网址2.元字符2.1 点元字符2.2字符集2.2.1 否定字符集2.3 ?限定符2.4 *限定符2.5 +限定符2.6. {n,m}语法2.6.1 {n}语法2.6.2 {n,m}语法2.6.3 {n,}语法2.7(...) 特征标群2.8 | 或运算符2.9 转码特殊字符2.10 原始字符串2.11 锚点2.11.1 ^ 号2.11.2 $ 号3.简写字符集4.零宽度断言(前后预查)4.1 ?=... 正先行断言4.2 ?!... 负先行断言4.3 ?<= ... 正后发断言原创 2020-12-03 00:36:07 · 643 阅读 · 0 评论 -
深入Python3(五) 闭合与生成器
文章目录0.摘要1.我知道,让我们用正则表达式!2.函数列表3.匹配模式列表4.匹配模式文件5.生成器5.1斐波那奇生成器5.2复数规则生成器0.摘要 在本章中,将开始学习返回其它函数的函数、高级正则表达式和生成器。1.我知道,让我们用正则表达式! 如果在讲英语的国家长大,或在正规的学校学习过英语,您可能对下面的基本规则很熟悉 :如果某个单词以 S 、X 或 Z 结尾,添加 ES 。Bass 变成 basses, fax 变成 faxes,而 waltz 变成 waltzes。如果某个单词原创 2020-12-01 23:45:47 · 510 阅读 · 0 评论 -
深入Python3(四) 正则表达式
文章目录0.摘要1.案例研究: 街道地址2.案例研究: 罗马数字2.1检查千位数2.2检查百位数3.使用语法{n,m}3.1检查十位和个位4.松散正则表达式5.案例研究: 解析电话号码6.小结0.摘要 初步了解Python3Python3Python3中的正则表达式。1.案例研究: 街道地址 我的目的是要标准化街道的格式,比如把街道最后的英文单词ROADROADROAD替换为RD.RD.RD.。在第一个例子中使用replace()replace()replace()就可以了。 但是有些街道原创 2020-12-01 16:40:20 · 369 阅读 · 0 评论 -
深入Python3(三) 字符串(string和bytes)
文章目录0.摘要1.在开始之前需要掌握的一些知识2.Unicode2.1UTF-322.2UTF-162.3UTF-83.概述4.格式化字符串4.1复合字段名4.2格式说明符5.其他常用字符串方法6.String vs. Bytes7.补充内容:Python源码的编码方式0.摘要 本文主要讲解Python3Python3Python3中的字符串以及一些编码问题。在此我可以先告诉你一个结论:字符串编码得到字节序列;字节序列解码得到字符串。想了解更多内容可以阅读本文。 强烈建议看原文章:https:/原创 2020-12-01 00:45:11 · 613 阅读 · 0 评论 -
深入Python3(二) 解析(列表、集合、字典)
文章目录0.摘要1.处理文件和目录1.1当前工作目录1.2处理文件名和目录名1.3罗列目录内容1.4获取文件元信息1.5构造绝对路径2.列表解析3.字典解析4.集合解析0.摘要 这一章节将围绕一个非常强大的技术向你介绍列表解析,字典解析和集合解析这三个概念。但是,我要先打个岔介绍两个帮助你浏览本地文件系统的模块。1.处理文件和目录 Python3Python 3Python3带有一个模块叫做ososos,代表 “操作系统(operating system)”。ososos模块 包含非常多的函数用原创 2020-11-30 15:41:23 · 272 阅读 · 0 评论 -
深入Python3(一) 内置数据类型
文章目录0.摘要1.布尔类型2.数值类型3.列表3.1创建列表3.2列表切片3.3向列表中新增项3.4在列表中检索值3.5从列表中删除元素3.6布尔上下文环境中的列表4.元组4.1布尔上下文环境中的元组4.2同时赋多个值5.集合5.1创建集合5.2修改集合5.3从集合中删除元素5.4常见集合操作5.5布尔上下文环境中的集合6.字典6.1创建字典6.2修改字典6.3混合值字典6.4布尔上下文环境中的字典7.None0.摘要 在PythonPythonPython中, 每个值都有一种数据类型,但您并不需要原创 2020-11-30 00:19:32 · 474 阅读 · 0 评论 -
CodingBat python List-2
https://codingbat.com/prob/p189616count_evensdef count_evens(nums): ans=0 for each in nums: ans+=each%2 return len(nums)-ansbig_diffdef big_diff(nums): return max(nums)-min(nums)centered_averagedef centered_average(nums): return原创 2020-11-26 14:21:59 · 815 阅读 · 0 评论 -
CodingBat python String-2
https://codingbat.com/python/String-2double_chardef double_char(str): ans="" for i in range(len(str)): ans+=str[i]+str[i] return anscount_hidef count_hi(str): return str.count("hi")cat_dogdef cat_dog(str): return str.count("cat") =原创 2020-11-26 14:03:33 · 1302 阅读 · 0 评论 -
CodingBat python Logic-2
https://codingbat.com/python/Logic-2make_bricksdef make_bricks(small, big, goal): need_big = goal // 5 big = min(big,need_big) goal -= big * 5 return goal <= smalllone_sumdef lone_sum(a, b, c): nums = [a,b,c] sum = 0 for each in num原创 2020-11-04 00:12:17 · 866 阅读 · 0 评论 -
CodingBat python Logic-1
https://codingbat.com/python/Logic-1cigar_partydef cigar_party(cigars, is_weekend): if is_weekend and cigars >= 40: return True elif cigars >= 40 and cigars <= 60: return True return Falsedate_fashiondef date_fashion(you, date原创 2020-11-03 16:57:28 · 855 阅读 · 0 评论 -
CodingBat python List-1
https://codingbat.com/python/List-1first_last6def first_last6(nums): if nums[0] == 6 or nums[-1] == 6 : return True return Falsesame_first_lastdef same_first_last(nums): n = len(nums) if n >= 1 and nums[0] == nums[n-1]: return Tru原创 2020-11-03 16:28:01 · 619 阅读 · 0 评论 -
CodingBat python String-1
https://codingbat.com/python/String-1hello_namedef hello_name(name): return 'Hello ' + name + '!'def make_abba(a, b): return a + b + b + adef make_tags(tag, word): return '<{0}>{1}</{0}>'.format(tag,word)def make_out_word(out,原创 2020-11-03 16:07:05 · 1066 阅读 · 0 评论 -
CodingBat python Warmup-2
https://codingbat.com/python/Warmup-2Astring_timesdef string_times(str, n): return str*nfront_timesdef front_times(str, n): return str[:3]*nstring_bits思路:假设第一个位置为111,返回奇数位置的字符构成的字符串。def string_bits(str): return str[::2]string_splosion原创 2020-10-28 13:23:23 · 451 阅读 · 0 评论 -
CodingBat python Warmup-1
https://codingbat.com/python/Warmup-1sleep_in思路:简单的逻辑运算,如果weekdayweekdayweekday为FalseFalseFalse或者vacationvacationvacation为TrueTrueTrue就返回TrueTrueTrue,否则返回FalseFalseFalse。def sleep_in(weekday, vacation): return not weekday or vacationmonkey_trouble原创 2020-10-28 03:22:07 · 332 阅读 · 0 评论