文档开发者中心
我的

【python成长之路】最小公倍数

目的:求2个正整数的最小公倍数

代码:


class Demo:

    def gcd(self, x, y):
        if x > y:
            min = y
            max = x
        else:
            min = x
            max = y
        n = 1
        for i in range(2, min + 1):
            if max % i == 0 and min % i == 0:
                n = i
        return n

    def lcm(self, x, y):
        n = self.gcd(x, y)
        result = x * y / n
        return result


【知识点】

1、range函数,range(start, stop[, step])

默认range(4),是指[0,1,2,3],从0开始,步长为1,截止到(4-1),而不是[0,1,2,3,4]。因此在求最大公约数时,为了取到最后的数字,需要用range(2,min+1),而不是range(2,min)


2、self用法:

参考链接:

以下只说几点重要:

(1)self表示的是类实例本身,而不是类;

示例代码:

class Student(object):

def __init__(self, name):

self.name = name

如上代码,name是外部传入的参数,通过self.name将name变为类内部的参数,将name表示的值变为了类自己的属性变量,类内的全局变量。

如果还没有理解,self.name 和name的区别,可以再参考


(2)一般类的方法,都要加上self,并且方法的第一参数必是self,然后才是具体的参数(如果参数是列表,可以用*args表示;如果参数是字典,用**kwargs)

类内方法的调用 ,都能通过self.XX()方式进行调用。


(3)类的参数:self.__name表示类内的私有变量,外部无法访问;self.__name__表示特殊变量,外部可以访问修改;


点赞
收藏
回复
分享
举报
浏览802 发布于2019-07-17 02:55未知归属地
全部评论
最多点赞
最新发布
最早发布
暂无评论
暂无评论
写回答
新增插入模板功能
一键使用模板,快速填写内容,轻松发帖~
知道了
  • 为了保障您的信息安全,请勿上传您的敏感个人信息(如您的密码等信息)和您的敏感资产信息(如关键源代码、签名私钥、调试安装包、业务日志等信息),且您需自行承担由此产生的信息泄露等安全风险。
  • 如您发布的内容为转载内容,请注明内容来源。

我要发帖子

了解社区公约,与您携手共创和谐专业的开发者社区。