要想找出一组值中的最大、最小的 n
个值,就要利用到 heapq
中的 nlargest()
和 nsmallest()
两个函数:
- Jan 22, 2017MORE
yield 和 deque
Jan 21, 2017MOREyield
相当于return
,是一个生成器,目前知道的就两点:- 返回一个值,并且记住这个返回的位置,下次迭代就从这个位置后开始
- 值是一次性的,不可以被反复访问,返回一次后便丢失
deque(maxlen=N)
创建一个固定长度的队列。当有新纪录加入而队列已满时会自动移除最老的那条记录,当不指定maxlen
时,则代表创建一个可变长的队列。从任意长度的可迭代对象中分解元素
Jan 18, 2017MORE需要从某个可迭代对象中分解出 N 个元素,Python 的 “*表达式” 可以用来解决这个问题,有以下经典例子:
Python虚拟环境
Sep 29, 2016MORE虚拟环境是 Python 解释器的一个私有副本,在这个环境中你可以安装私有包,而且不会影响系统中安装的全局 Python 解释器。虚拟环境非常有用,可以在系统的 Python 解释器中避免包的混乱和版本的冲突。为每个程序单独创建虚拟环境可以保证程序只能访问虚拟环境中的包,从而保证全局解释器的干净整洁,使其只作为创建(更多)虚拟环境的源。使用虚拟环境还有个好处,那就是不需要管理员权限。
Python学习笔记(十)
Sep 28, 2016MORE对函数测试
Python标准库中的模块
unittest
提供了代码测试工具,单元测试用于核实函数的某个方面没有问题,测试用例是一组单元测试,这些单元测试一起核实函数在各种情形下的行为都符合要求。
Python学习笔记(九)
Sep 19, 2016MORE打开文件
1
2
3
4
5
6"""打开文件并打印内容."""
with open('pi_digits.txt') as file_object:
contents = file_object.read()
print(contents)关键字
with
在不再需要访问文件后将其关闭。在这个程序中,注意到我们调用了函数open()
,但没有调用close()
;你也可以调用open()
和close()
来打开和关闭文件,但这样做时,如果程序存在 bug,导致close()
语句未执行,文件将不会关闭,未妥善地关闭文件可能会导致数据丢失或受损。
Python学习笔记(八)
Aug 29, 2016MORE在类的
__init__()
方法中,self
形参必不可少还必须位于其他行参的前面:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24"""汽车类,存储有关汽车的信息.
author: geekwang
date: 2016/08/29
"""
class Car(object):
"""一次模拟汽车的简单尝试."""
def __init__(self, make, model, year):
"""初始化描述汽车的属性."""
self.make = make
self.model = model
self.year = year
def get_descriptive_name(self):
"""返回整洁的描述性信息."""
long_name = str(self.year) + ' ' + self.make + ' ' + self.model
return long_name.title()
my_new_car = Car('audi', 'a4', 2016)
print(my_new_car.get_descriptive_name())
Python学习笔记(七)
Aug 28, 2016MORE在函数中使用关键字实参时,关键字实参的顺序无关重要:
1
2
3
4
5
6
7
8
9
10def describe_pet(animal_type, pet_name):
"""显示宠物的信息"""
print("\nI have a " + animal_type + ".")
print("My " + animal_type + "'s name is " + pet_name.title() + ".")
describe_pet(pet_name="harry", animal_type="hamster")
#
# I have a hamster.
# My hamster's name is Harry.
Vim 中 indentLine 插件修改对齐字符
Aug 28, 2016MORE完整的 Vim 配置教程请参阅我的博文:Vim 开发环境配置,下面是这篇博文的补充内容。
正如 indentLine 的 GitHub 主页 上说的那样子,要自定义对齐字符,首先要下载安装 FontForge,Mac 下在安装之前需要首先安装 XQuartz,这两个软件都安装完成之后,按照官方所说的步骤操作如下:(将 Vim 原来使用的那个字体卸载掉,譬如我原来用的是 Monaco for Powerline,然后在网上重新把这个字体下载下来,经过下列操作后再重新安装新生成的字体)
Python 学习笔记(六)
Aug 26, 2016MORE有时候,
input()
中的提示可能超过一行,在这种情况下,可将提示存储在一个变量中,再将该变量传递给函数input()
:1
2
3
4
5
6
7
8
9
10prompt = "If you tell us who you are, we can personalize the message you see."
prompt += "\nWhat is your first name? "
name = input(prompt)
print("\nHello, " + name + "!")
# If you tell us who you are, we can personalize the message you see.
# What is your first name? Eirc
#
# Hello, Eirc!