python函数

本文详细介绍了Python中的函数概念,包括函数的定义、调用,参数的使用,以及局部和全局变量的区别。讨论了函数的返回值,可变与不可变参数的影响,并探讨了递归函数和内部函数的概念。此外,还提到了闭包这一高级特性,展示了如何在函数内部修改全局变量以及如何通过内部函数实现特定功能。
摘要由CSDN通过智能技术生成

1.定义:

所谓函数,就是把具有独立功能的代码块组织为一个小模块,在需要的时候调用
   函数的调用包括两个步骤:
      1.定义函数一一封装独立的功能
	  ⒉.调用函数一一享受封装的成果
函数的作用,在开发程序时,使用函数可以提高编写的效率以及代码的重用

2.定义函数

  def函数名()∶
      函数封装的代码
      def say_hello():       #函数定义
		print("hello1")
		print("hello2")
      print(name)
      say_hello()      #函数的调用

3.函数的参数

 def sum_2nums(a,b):  #形参
   num1=a
   num2=b
   result=num1+num2

   print(f'函数输出的结果是{result}')

 sum_2nums(1,2)     #实参  调用函数时 传入形参的值
 
 1.在函数内部,把参数当做变量使用,进行需要的数据处理
 ⒉.函数调用时,按照函数定义的参数顺序、把希望在函数内部处理的数据通过参数传递

4.嵌套调用

 定义一个函数的时候,一个函数里面又调用了另外一个函致,这就是函数嵌套调用
     def test1():
         print("woshi")
         print("*"*10)
     
     def test2():
         print("/"*10)
         print("woshini")
     
         test1()   #再调用test1
         print("."*10)
	 test2()   #先调用test2
	输出://
          woshini
          woshi
          **********
          ..........

	#定义一个print_line 函数能打印50个*组成的一条分割线
	# #打印任意个*
	def print_line(char,count,lines):
	  for i in range(lines) :
	        print(char * count)
	print_line(" I",100,3)

5.局部变量全局变量

局部变量 是在 函数内部 定义的变量,只能在函数内部使用

        函数执行结束后,函数内部的局部变量,会被系统回收
		def demo1():
		    num = 100    
		    print("demo1 ==>%d" % num)
		def demo2():
			num = 20
			print("demo2 ==>%d" % num)
		demo1()
		demo2()
		输出:demo1 ==>100
              demo2 ==>20

全局变量 是在 函数定义外部 的变量,所有函数都能使用这个变量

	    number = 10
		def demo1():
			print("demo1 ==>%d" % number)
		def demo2():
			print("demo2 ==>%d" % number)
		demo1()
		demo2()
		输出:demo1 ==>10
             demo2 ==>10
			 函数不能直接修改 全局变量的引用
			 全局变量 是在 函数定义外部 的变量,所有函数都能使用这个变量
			 在函数内部,可以 通过全局变量的引用获取对应的数据
             但是,不允许直接修改全局变量的引用—可以使用赋值语句修改全局变量的值

在函数内部修改全局变量的值

        如果在函数中需要修改全局变量,需要使用 global 进行声明
		number = 10
		def demo1():   
		        # 希望修改全局变量的值,使用 global 声明一下变量即可
				global number
			    number = 99    
				print("demo1 ==>%d" % number)
		def demo2():
		        print("demo2 ==>%d" % number)
		demo1()
		demo2()

6.返回值

    返回值 是函数 完成工作 后, 最后 给调用者的 一个结果
	在函数中使用return关键字可以返回结果
    调用函数一方, 可以 使用变量 来 接收 函数的返回结果
	def measure():
	    print("开始测量.....")
	    temp1 = 37.3
	    
	    print("测量结束!!")
	    return temp1 # ==》返回温度的值
		
	result1 = measure()  
	print(result1)

7.可变不可变参数

    如果传递的参数是 可变类型,在函数内部,使用 方法 修改了数据的内容,同样会影响到 可变类型 外部的数据
       def mutable(num_list):
         # num_list = [1, 2, 3]
         num_list.extend([1, 2, 3])
       gl_list = [6, 7, 8]
       mutable(gl_list)
       print(gl_list)
	   输出:[6, 7, 8, 1, 2, 3]

8.递归函数

     函数调用自身的 编程技巧 称为  递归
	 求:定义一个函数 sum_numbers
         能够接收一个 num 的整形参数
         计算 1+2+…+n的结果
	 def sum_numbers(num):
		# 1.出口,计算1到num的累加,可以把计算倒过来,从num累加到1,那么出口就是1
		if num == 1:
				return 1    
		# 2.数字的累加: num + (num-1) +...+ 1
		# 假设sum_numbers 能够完成 num-1 的累加
		temp = sum_numbers(num-1)
		# 函数内部的核心算法就是 两个数字的相加
		return num + temp
	 print(sum_numbers(3))
	 输出:6

9.内部函数

     在函数内部 定义 另一个函数,也就是函数的嵌套
     在外部函数的作用域内,外部函数可以随意调用内部函数
     由于内部函数的整个定义过程都在外部函数中,所以出了外部函数就无法再被调用了
        def outside():
		   print('外部函数被调用')
		   def inside():
			    print('内部函数被调用')
		   inside()
         输出:>>>outside() 
              外部函数被调用 
              内部函数被调用
              >>>inside() NameError: name 'inside' is not defined

10.闭包

    如果在一个内部函数里引用了外部函数的变量,此时这个内部函数就被称为闭包
     #格式:
          def 外部函数():
               ...   
			   def 内部函数()
					 ...   
			   return 内部函数名  # 没有括号
			  
			  def func(a, b):
				 c = 10
				 def inner_func():
						 s = a + b + c
						 print("相加之后的结果是:", s)
				 return inner_func
			   # 调用 func
			   ifunc = func(6, 9)  # ifunc 就是 inner_func
			   # 调用返回的内部函数
			   ifunc()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值