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

发布时间:2019-09-25 08:24:51编辑:auto阅读(1813)

    函数和过程

    函数(function)有返回值

    过程(procedure)是简单、特殊并且没有返回值的

    变量:

    局部变量(Local Variable):在整个py文件中声明,全局范围内都可以调用

    全局变量(Global Variable):在某个函数中声明的,只能在该函数中调用它,如果试图在超出范围的地方调用,程序会报错


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

    测试题


    0.下边程序会输入什么?

    >>> def next():

            print('我在next()函数里……')

            pre()      

    >>> def pre():

            print('我在pre()函数里……')      

    >>> next()


    我在next()函数里......

    我在pre()函数里......


    1.请问一下这个函数有返回值吗?

    >>> def hello():

            print('Hello FishC!')


    有返回值,返回值是None

    如果没有使用return语句指定返回值,它会返回一个None对象,所以说Python所有的函数都有返回值。


    2.请问python的return语句可以返回多个不同类型的数据吗?

    可以。默认使用逗号隔开,以元组的形式返回。也可以使用列表包含起来返回。


    3.目测以下程序会打印什么内容?

    def fun(var):

        var = 1314

        print(var,end='')

     

    var = 520

    fun(var)

    print(var)

    >>>

    1314520


    4.目测以下程序会打印什么内容?

    var = 'Hi'

    def fun1():

        global var

        var = 'Baby'

        return fun2(var)

     

    def fun2(var):

        var += 'I Love You'

        fun3(var)

        return var

     

    def fun3(var):

        var = '小甲鱼'

    print(fun1())


    >>> 

    BabyI love python.


    这串代码真蛋疼,我的理解是在fun1()中声明全局变量var后,在给var赋值Baby,那么全局变量var的值已经由Hi变更为了Baby,而Baby这个值随即又传递给了fun2(var)的形参var,然后执行fun2(),var的值变为了BabyI love you

    fun2()中虽然调用了fun3(),但fun3('小甲鱼')也就仅限于此了,没有任何实际意义。随后fun2()返回var的值为BabyI love you给fun1(),fun1()又返回这个值,执行print(fun1())后打印出来


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


    三、动动手:

    0.编写一个函数,判断传入的字符串参数是否为“回文联”(回文联即用回文形式写成的对联,既可顺读,也可倒读。例如:上海自来水来自海上)

    def hwl(string):

        list1 = list(string)

        list2 = reversed(list1)

        if list1 == list(list2):

               return '是回文联!'

        else:

               return '不是回文联!'


    >>> hwl('上海自来水来自海上')

    '是回文联!'

    >>> hwl('123321')

    '是回文联!'

    >>> hwl('abcda')

    '不是回文联!'

       

    1.编写一个函数,分别统计出传入字符串参数(可能不只一个参数)的英文字母、空格、数字和其它字符的个数。

    def count(*args):

        length = len(args)

        chars = 0

        nums = 0

        spaces = 0

        others = 0

        for i in range(length):

            for each in str(args[i]):

                if each.isalpha():

                    chars += 1

                elif each.isdigit():

                    nums += 1

                elif each.isspace():

                    spaces += 1

                else:

                    others += 1

            print('第%d个字符串中:字母一共%d个,数字一共%d个,空格一共%d个,其他字符一共%d个'%(i+1,chars,nums,spaces,others))


关键字