Python基础 day08--函数基本使用

从前面的几篇博客中,我们已经熟悉了print()、input()和len()函数。Python提供了这样一些内建函数,但你也可以编写自己的函数。"函数"就像一个程序内的小程序一样。在之前的学习中,只是用Python实现了一些简单的功能,这些功能也只是由简单的流程控制语句配合数据类型(如列表、字典)实现,但是这些程序有着无法避免的缺陷,比如说:代码耦合性太高,各功能都糅合在一起,“干湿”不分离。 扩展性差,由于代码都揉在一起,如果要添加新的功能,可能就要费一番功夫了。 代码冗余,比如实现一个加法功
摘要由CSDN通过智能技术生成

从前面的几篇博客中,我们已经熟悉了print()、input()和len()函数。Python提供了这样一些内建函数,但你也可以编写自己的函数。"函数"就像一个程序内的小程序一样。

在之前的学习中,只是用Python实现了一些简单的功能,这些功能也只是由简单的流程控制语句配合数据类型(如列表、字典)实现,但是这些程序有着无法避免的缺陷,比如说:

  • 代码耦合性太高,各功能都糅合在一起,“干湿”不分离。
  • 扩展性差,由于代码都揉在一起,如果要添加新的功能,可能就要费一番功夫了。
  • 代码冗余,比如实现一个加法功能,那么当别处还需要这个功能的话,还要重新实现这个功能,这种情况多了,就是在重复的造轮子,这种情况是不可取的。
  • 可读性差,经过如上的几种不可避免操作之后,代码可读性就变得非常差。

列举了如上的几种目前代码的弊端之后,该如何解决呢?解决方法就是使用函数。其实我们在之前的学习中已经体会到函数的好处了,比如要计算一个列表的长度,可能想到用for循环解决问题:

count = 0
li = ['曹操','吕布','周瑜','孙权','马超','郭嘉']
for i in li:
    count += 1

print(count)
# 结果为:
6

当要计算一串字符串、元组的长度,此时不可避免的陷入重复造轮子的过程。知道学习了len()函数之后。

li = ['曹操','吕布','周瑜','孙权','马超','郭嘉']
print(len(li))
# 结果为:
6

函数的定义与调用

创建(定义)函数

def <function_name>([arg1,arg2,...argn]):
    '''
    functional annotation
    '''
    pass
    return

通过def关键字来定义函数,空格之后的function_name 为函数名(必须有),函数的命名规则参考变量的命名。括号(必须有)内的参数是可选的,括号后面的 : 也是必须的。注释部分为可选的(但强烈建议有注释,就像功能说明书一样),pass部分为函数的具体功能实现代码。执行结果视情况可以选择用return返回,如果没有显式的return具体内容的话,默认返货None。

虽然def 为关键字,但def也是可执行的语句,就是说当定义完函数之前,这个函数此时是不存在的:

print(dir())
def fun():
    pass
print(dir)
# 结果为:
['__annotations__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__',
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值