学习笔记-小甲鱼Python3学习第十七

发布时间:2019-09-24 08:38:58编辑:auto阅读(1852)

    优秀的东西永远是经典的,经典的东西永远是简单的,不是说复杂不好,而是能够把复杂的东西简单化,堪称经典。

    为了使代码程序实现更为简单,我们把代码分为越来越小的组成部分。

    分三大部分实现:函数、对象、模块

    python中定义函数使用关键字def

    >>> def Myfirstfunction():

    print('非常高兴!')

    print('我的第一个函数!')

    print('感谢!')


    >>> Myfirstfunction()                   #对函数调用

    非常高兴!

    我的第一个函数!

    感谢!

    如果调用没有定义的函数,python会报错:

    >>> Mysecondfunction()

    Traceback (most recent call last):

      File "<pyshell#141>", line 1, in <module>

        Mysecondfunction()

    NameError: name 'Mysecondfunction' is not defined


    以给自定义函数传递参数,参数数量不限,一般建议最多3-4个,有多个参数,使用','隔开

    一个参数:

    >>> def MySecondFunction(name):

    print(name + ',我爱你!')


    >>> MySecondFunction('python')

    python,我爱你!

    >>> MySecondFunction('月亮')

    月亮,我爱你!

    两个参数:

    >>> def Score(name,score):

    print(name + '的成绩为' + score +'分.')


    >>> Score('张三','89')

    张三的成绩为89分.


    ------------------分割线,哈哈哈---------------------

    课后作业:


    0.你有听说过DRY吗?

    DRY是指Don't Repeat Yourself,字面意思来看:"不要重复自己"。强调的意思就是在进行编程时相同的代码不要重复写,最好只写一次,然后可以在其他地方直接引用。如此一来,可以提高代码重用率,缩减代码量,同时也有助于提高代码的可读性和可维护性。当需要做出更改时,只需要更改一个地方即可。


    1.都是重复一段代码,为什么我要使用函数(而不使用简单的拷贝黏贴)呢?

    使用函数:

    a.可以降低代码量:调用函数只需一行,而拷贝黏贴需要N倍代码;

    b.可以降低维护成本:函数只需修改def内容,而拷贝黏贴需要改很多处;

    c.使程序更具可读性:没人想看很多重复的程序。


    2.函数可以有多个参数吗?

    可以,理论上你想要多少个就可以有多少个,只是如果参数过多,在调用的时候出错的机率就会大大提高,因而写这个函数的程序员也会被相应的问候祖宗,所以,尽量精简吧,在Python的世界里,精简才是王道!


    3.创建函数使用什么关键字,要注意什么?

    使用'def'关键字,函数名后加(),()后面是':',然后缩进部分均属于函数体的内容。


    4.请问这个函数有多少个参数?

    def MyFun((x,y),(a,b)):

        return x*y-a*b

    0个。因为函数的参数是需为变量,用元组的形式来传递是不行的。可以改为


    def MyFun(x,y):

        return x[0]*x[1]-y[0]*y[1]


    5.请问调用以下这个函数会打印什么内容?

    >>> def hello():

    print('Hello World!')

    return

    print('Welcome to FishC.com!')


    >>> hello()

    Hello World!

    因为当Python执行到return语句的时候,Python认为函数到此结束,需要返回了(尽管没有任何返回值)


    ------------------------分割线,哈哈哈------------------------------


    动动手:


    0.编写一个函数power()模拟内建函数pow(),即power(x, y)为计算并返回x的y次幂的值。


    >>> def Power(x,y):

    return (x ** y)


    >>> print(Power(2,3))

    8


    1.编写一个函数,利用欧几里得算法,求最大公约数,例如gcd(x, y)返回值为参数x和参数y的最大公约数。


    >>> def gcd(x,y):

    while y:

    t = x % y

    x = y

    y = t

    return x

    >>> gcd(99,27)

    9


    2.编写一个将十进制转换为二进制的函数,要求采用“除2取余”的方式,结果与调用bin()一样返回字符串形式


    >>> def Dec2Bin(dec):

    temp = []

    result = ''

    while dec:

    quo = dec % 2

    dec = dec // 2

    temp.append(quo)

    while temp:

    result += str(temp.pop())

    return result


关键字