-
任务
请给Person类的__init__方法中添加name和score参数,并把score绑定到__score属性上,看看外部是否能访问到。
?不会了怎么办
以双下划线开头的属性无法被外部访问,"__xxx__"除外。
参考代码:
class Person(object): def __init__(self, name, score): self.name = name self.__score = score p = Person('Bob', 59) print p.name print p.__score
查看全部 -
任务
请定义Person类的__init__方法,除了接受 name、gender 和 birth 外,还可接受任意关键字参数,并把他们都作为属性赋值给实例。
?不会了怎么办
要定义关键字参数,使用 **kw;
除了可以直接使用self.name = 'xxx'设置一个属性外,还可以通过 setattr(self, 'name', 'xxx') 设置属性。
参考代码:
class Person(object): def __init__(self, name, gender, birth, **kw): self.name = name self.gender = gender self.birth = birth for k, v in kw.iteritems(): setattr(self, k, v) xiaoming = Person('Xiao Ming', 'Male', '1990-1-1', job='Student') print xiaoming.name print xiaoming.job
查看全部 -
顺序:,x1 < x2(第一个元素小于第二个) 返回-1;
倒序:,x1 < x2(第一个元素小于第二个) 返回1;
查看全部 -
int(数字) 会计算出取整数后的值,默认十进制,向下取整
判断一个数的平方根是否是整数:math.sqrt(x)==int(math.sqrt(x))查看全部 -
map():一个参数,是对所有元素调用f,生成新list
reduce():两个参数
reduce(function, iterable[, initializer])
,显示第一二调用f,再结果和第三调用f,以此类推
filter():一个参数,过滤不符合条件的元素,符合条件的组成新的list
查看全部 -
p1.get_grade 返回的是一个函数对象,但这个函数是一个绑定到实例的函数,p1.get_grade() 才是方法调用。
查看全部 -
sum(iterable[, start])
iterable -- 可迭代对象,如:列表、元组、集合。
反例:
print map(sum,[1,2,3])
运行后报错:TypeError: 'int' object is not iterable
查看全部 -
import functools
def cmp_ignore_case(s1, s2):
str1=s1.upper()
str2=s2.upper()
if str1 < str2:
return -1
if str1 > str2:
return 1
return 0
sorted_ignore_case = functools.partial(sorted,cmp=cmp_ignore_case)
print sorted_ignore_case(['bob', 'about', 'Zoo', 'Credit'])
查看全部 -
任务
请定义Person类的__init__方法,除了接受 name、gender 和 birth 外,还可接受任意关键字参数,并把他们都作为属性赋值给实例。
?不会了怎么办
要定义关键字参数,使用 **kw;
除了可以直接使用self.name = 'xxx'设置一个属性外,还可以通过 setattr(self, 'name', 'xxx') 设置属性。
参考代码:
class Person(object): def __init__(self, name, gender, birth, **kw): self.name = name self.gender = gender self.birth = birth for k, v in kw.iteritems(): setattr(self, k, v) xiaoming = Person('Xiao Ming', 'Male', '1990-1-1', job='Student') print xiaoming.name print xiaoming.job
查看全部 -
任务
请创建包含两个 Person 类的实例的 list,并给两个实例的 name 赋值,然后按照 name 进行排序。
?不会了怎么办
sorted() 是高阶函数,接受一个比较函数。
参考代码:
class Person(object): pass p1 = Person() p1.name = 'Bart' p2 = Person() p2.name = 'Adam' p3 = Person() p3.name = 'Lisa' L1 = [p1, p2, p3] L2 = sorted(L1, lambda p1, p2: cmp(p1.name, p2.name)) print L2[0].name print L2[1].name print L2[2].name
查看全部 -
任务
请练习定义Person类,并创建出两个实例,打印实例,再比较两个实例是否相等。
?不会了怎么办
要打印实例,直接使用print语句;
要比较两个实例是否相等,用==操作符。
参考代码:
class Person(object): pass xiaoming = Person() xiaohong = Person() print xiaoming print xiaohong print xiaoming == xiaohong
查看全部 -
任务
在Python 3.x中,字符串统一为unicode,不需要加前缀 u,而以字节存储的str则必须加前缀 b。请利用__future__的unicode_literals在Python 2.7中编写unicode字符串。
?不会了怎么办
使用from __future__ import unicode_literals将把Python 3.x的unicode规则带入Python 2.7中。
参考代码:
from __future__ import unicode_literals s = 'am I an unicode?' print isinstance(s, unicode)
查看全部 -
任务
利用import ... as ...,还可以动态导入不同名称的模块。
Python 2.6/2.7提供了json 模块,但Python 2.5以及更早版本没有json模块,不过可以安装一个simplejson模块,这两个模块提供的函数签名和功能都一模一样。
试写出导入json 模块的代码,能在Python 2.5/2.6/2.7都正常运行。
?不会了怎么办
先尝试导入json,如果失败,再尝试导入simplejson as json
参考代码:
try: import json except ImportError: import simplejson as json print json.dumps({'python':2.7})
查看全部 -
Python的os.path模块提供了 isdir() 和 isfile()函数,请导入该模块,并调用函数判断指定的目录和文件是否存在。
注意:
1. 由于运行环境是平台服务器,所以测试的也是服务器中的文件夹和文件,该服务器上有/data/webroot/resource/python文件夹和/data/webroot/resource/python/test.txt文件,大家可以测试下。
2. 当然,大家可以在本机上测试是否存在相应的文件夹和文件。
import os print os.path.isdir(r'C:\Windows') print os.path.isfile(r'C:\Windows\notepad.exe')
?不会了怎么办
注意到os.path模块可以以若干种方式导入:
import os import os.path from os import path from os.path import isdir, isfile
每一种方式调用 isdir 和 isfile 都有所不同。
参考代码:
import os print os.path.isdir(r'/data/webroot/resource/python') print os.path.isfile(r'/data/webroot/resource/python/test.txt')
查看全部 -
任务
在第7节中,我们在sorted这个高阶函数中传入自定义排序函数就可以实现忽略大小写排序。请用functools.partial把这个复杂调用变成一个简单的函数:
sorted_ignore_case(iterable)
?不会了怎么办
要固定sorted()的cmp参数,需要传入一个排序函数作为cmp的默认值。
参考代码:
import functools sorted_ignore_case = functools.partial(sorted, cmp=lambda s1, s2: cmp(s1.upper(), s2.upper())) print sorted_ignore_case(['bob', 'about', 'Zoo', 'Credit'])
查看全部
举报