一、函数的形成
需求1:来测试一下‘hello word’ 的长度
# 在没有函数的时候,我们可以用for循环实现 s1 = "hello world" length = 0 for i in s1: length = length+1 print(length)
再增加一个需求2:再来测试一下另外一个字符串的长度:‘hello china’
然后需求1和需求2的代码就变成下边这样
s1 = "hello world" length = 0 for i in s1: length = length+1 print(length) s2 = "hello china" length = 0 for i in s2: length = length+1 print(length)
上边的代码确实可以实现需求,但是有缺点:代码重复,可读性差。 我们将上面的代码称之为面向过程的方式
为了解决这种问题就出现了函数
函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。
二、函数的格式和调用
def mylen(): # 定义一个函数mylen
'''计算s1的长度''' s1 = "hello world" length = 0 for i in s1: length = length+1 print(length) mylen() # 函数调用
def 关键词开头,空格之后接函数名称和圆括号(),最后还有一个":"。 def 是固定的,不能变,他就是定义函数的关键字。 空格 为了将def关键字和函数名分开,必须空(四声) 函数名:函数名只能包含字符串、下划线和数字且不能以数字开头。虽然函数名可以随便起,但我们给函数起名字还是要尽量简短,并能表达函数功能 括号:是必须加的 注释:每一个函数都应该对功能和参数进行相应的说明,应该写在函数下面第一行。以增强代码的可读性。 调用:就是 函数名()
二、函数的返回值
1、什么是函数的返回值
在使用内置函数len()方法时,得到的结果会赋值给一个变量,然后得到结果:
str_len = len('hello,world') print(str_len)
但是自己写的这个函数mylen(),并不会得到这样的结果,如何让他和len函数一样,有返回值呢?
那就是在函数的最后加上一个return,return 后面写你需要的返回值就可以了。
#函数定义 def mylen(): """计算s1的长度""" s1 = "hello world" length = 0 for i in s1: length = length+1 return length #函数调用 str_len = mylen() print('str_len : %s'%str_len) return返回值
2、return关键字的作用
1、函数中遇到return终止函数。
2、返回值 返回给了函数的调用者
3、return返回值的的三种情况
第一种:没有返回值 返回None
def mylen(): s1 = "hello world" length = 0 for i in s1: length = length+1 str_len = mylen() print(str_len) # 因为没有返回值,此时的str_len为None
第二种:单个值 返回单个值
第三种:多个值 返回一个由这多个值组成的元组