python学习实例(3)
        【摘要】  #===================================#3.4 关于Python的函数调用#=================================== #+++++++++++++++++++++++++++++++++++#3.4.2 Python函数入门#+++++++++++++++++++++++++++++++++++ #<程序:...
    
    
    
    
  
   - 
    
     
    
    
     
      #===================================
     
    
- 
    
     
    
    
     
      #3.4 关于Python的函数调用
     
    
- 
    
     
    
    
     
      #===================================
     
    
- 
    
     
    
    
      
     
    
- 
    
     
    
    
     
      #+++++++++++++++++++++++++++++++++++
     
    
- 
    
     
    
    
     
      #3.4.2 Python函数入门
     
    
- 
    
     
    
    
     
      #+++++++++++++++++++++++++++++++++++
     
    
- 
    
     
    
    
      
     
    
- 
    
     
    
    
     
      #<程序:计算4+3*22>
     
    
- 
    
     
    
    
     
      #函数f
     
    
- 
    
     
    
    
     
      def f(x, y):
     
    
- 
    
     
    
    
      return x*y*y
     
    
- 
    
     
    
    
      
     
    
- 
    
     
    
    
     
      #主函数部分
     
    
- 
    
     
    
    
     
      c=4+f(3, 2)
     
    
- 
    
     
    
    
     
      print (c)
     
    
- 
    
     
    
    
      
     
    
- 
    
     
    
    
      
     
    
- 
    
     
    
    
     
      #++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
     
    
- 
    
     
    
    
     
      #3.4.3 局部变量(Local variables)与全局变量(Global variables)
     
    
- 
    
     
    
    
     
      #++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
     
    
- 
    
     
    
    
      
     
    
- 
    
     
    
    
     
      #<程序:打印局部变量a和全局变量a>
     
    
- 
    
     
    
    
     
      a=10		#函数外
     
    
- 
    
     
    
    
     
      def func():
     
    
- 
    
     
    
    
     
       a=20 #函数内,局部变量的赋值,不会改变全局变量。
     
    
- 
    
     
    
    
     
       print(a)  #函数内
     
    
- 
    
     
    
    
     
      func()
     
    
- 
    
     
    
    
     
      print(a)   #函数外的a
     
    
- 
    
     
    
    
      
     
    
- 
    
     
    
    
      
     
    
- 
    
     
    
    
      
     
    
- 
    
     
    
    
     
      #<程序:关键字global引用全局变量>
     
    
- 
    
     
    
    
     
      a=10
     
    
- 
    
     
    
    
     
      def func():
     
    
- 
    
     
    
    
      global  a #宣告这个是全局变量。
     
    
- 
    
     
    
    
     
       a=20
     
    
- 
    
     
    
    
     
       print(a)
     
    
- 
    
     
    
    
     
      func()
     
    
- 
    
     
    
    
     
      print(a)
     
    
- 
    
     
    
    
      
     
    
- 
    
     
    
    
      
     
    
- 
    
     
    
    
      
     
    
- 
    
     
    
    
     
      #<程序:a, b, c是否为局部变量?>
     
    
- 
    
     
    
    
     
      b,c=2,4
     
    
- 
    
     
    
    
     
      def g_func():
     
    
- 
    
     
    
    
     
       a=b*c		#a是局部变量
     
    
- 
    
     
    
    
     
       d=a		#d是局部变量,其他都是全局变量。
     
    
- 
    
     
    
    
     
       print(a,d)
     
    
- 
    
     
    
    
     
      g_func()
     
    
- 
    
     
    
    
     
      print(b,c)
     
    
- 
    
     
    
    
      
     
    
- 
    
     
    
    
      
     
    
- 
    
     
    
    
      
     
    
- 
    
     
    
    
     
      #练习题3.4.1
     
    
- 
    
     
    
    
      
     
    
- 
    
     
    
    
     
      b, c=2, 4
     
    
- 
    
     
    
    
     
      def g_func(d):
     
    
- 
    
     
    
    
      global a
     
    
- 
    
     
    
    
     
       a=d*c
     
    
- 
    
     
    
    
     
      g_func(b)
     
    
- 
    
     
    
    
     
      print(a)
     
    
- 
    
     
    
    
      
     
    
- 
    
     
    
    
      
     
    
- 
    
     
    
    
      
     
    
- 
    
     
    
    
     
      #练习题3.4.2
     
    
- 
    
     
    
    
      
     
    
- 
    
     
    
    
     
      a=10
     
    
- 
    
     
    
    
     
      def func():
     
    
- 
    
     
    
    
     
       x=a
     
    
- 
    
     
    
    
     
       print(x)
     
    
- 
    
     
    
    
     
      func()
     
    
- 
    
     
    
    
     
      print(a)
     
    
- 
    
     
    
    
      
     
    
- 
    
     
    
    
      
     
    
- 
    
     
    
    
      
     
    
- 
    
     
    
    
     
      #练习题3.4.3
     
    
- 
    
     
    
    
      
     
    
- 
    
     
    
    
     
      a=10 
     
    
- 
    
     
    
    
     
      def func(b):
     
    
- 
    
     
    
    
     
       c=a+b
     
    
- 
    
     
    
    
     
       print(c)
     
    
- 
    
     
    
    
     
      func(1)
     
    
- 
    
     
    
    
      
     
    
- 
    
     
    
    
      
     
    
- 
    
     
    
    
      
     
    
- 
    
     
    
    
     
      #<程序:四则运算例子>
     
    
- 
    
     
    
    
     
      def do_div(a, b):
     
    
- 
    
     
    
    
     
       c=a//b #a, b, c都是do_div()中的局部变量
     
    
- 
    
     
    
    
      print (c)
     
    
- 
    
     
    
    
      return c
     
    
- 
    
     
    
    
      
     
    
- 
    
     
    
    
     
      def do_mul(a, b):
     
    
- 
    
     
    
    
      global c
     
    
- 
    
     
    
    
     
       c=a*b #a, b是do_mul()的局部变量,c是全局变量
     
    
- 
    
     
    
    
      print (c)
     
    
- 
    
     
    
    
      return c
     
    
- 
    
     
    
    
      
     
    
- 
    
     
    
    
     
      def do_sub(a, b): 
     
    
- 
    
     
    
    
     
       c=a-b #a, b, c都是do_sub()中的局部变量
     
    
- 
    
     
    
    
     
       c=do_mul(c, c) 
     
    
- 
    
     
    
    
     
       c=do_div(c, 2)
     
    
- 
    
     
    
    
      print (c)
     
    
- 
    
     
    
    
      return c 
     
    
- 
    
     
    
    
      
     
    
- 
    
     
    
    
     
      def do_add(a, b): #参数a和b是do_add()中的局部变量
     
    
- 
    
     
    
    
      global c 
     
    
- 
    
     
    
    
     
       c=a+b #全局变量c,修改了c的值
     
    
- 
    
     
    
    
     
       c=do_sub(c, 1) #再次修改了全局变量c的值
     
    
- 
    
     
    
    
      print (c) 
     
    
- 
    
     
    
    
       
     
    
- 
    
     
    
    
     
      #所有函数外先执行:
     
    
- 
    
     
    
    
     
      a=3 #全局变量a
     
    
- 
    
     
    
    
     
      b=2 #全局变量b
     
    
- 
    
     
    
    
     
      c=1 #全局变量c
     
    
- 
    
     
    
    
     
      do_add(a, b) #全局变量a和b作为参数传递给do_add()
     
    
- 
    
     
    
    
     
      print (c) #全局变量c
     
    
- 
    
     
    
    
      
     
    
- 
    
     
    
    
      
     
    
- 
    
     
    
    
      
     
    
- 
    
     
    
    
     
      #===================================
     
    
- 
    
     
    
    
     
      #3.5 函数调用过程的分析
     
    
- 
    
     
    
    
     
      #===================================
     
    
- 
    
     
    
    
      
     
    
- 
    
     
    
    
     
      #+++++++++++++++++++++++++++++++++++
     
    
- 
    
     
    
    
     
      #3.5.2 函数调用时栈的管理
     
    
- 
    
     
    
    
     
      #+++++++++++++++++++++++++++++++++++
     
    
- 
    
     
    
    
     
      #<程序:因数分解> Print all the prime factors (>=2) of x. By Edwin Sha
     
    
- 
    
     
    
    
     
      import math			#为了要调用平方根函数,此函数在math包里
     
    
- 
    
     
    
    
     
      def factors(x): #找到x的因数
     
    
- 
    
     
    
    
     
       y=int(math.sqrt(x))
     
    
- 
    
     
    
    
      for i in range(2,y+1):		#检查从2 到 x的平方根是否为x的因数
     
    
- 
    
     
    
    
      if (x %i ==0): #发现i是x的因数
     
    
- 
    
     
    
    
     
       print("Factor:",i);
     
    
- 
    
     
    
    
     
       factors(x//i)		#递归调用自己,参数变小是x//i
     
    
- 
    
     
    
    
      break #跳出for循环
     
    
- 
    
     
    
    
      else:  #假如离开循环正常,没有碰到break,就执行else内的print,x是质数
     
    
- 
    
     
    
    
     
       print("Prime Factor:",x)
     
    
- 
    
     
    
    
     
       print("局部变量:参数x:%d, 变量y:%d" %(x,y))
     
    
- 
    
     
    
    
      return
     
    
- 
    
     
    
    
     
      factors(18)
     
    
- 
    
     
    
    
      
     
    
- 
    
     
    
    
      
     
    
- 
    
     
    
    
      
     
    
 
文章来源: fantianzuo.blog.csdn.net,作者:兔老大RabbitMQ,版权归原作者所有,如需转载,请联系作者。
原文链接:fantianzuo.blog.csdn.net/article/details/83025190
        【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
            cloudbbs@huaweicloud.com
        
        
        
        
        
        
        - 点赞
- 收藏
- 关注作者
 
             
           
评论(0)