为了账号安全,请及时绑定邮箱和手机立即绑定

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
学习人数
综合评分9.20
575人评价 查看评价
9.6 内容实用
9.0 简洁易懂
9.0 逻辑清晰
class Person(object):
def __init__(self, name, score):
self.name = name
self.__score = score

p = Person('Bob', 59)

print p.name
try: #此处加个异常处理即可
print p.__score
except AttributeError:
print AttributeError
setattr(object, name, values)方法
给对象的属性赋值,若属性不存在,先创建再赋值。

希望大家不要气馁,有问题多思考,多问,不会的可以先放一放,等学完之后再回过头看,或许会简单一点。大家加油!
看了楼上说的gcd()函数,但是最好不在__init__就用,因为分子分母相乘之后仍然可能有最大公约数,最好是在__str__里面用
def prod(x, y):
return x*y

print reduce(prod, [2, 4, 5, 7, 12])
import math

def add(x, y, f):
return f(x) + f(y)

print add(25, 9, math.sqrt)
看不太懂,赶紧下载一个pycharm压压惊
求最大公约数算法:

(1)辗转相除法

两整数a和b:

① a%b得余数c

② 若c=0,则b即为两数的最大公约数,结束

③ 若c≠0,则a=b,b=c,再回去执行①

(2)相减法

两整数a和b:

① 若a>b,则a=a-b

② 若a<b,则b=b-a

③ 若a=b,则a(或b)即为两数的最大公约数,结束

④ 若a≠b,则再回去执行①

(3)穷举法:

① i= a b中的小数

② 若a,b能同时被i整除,则i即为最大公约数,结束

③ i--,再回去执行②
>>call factorial() in 4.138947 ms
每次执行计算出的时间都不一样
#-*- coding: utf-8 -*-
class Person(object):
def __init__(self, name, __score):
self.name = name
self.__score =__score
def get_grade(self):
if self.__score >=80:
return "A-优秀"
if self.__score >=60:
return "B-及格"
return "C-不及格"
class Person(object):
__count = 0
def __init__(self, name):
Person.__count = Person.__count+1
self.name =name
print Person.__count
p1 = Person('Bob')
p2 = Person('Alice')
try:
print Person.__count
except:
print 'AttributeError'
答案
最开头加入
#coding: utf-8
然后类中代码:
def __init__(self, name, score):
self.name=name
self.__score = score
def get_grade(self):
if self.__score >=85:
return "A-优秀"
elif self.__score >=60:
return "B-及格"
else:
return "C-不及格"
本节课确实有些难了,希望大家不要气馁,等学完总体的课程再回来仔细品味
个人感觉我的才是符合老师要求和达到练习的代码:
class Person(object):
__count = 0
def __init__(self, name):

Person.__count += 1

self.name = name

print Person.__count
p1 = Person('Bob')

p2 = Person('Alice')


try:
print Person.__count
except AttributeError:
print 'attributeerror'
print filter(lambda s: s and len(s.strip())>0, ['test', None, '', 'str', ' ', 'END'])#其实就是把return写成lambda而已
def calc_pord(list):
def m():
a=1
for i in list:
a*=i
return a
return m
print calc_pord([1,2,3,4])()
课程须知
本课程是Python入门的后续课程 1、掌握Python编程的基础知识 2、掌握Python函数的编写 3、对面向对象编程有所了解更佳
老师告诉你能学到什么?
1、什么是函数式编程 2、Python的函数式编程特点 3、Python的模块 4、Python面向对象编程 5、Python强大的定制类

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消