习题18:命名,变量,代码,函数

发布时间:2017-11-12 16:36:01编辑:Run阅读(3455)

    函数可以做三样事情:

    1. 它们给代码片段命名,就跟‘变量’给字符串和数字命名一样

    2. 它们可以接受参数,就跟之前的脚本argv一样

    3. 通过使用#1和#2,它们可以让你创建‘微型脚本’或者‘小命令’

    可以使用def新建函数,练习代码如下

    # coding: utf-8
    __author__ = 'www.py3study.com'
    def print_two(*args):
       arg1, arg2 = args
       print("arg1:{},agr2:{}".format(arg1, arg2))

    def print_two_again(arg1, arg2):
       print("arg1:{},arg2:{}".format(arg1, arg2))

    def print_one(arg1):
       print("arg1:{}".format(arg1))

    def print_none():
       print("I got nothin.")

    print_two("Zed", "Tom")
    print_two_again('Zed', 'Tom')
    print_one('First!')
    print_none()

    print_two解析一下,这个函数和你写脚本的方式差不多,因此看上去会比较眼熟

    1. 首先告诉python创建一个函数,使用的命令是def,也就是定义(define)的意思

    2. 紧接着def的是函数的名称,上面的例子中它的名称是print_two,名字可以随便取,xxx,yyy随意,不过最好写的名称是有含义的,不然时间一下,哪里还记得xxx,yyy是什么东西,最好函数的名称能够体现出函数的功能来

    3. 然后告诉函数我们需要*args,这和脚本的argv非常相似,参数必须放在括号中才能正常工作

    4. 接着用冒号: 结果本行,然后开始下一行缩进

    5. 使用4个缩进的行都是属于print_two这个函数的内容,其中第一行的作用是将参数解包,这和脚本参数解包原理一样

    6. 把解包后的每个参数打印出来,和之前的练习相似


    函数print_two的问题是: 它并不是创建函数最简单的方法。在python函数中可以跳过整个参数解包的过程,直接使用()里边的名称作为变量名,这就是print_two_again实现的功能


    接下来的例子是print_one,它演示了函数如何接受单个参数

    最后例子是print_none,它演示了函数可以不接受任何参数

    应该看到的结果

    图片.png

    常见问题

    函数名称有什么规则?

    和变量名一样,只要以字母数字以及下划线组成,而且不是数字开始,就可以了

    *args的*是什么意思?

    它的功能是告诉python把函数的所有参数都接受进来,然后放到名字叫做args的列表中去


关键字