learn python the hard way ex18

ex18 函数function

函数功能

  1. 给代码片段命名,就像变量给字符串和数字命名一样。
  2. 函数可接受参数,就跟你的脚本接受argv一样。
  3. 通过使用#1和#2,它们可以让你创建“微型脚本”或者“小命令”。

python中可以用def新建函数,创建4个不同函数,它们工作起来和你的脚本一样,然后演示各个函数关系。

code

# this one is like your script with argvt
def print_two(*args):
    arg1, arg2 = args
    print(f"arg1:{arg1}, arg2:{arg2}")

# that *argv is actually pointless,we can just do this:
def print_two_again(arg1, arg2):
    print(f"arg1:{arg1}, arg2:{arg2}")

# this just takes one argument 函数接收单个参数
def print_one(arg1):
    print(f"arg1:{arg1}")

# this one takes no arguments 函数可以不接收参数
def print_none():
    print("I got nothin'.")

print_two("Zed", "Shaw")
print_two_again("Zed", "Shaw")
print_one("First!")
print_none()

result

arg1:Zed, arg2:Shaw
arg1:Zed, arg2:Shaw
arg1:First!
I got nothin'.

解析

分解第一个函数print_two,和写脚本方式差不多。

  1. 用def命令创建一个函数,def紧接着的是函数名称。本例中是print_two,名字可随便取,但函数名最好体现函数的功能。
  2. 然后告诉函数我们需要*argv,参数必须放在()中。
  3. 接着用:结束本行,然后开始下一行缩进。
  4. :以下,用4个空格缩进的行都属于函数print_two的内容。其中第一行作用是将参数解包,于脚本参数解包的原理差不多。
  5. 为演示工作原理,把解包后参数打印。

python中可跳过整个参数解包的过程,直接使用()里的名称作变量名,这是print_two_again的演示。
为自己写一个函数注意事项以供后续参考。你可以写在一个索引卡片上随时阅读,直到你记住所有的要点为止。注意事项如下:(都是正确的要点)

函数定义是以 def 开始的吗?
函数名称是以字符和下划线 _组成的吗?
函数名称是不是紧跟着括号 ( ?
括号里是否包含参数?多个参数是否以逗号隔开?
参数名称是否有重复?(不能使用重复的参数名)
紧跟着参数的是不是括号和冒号 ): ?
紧跟着函数定义的代码是否使用了 4 个空格的缩进 (indent)?
函数结束的位置是否取消了缩进 (“dedent”)?

当你运行(或者说“使用use”或“调用call”)一个函数时,记得检查下面的点:

调运函数时是否使用了函数的名称?
函数名称是否紧跟着 (?
括号后有无参数?多个参数是否以逗号隔开?
函数是否以 ) 结尾?
按照这两份检查表里的内容检查你的代码,直到你不需要检查表为止。

按照这两份检查表里的内容检查你的代码,直到你不需要检查表为止。

最后,将下面这句话阅读几遍:

运行函数(run)’、‘调用函数(call)’、和‘使用函数(use)’是同一个意思

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值