<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>语言特性 on 里列昂遗失的记事本</title><link>https://blog.overfit.org/tags/%E8%AF%AD%E8%A8%80%E7%89%B9%E6%80%A7/</link><description>Recent content in 语言特性 on 里列昂遗失的记事本</description><generator>Hugo</generator><language>zh-cn</language><lastBuildDate>Fri, 03 Jun 2022 21:56:00 +0800</lastBuildDate><atom:link href="https://blog.overfit.org/tags/%E8%AF%AD%E8%A8%80%E7%89%B9%E6%80%A7/index.xml" rel="self" type="application/rss+xml"/><item><title>创建矩阵类（C++）</title><link>https://blog.overfit.org/posts/2022-06-03-16340819-%E5%88%9B%E5%BB%BA%E7%9F%A9%E9%98%B5%E7%B1%BBc/</link><pubDate>Fri, 03 Jun 2022 21:55:00 +0800</pubDate><guid>https://blog.overfit.org/posts/2022-06-03-16340819-%E5%88%9B%E5%BB%BA%E7%9F%A9%E9%98%B5%E7%B1%BBc/</guid><description>#include&amp;lt;iostream&amp;gt; using namespace std; template&amp;lt;class T&amp;gt; class matrix { public: matrix(int theRows = 0, int theColumns = 0); ma</description></item><item><title>支持函数式编程的包</title><link>https://blog.overfit.org/posts/2022-01-04-15764249-%E6%94%AF%E6%8C%81%E5%87%BD%E6%95%B0%E5%BC%8F%E7%BC%96%E7%A8%8B%E7%9A%84%E5%8C%85/</link><pubDate>Tue, 04 Jan 2022 21:45:00 +0800</pubDate><guid>https://blog.overfit.org/posts/2022-01-04-15764249-%E6%94%AF%E6%8C%81%E5%87%BD%E6%95%B0%E5%BC%8F%E7%BC%96%E7%A8%8B%E7%9A%84%E5%8C%85/</guid><description>支持函数式编程的包 Python的目标不是变成函数式语言，但是得益于operator和functools等包的支持，函数式编程风格也可以信手拈来 operator模块 在函数式编程中，经常需要把算术运算符当作函数使用。例如，不适使用递归计算阶乘。求和可以使用sum函数，但是求积没</description></item><item><title>函数注解</title><link>https://blog.overfit.org/posts/2022-01-04-15764093-%E5%87%BD%E6%95%B0%E6%B3%A8%E8%A7%A3/</link><pubDate>Tue, 04 Jan 2022 21:08:00 +0800</pubDate><guid>https://blog.overfit.org/posts/2022-01-04-15764093-%E5%87%BD%E6%95%B0%E6%B3%A8%E8%A7%A3/</guid><description>函数注解 Python 3提供了一种句法，用于为函数声明中的参数和返回值附加元数据 # 有注解的clip函数 def clip(text: str, max_len: 'int&amp;gt;0' = 80) -&amp;gt; str: # max_len参数的注解是字符串 &amp;amp;</description></item><item><title>获取有关参数的信息</title><link>https://blog.overfit.org/posts/2021-12-31-15752666-%E8%8E%B7%E5%8F%96%E6%9C%89%E5%85%B3%E5%8F%82%E6%95%B0%E7%9A%84%E4%BF%A1%E6%81%AF/</link><pubDate>Fri, 31 Dec 2021 13:06:00 +0800</pubDate><guid>https://blog.overfit.org/posts/2021-12-31-15752666-%E8%8E%B7%E5%8F%96%E6%9C%89%E5%85%B3%E5%8F%82%E6%95%B0%E7%9A%84%E4%BF%A1%E6%81%AF/</guid><description>获取关于参数的信息 HTTP微框架Bobo有个使用内省函数的例子 # Bobo直到hello需要person参数，并且从HTTP请求中获取它 import bobo @bobo.query('/') def hello(person): return 'H</description></item><item><title>从定位参数到仅限关键字参数</title><link>https://blog.overfit.org/posts/2021-12-18-15704546-%E4%BB%8E%E5%AE%9A%E4%BD%8D%E5%8F%82%E6%95%B0%E5%88%B0%E4%BB%85%E9%99%90%E5%85%B3%E9%94%AE%E5%AD%97%E5%8F%82%E6%95%B0/</link><pubDate>Sat, 18 Dec 2021 10:44:00 +0800</pubDate><guid>https://blog.overfit.org/posts/2021-12-18-15704546-%E4%BB%8E%E5%AE%9A%E4%BD%8D%E5%8F%82%E6%95%B0%E5%88%B0%E4%BB%85%E9%99%90%E5%85%B3%E9%94%AE%E5%AD%97%E5%8F%82%E6%95%B0/</guid><description>从定位参数到仅限关键字参数 Python最好的特性之一是提供了极为灵活的参数处理机制，而且Python3进一步提供了仅限关键字参数（keyword-only argument）。与之密切相关的是，调用函数时使用*和**展开可迭代对象，映射到单个参数 # tag函数用于生成HTML</description></item><item><title>函数内省</title><link>https://blog.overfit.org/posts/2021-12-18-15704485-%E5%87%BD%E6%95%B0%E5%86%85%E7%9C%81/</link><pubDate>Sat, 18 Dec 2021 10:20:00 +0800</pubDate><guid>https://blog.overfit.org/posts/2021-12-18-15704485-%E5%87%BD%E6%95%B0%E5%86%85%E7%9C%81/</guid><description>函数内省 除了__doc__，函数对象还有很多属性。使用dir函数可以探知factorial具有下述属性： def factorial(n): return 1 if n &amp;lt; 2 else n * factorial(n - 1) dir(factorial) ['</description></item><item><title>可调用对象</title><link>https://blog.overfit.org/posts/2021-12-17-15703834-%E5%8F%AF%E8%B0%83%E7%94%A8%E5%AF%B9%E8%B1%A1/</link><pubDate>Fri, 17 Dec 2021 21:04:00 +0800</pubDate><guid>https://blog.overfit.org/posts/2021-12-17-15703834-%E5%8F%AF%E8%B0%83%E7%94%A8%E5%AF%B9%E8%B1%A1/</guid><description>可调用对象 除了用户定义的对象，调用运算符（即()）还可以应用到其他对象上。如果想判断对象能否调用，可以使用内置的callable()函数。 Python数据模型文档列出了7种可调用对象 1.用户定义的函数 使用def语句或lambda表达式创建 内置函数 使用C语言（CPyth</description></item><item><title>匿名函数</title><link>https://blog.overfit.org/posts/2021-12-17-15703818-%E5%8C%BF%E5%90%8D%E5%87%BD%E6%95%B0/</link><pubDate>Fri, 17 Dec 2021 20:54:00 +0800</pubDate><guid>https://blog.overfit.org/posts/2021-12-17-15703818-%E5%8C%BF%E5%90%8D%E5%87%BD%E6%95%B0/</guid><description>匿名函数 lambda关键字在Python表达式内部创建匿名函数 然后，Python简单的语法限制了lambda函数的定义体只能使用纯表达式。lambda函数的定义体中不能赋值，也不能使用while和try等Python语句 在参数列表中最适合使用匿名函数 # 使用lambda表</description></item><item><title>高等函数</title><link>https://blog.overfit.org/posts/2021-12-16-15697382-%E9%AB%98%E7%AD%89%E5%87%BD%E6%95%B0/</link><pubDate>Thu, 16 Dec 2021 12:50:00 +0800</pubDate><guid>https://blog.overfit.org/posts/2021-12-16-15697382-%E9%AB%98%E7%AD%89%E5%87%BD%E6%95%B0/</guid><description>高阶函数 接受函数为参数，或者把函数作为结果返回的函数是高阶函数（high-order function）。map函数就是一个，内置函数sorted也是：可选的key参数用于提供一个函数，它会应用到各个元素上进行排序 # 根据单词长度给一个列表排序 fruits = ['</description></item><item><title>一等函数</title><link>https://blog.overfit.org/posts/2021-12-16-15697323-%E4%B8%80%E7%AD%89%E5%87%BD%E6%95%B0/</link><pubDate>Thu, 16 Dec 2021 12:23:00 +0800</pubDate><guid>https://blog.overfit.org/posts/2021-12-16-15697323-%E4%B8%80%E7%AD%89%E5%87%BD%E6%95%B0/</guid><description>一等函数 在Python中，函数是一等对象。编程语言理论家把“一等对象”定义为满足下述条件的程序实体： 在运行时创建 能赋值给变量或数据结构中的元素 能作为参数传递给函数 能作为函数的返回结果 在Python中，整数、字符串和字典都是一等对象 把函数视作对象 Python函数是对</description></item><item><title>支持字符串和字节序列的双模式API</title><link>https://blog.overfit.org/posts/2021-12-16-15697068-%E6%94%AF%E6%8C%81%E5%AD%97%E7%AC%A6%E4%B8%B2%E5%92%8C%E5%AD%97%E8%8A%82%E5%BA%8F%E5%88%97%E7%9A%84%E5%8F%8C%E6%A8%A1%E5%BC%8Fapi/</link><pubDate>Thu, 16 Dec 2021 11:23:00 +0800</pubDate><guid>https://blog.overfit.org/posts/2021-12-16-15697068-%E6%94%AF%E6%8C%81%E5%AD%97%E7%AC%A6%E4%B8%B2%E5%92%8C%E5%AD%97%E8%8A%82%E5%BA%8F%E5%88%97%E7%9A%84%E5%8F%8C%E6%A8%A1%E5%BC%8Fapi/</guid><description>支持字符串和字节序列的双向API 标准库中的一些函数能接受字符串或字节序列作为参数，然后根据类型展现不同的行为。re和os模块中就有这样的函数 正则表达式中的字符串和字节序列 如果使用字节序列构建正则表达式，d和w等模式只能匹配ASCII字符；相比之下，如果是字符串模式，就能匹配</description></item><item><title>判断是否直角三角形</title><link>https://blog.overfit.org/posts/2021-11-21-15583438-%E5%88%A4%E6%96%AD%E6%98%AF%E5%90%A6%E7%9B%B4%E8%A7%92%E4%B8%89%E8%A7%92%E5%BD%A2/</link><pubDate>Sun, 21 Nov 2021 09:27:00 +0800</pubDate><guid>https://blog.overfit.org/posts/2021-11-21-15583438-%E5%88%A4%E6%96%AD%E6%98%AF%E5%90%A6%E7%9B%B4%E8%A7%92%E4%B8%89%E8%A7%92%E5%BD%A2/</guid><description>判断是否直角三角形 描述 输入三个数a,b,c, 判断能否以它们为三个边长构成直角三角形。若能，输出YES，否则输出NO。 输入格式 输入包括三行,每行是一个数字 输出格式 'YES' 或'NO' 代码 a, b, c = [eval(input(</description></item><item><title>字符串连接（Python123）</title><link>https://blog.overfit.org/posts/2021-11-21-15583124-%E5%AD%97%E7%AC%A6%E4%B8%B2%E8%BF%9E%E6%8E%A5python123/</link><pubDate>Sun, 21 Nov 2021 00:09:00 +0800</pubDate><guid>https://blog.overfit.org/posts/2021-11-21-15583124-%E5%AD%97%E7%AC%A6%E4%B8%B2%E8%BF%9E%E6%8E%A5python123/</guid><description>字符串连接 描述 用.将用户输入的4个字符串连接成一个字符串（第一个字符串前不能有'.'） 输入格式 输入包括4行, 每行输入一个字符串 输出格式 输出一个用'.'连接起来的字符串 代码 a, b, c, d = [input() for _ in</description></item><item><title>棋盘放米（Python123）</title><link>https://blog.overfit.org/posts/2021-11-20-15582326-%E6%A3%8B%E7%9B%98%E6%94%BE%E7%B1%B3python123/</link><pubDate>Sat, 20 Nov 2021 19:19:00 +0800</pubDate><guid>https://blog.overfit.org/posts/2021-11-20-15582326-%E6%A3%8B%E7%9B%98%E6%94%BE%E7%B1%B3python123/</guid><description>棋盘放米 描述 相传古代印度国王舍罕要褒赏他的聪明能干的宰相达依尔 （国际象棋发明者），问他需要什么，达依尔回答说：“国王只要在国际象棋的棋盘第一个格子里放一粒麦子，第二个格子里放两粒，第三个格子里放四粒，按此比例以后每一格加一倍，一直放到64格（国际象棋棋盘是8×8=</description></item><item><title>处理文本文件</title><link>https://blog.overfit.org/posts/2021-11-14-15550790-%E5%A4%84%E7%90%86%E6%96%87%E6%9C%AC%E6%96%87%E4%BB%B6/</link><pubDate>Sun, 14 Nov 2021 09:40:00 +0800</pubDate><guid>https://blog.overfit.org/posts/2021-11-14-15550790-%E5%A4%84%E7%90%86%E6%96%87%E6%9C%AC%E6%96%87%E4%BB%B6/</guid><description>处理文本文件 处理文本的最佳实践是“Unicode三明治”。尽早把输入的的字节序列解码成字符串，然后对字符串进行处理，在其他过程中一定不能编码或解码。对输出来说，要尽量晚地把字符串编码成字节序列 在Python3中能轻松的采纳Unicode三明治的建议，因为内置的open函数会再</description></item><item><title>了解编码问题</title><link>https://blog.overfit.org/posts/2021-10-27-15469402-%E4%BA%86%E8%A7%A3%E7%BC%96%E7%A0%81%E9%97%AE%E9%A2%98/</link><pubDate>Wed, 27 Oct 2021 10:35:00 +0800</pubDate><guid>https://blog.overfit.org/posts/2021-10-27-15469402-%E4%BA%86%E8%A7%A3%E7%BC%96%E7%A0%81%E9%97%AE%E9%A2%98/</guid><description>了解编码问题 虽然有一般性的UnicodeError异常，但是报告错误时几乎都会指明具体的异常：UnicodeEncoderError （把字符串转换成二进制序列时）或UnicodeDecoderError（把二进制序列转换成字符串时）。如果 源码的编码与预期不符，加载Pytho</description></item><item><title>基本编解码器</title><link>https://blog.overfit.org/posts/2021-10-25-15458166-%E5%9F%BA%E6%9C%AC%E7%BC%96%E8%A7%A3%E7%A0%81%E5%99%A8/</link><pubDate>Mon, 25 Oct 2021 13:42:00 +0800</pubDate><guid>https://blog.overfit.org/posts/2021-10-25-15458166-%E5%9F%BA%E6%9C%AC%E7%BC%96%E8%A7%A3%E7%A0%81%E5%99%A8/</guid><description>基本的编解码器 Python自带了超过100中编解码器（codec,encoder/decoder)，用于文本和字节之间相互转换。 每个编码器都有一个名称，如'uft_8'，而且经常有几个别名，如果'uft8'，'uft-8'和&amp;amp;#</description></item><item><title>字典推导</title><link>https://blog.overfit.org/posts/2021-09-26-15339973-%E5%AD%97%E5%85%B8%E6%8E%A8%E5%AF%BC/</link><pubDate>Sun, 26 Sep 2021 20:37:00 +0800</pubDate><guid>https://blog.overfit.org/posts/2021-09-26-15339973-%E5%AD%97%E5%85%B8%E6%8E%A8%E5%AF%BC/</guid><description>构造字典 DIAL_COODES=[ # 一个承载成对数据的列表，可以直接用在字典的构造方法中 (86,'China'), (91,'India'), (1,'United States'), (62,'Indonesia&amp;amp;</description></item><item><title>当列表不是首选时</title><link>https://blog.overfit.org/posts/2021-09-19-15310824-%E5%BD%93%E5%88%97%E8%A1%A8%E4%B8%8D%E6%98%AF%E9%A6%96%E9%80%89%E6%97%B6/</link><pubDate>Sun, 19 Sep 2021 09:11:00 +0800</pubDate><guid>https://blog.overfit.org/posts/2021-09-19-15310824-%E5%BD%93%E5%88%97%E8%A1%A8%E4%B8%8D%E6%98%AF%E9%A6%96%E9%80%89%E6%97%B6/</guid><description>数组 from array import array # 引入数组类型 from random import random floats=array('d',(random()for i in range(10**7))) # 利用一个可迭代对象来创建一个双精度浮</description></item><item><title>具体命名元组</title><link>https://blog.overfit.org/posts/2021-09-15-15271118-%E5%85%B7%E4%BD%93%E5%91%BD%E5%90%8D%E5%85%83%E7%BB%84/</link><pubDate>Wed, 15 Sep 2021 10:26:00 +0800</pubDate><guid>https://blog.overfit.org/posts/2021-09-15-15271118-%E5%85%B7%E4%BD%93%E5%91%BD%E5%90%8D%E5%85%83%E7%BB%84/</guid><description>from collections import namedtuple City=namedtuple('City','name country population coordinates') '''创建一个具名元组需要两个</description></item><item><title>元组和记录</title><link>https://blog.overfit.org/posts/2021-09-08-15241801-%E5%85%83%E7%BB%84%E5%92%8C%E8%AE%B0%E5%BD%95/</link><pubDate>Wed, 08 Sep 2021 11:00:00 +0800</pubDate><guid>https://blog.overfit.org/posts/2021-09-08-15241801-%E5%85%83%E7%BB%84%E5%92%8C%E8%AE%B0%E5%BD%95/</guid><description>lax_coordinates = (33.9425, -118.408056) # 洛杉矶国际机场的经纬度 city, year, pop, chg, area = ('Tokyo', 2003, 32450, 0.66, 8014) # 东京市的一些信息：市名</description></item><item><title>Python列表推导和可读性</title><link>https://blog.overfit.org/posts/2021-09-08-15241630-python%E5%88%97%E8%A1%A8%E6%8E%A8%E5%AF%BC%E5%92%8C%E5%8F%AF%E8%AF%BB%E6%80%A7/</link><pubDate>Wed, 08 Sep 2021 10:34:00 +0800</pubDate><guid>https://blog.overfit.org/posts/2021-09-08-15241630-python%E5%88%97%E8%A1%A8%E6%8E%A8%E5%AF%BC%E5%92%8C%E5%8F%AF%E8%AF%BB%E6%80%A7/</guid><description>symbols = '%^&amp;amp;*♕' codes = [] # 创建一个codes列表 for symbol in symbols: # 用for循环迭代symbols codes.append(ord(symbol)) # 将symbols中的元素迭代取出</description></item><item><title>Python模拟数据类型</title><link>https://blog.overfit.org/posts/2021-09-06-15234574-python%E6%A8%A1%E6%8B%9F%E6%95%B0%E6%8D%AE%E7%B1%BB%E5%9E%8B/</link><pubDate>Mon, 06 Sep 2021 16:57:00 +0800</pubDate><guid>https://blog.overfit.org/posts/2021-09-06-15234574-python%E6%A8%A1%E6%8B%9F%E6%95%B0%E6%8D%AE%E7%B1%BB%E5%9E%8B/</guid><description>利用特殊方法，来使得自定义对象来实现一个二维向量(Vector)类 一个简单的二维向量类 from math import hypot class Vector: def &lt;strong&gt;init&lt;/strong&gt;(self, x=0, y=0): self.x = x # 将输入的x，y分别赋值给类属性</description></item><item><title>一摞Python风格纸牌</title><link>https://blog.overfit.org/posts/2021-09-05-15230718-%E4%B8%80%E6%91%9Epython%E9%A3%8E%E6%A0%BC%E7%BA%B8%E7%89%8C/</link><pubDate>Sun, 05 Sep 2021 20:24:00 +0800</pubDate><guid>https://blog.overfit.org/posts/2021-09-05-15230718-%E4%B8%80%E6%91%9Epython%E9%A3%8E%E6%A0%BC%E7%BA%B8%E7%89%8C/</guid><description>import collections # 引入collections模块 Card = collections.namedtuple('Card', ['rank', 'suit']) # 用namedtuple创造了一个简单的类C</description></item><item><title>Python语言基础学习报告</title><link>https://blog.overfit.org/posts/2021-09-04-15227657-python%E8%AF%AD%E8%A8%80%E5%9F%BA%E7%A1%80%E5%AD%A6%E4%B9%A0%E6%8A%A5%E5%91%8A/</link><pubDate>Sat, 04 Sep 2021 20:18:00 +0800</pubDate><guid>https://blog.overfit.org/posts/2021-09-04-15227657-python%E8%AF%AD%E8%A8%80%E5%9F%BA%E7%A1%80%E5%AD%A6%E4%B9%A0%E6%8A%A5%E5%91%8A/</guid><description>从零开始学Python 第一节课 学会了Python的变量赋值、运算符使用和强制类型转换 if &lt;strong&gt;name&lt;/strong&gt; == '&lt;strong&gt;main&lt;/strong&gt;': print('Hello World') print('人因梦想而伟大') print(</description></item></channel></rss>