第五章Python函数

一、函数的初体验

1.函数:是组织好的,可重复使用的,用来实现特定功能的代码段

2.为什么要学习、使用函数?

为了得到一个针对特定需求、可供重复利用的代码段,提高程序的复用性,减少重复性代码,提高开发效率

3.好处:将功能封装在函数内,可供随时随地重复利用

 

"""
演示快速体验函数的开发及应用
"""
#  需求,统计字符串的长度,不使用内置函数len()
str1="itheima"
str2="itcast"
str3="python"
# 定义一个计数的变量
count=0
for i in str1:
    count+=1
 print(f"字符串{str1}的长度是:{count}")

count=0
for i in str2:
    count+=1
 print(f"字符串{str2}的长度是:{count}")

count=0
for i in str3:
    count+=1
 print(f"字符串{str3}的长度是:{count}")

# 可以使用函数,来优化这个过程
def my_len(date):
     count=0  
     for i in date:
           count+=1
     print(f"字符串{date}的长度是:{count}")

二、函数的基础定义语法

1.函数的定义:

def  函数名(传入参数):

       函数体

        return 返回值

2.注意事项

参数如不需要,可以省略

返回值如不需要,可以省略

函数必须先定义,后使用

"""
演示函数的定义语法
"""
#  定义一个函数,输出相关信息
def say_hi():
   print("hi")
# 调用函数,让定义的函数开始工作
   say_hi

三、函数的传入参数

1.函数定义中,提供的x和y称之为形式参数(形参),表明函数声明将要使用两个参数

2.参数之间使用逗号进行分隔

3.函数调用中,提供的5和6称之为实际参数,表示函数值执行时真正使用的参数值

4.传入的时候,按照顺序传入数据,使用逗号分隔

5.传入参数的数量是不受限制的

"""
演示函数使用参数
"""
# 定义二数相加的函数,通过参数接收被计算的两个数字
def add(x,y):
      result=x+y
      print(f"{x}+{y}的计算结果是:{result}")
# 调用函数,传入被计算的两个数字
add(5,6)

四、函数的返回值定义语法

1.返回值:就是程序中函数完成事情后,最后给调用者的结果

2.定义语法

def 函数(参数……):

      函数体

       return  返回值

变量=函数(参数)

3.函数体在遇到return后就结束了,所以写在return后的代码不会执行

"""
定义函数返回值的语法格式
"""
# 定义一个函数,完成两数相加功能
def add(a,b):
      result=a+b
# 通过返回值,将相加的结果返回给调用者
return  result
# 函数的返回值,可以通过变量去接收。
r=add(5,6)
print(r)

五、函数返回值的None类型

1.None可以主动使用return返回,效果等同于不写return语句

2.应用场景

用在函数无返回值上

用在if判断上:在if判断中,None等同于False,一般用于在函数中主动返回None,配合if判断做相关处理

用于声明无内容的变量上:定义变量,但暂时不需要变量有具体值,可以用None来代替

3.None是类型'NoneType'的字面量,用于表示:空的、无意义的

"""
演示特殊字面量
"""
# 无return语句的函数返回值
def say_hi():
    print("你好呀")
result=say_hi()
print(f"无返回值函数。返回的内容是:{result}")
print(f"无返回值函数。返回的内容类型是:{type(result)}")

#主动返回None的函数
def say_hi():
    print("你好呀")
    return None
result=say_hi
print(f"无返回值函数。返回的内容是:{result}")
print(f"无返回值函数。返回的内容类型是:{type(result)}")

# None用于if判断
def check_age(age)
    if age>18:
         return"SUCCESS"
    else:
         return None

result=check_age(16)
if not result:
       # 进入if表示result是None值,也就是False
   print("未成年,不可以进入")
    

六、函数的说明文档

1.作用:对函数进行说明解释,帮助更好理解函数的功能

2.定义语法

def func(x,y):

"""

函数说明

:param x:参数x的说明

:param y:参数y的说明

:return: 返回值的说明

"""

函数体

return 返回值

:param用于解释参数

:return用于解释返回值

"""
演示对函数进行文档说明
"""
# 定义函数,进行文档说明
def add(x,y):
"""
add函数可以接收两个参数,进行两数相加的功能
"""
      result=x+y
      print(f"两数相加的结果是:{result}")
return result

七、函数的嵌套调用

1.函数嵌套是指一个函数里面又调用了一个函数

2.如果函数a中,调用了另一个函数b,那么先把函数b中的任务都执行完毕之后,才会回到上次函数a执行的位置。


"""
演示嵌套调用函数
"""
# 定义函数func_b 
def func_b():
    print("---2---")
# 定义函数func_a,并在内部调用func_b 
def func_a():
    print("---1---")
# 嵌套调用func_b 
func_b()
    print("---3---")
# 调用函数func_a 
func_a()

八、变量的作用域

1.变量作用域指的是变量的作用范围,(变量在哪里可用,在哪里不可用)

2.局部变量:是定义在函数体内部的变量,即指在函数体内部生效

3.局部变量作用:在函数体内部,临时保存数据

"""
演示在函数使用的时候,定义的变量作用域
"""
# 演示局部变量
def test_a()
	num = 100
	print(num)

    test_a()
#出了函数体,局部变量就无法使用了
  print(num)

4.全局变量:在函数体内、外都能生效的变量

# 演示全局变量
num= 200
def test_a()
    print(f"test_a: {num}")

def test_b()
    print(f"test_b: {num}")
test_a() 
test_b() 
print(num)

#在函数内修改全局变量
num	200	
def test_a():
    print(f"test_a: {num}")
def test_b():
    num =500	# 局部变量	
    print(f"test_b: {num}")
test_a()
test_b()
print(num)

5.global关键字

使用global关键字,可以在函数内部声明变量为全局变量

# global关键字,在函数内声明变量为全局变量 
num = 200
def test_a():
    print(f"test_a: {num}")
def test_b():
    global num	   #设置内部定义的变量为全局变量	
    num =500
    print(f"test_b: {num}")	

test_a()	
test_b()	
print(num)

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值