python学习实例(3)

举报
兔老大 发表于 2021/04/21 23:35:29 2021/04/21
【摘要】 #===================================#3.4 关于Python的函数调用#=================================== #+++++++++++++++++++++++++++++++++++#3.4.2 Python函数入门#+++++++++++++++++++++++++++++++++++ #<程序:...

  
  1. #===================================
  2. #3.4 关于Python的函数调用
  3. #===================================
  4. #+++++++++++++++++++++++++++++++++++
  5. #3.4.2 Python函数入门
  6. #+++++++++++++++++++++++++++++++++++
  7. #<程序:计算4+3*22>
  8. #函数f
  9. def f(x, y):
  10. return x*y*y
  11. #主函数部分
  12. c=4+f(3, 2)
  13. print (c)
  14. #++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  15. #3.4.3 局部变量(Local variables)与全局变量(Global variables)
  16. #++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  17. #<程序:打印局部变量a和全局变量a>
  18. a=10 #函数外
  19. def func():
  20. a=20 #函数内,局部变量的赋值,不会改变全局变量。
  21. print(a) #函数内
  22. func()
  23. print(a) #函数外的a
  24. #<程序:关键字global引用全局变量>
  25. a=10
  26. def func():
  27. global a #宣告这个是全局变量。
  28. a=20
  29. print(a)
  30. func()
  31. print(a)
  32. #<程序:a, b, c是否为局部变量?>
  33. b,c=2,4
  34. def g_func():
  35. a=b*c #a是局部变量
  36. d=a #d是局部变量,其他都是全局变量。
  37. print(a,d)
  38. g_func()
  39. print(b,c)
  40. #练习题3.4.1
  41. b, c=2, 4
  42. def g_func(d):
  43. global a
  44. a=d*c
  45. g_func(b)
  46. print(a)
  47. #练习题3.4.2
  48. a=10
  49. def func():
  50. x=a
  51. print(x)
  52. func()
  53. print(a)
  54. #练习题3.4.3
  55. a=10
  56. def func(b):
  57. c=a+b
  58. print(c)
  59. func(1)
  60. #<程序:四则运算例子>
  61. def do_div(a, b):
  62. c=a//b #a, b, c都是do_div()中的局部变量
  63. print (c)
  64. return c
  65. def do_mul(a, b):
  66. global c
  67. c=a*b #a, b是do_mul()的局部变量,c是全局变量
  68. print (c)
  69. return c
  70. def do_sub(a, b):
  71. c=a-b #a, b, c都是do_sub()中的局部变量
  72. c=do_mul(c, c)
  73. c=do_div(c, 2)
  74. print (c)
  75. return c
  76. def do_add(a, b): #参数a和b是do_add()中的局部变量
  77. global c
  78. c=a+b #全局变量c,修改了c的值
  79. c=do_sub(c, 1) #再次修改了全局变量c的值
  80. print (c)
  81. #所有函数外先执行:
  82. a=3 #全局变量a
  83. b=2 #全局变量b
  84. c=1 #全局变量c
  85. do_add(a, b) #全局变量a和b作为参数传递给do_add()
  86. print (c) #全局变量c
  87. #===================================
  88. #3.5 函数调用过程的分析
  89. #===================================
  90. #+++++++++++++++++++++++++++++++++++
  91. #3.5.2 函数调用时栈的管理
  92. #+++++++++++++++++++++++++++++++++++
  93. #<程序:因数分解> Print all the prime factors (>=2) of x. By Edwin Sha
  94. import math #为了要调用平方根函数,此函数在math包里
  95. def factors(x): #找到x的因数
  96. y=int(math.sqrt(x))
  97. for i in range(2,y+1): #检查从2 到 x的平方根是否为x的因数
  98. if (x %i ==0): #发现i是x的因数
  99. print("Factor:",i);
  100. factors(x//i) #递归调用自己,参数变小是x//i
  101. break #跳出for循环
  102. else: #假如离开循环正常,没有碰到break,就执行else内的print,x是质数
  103. print("Prime Factor:",x)
  104. print("局部变量:参数x:%d, 变量y:%d" %(x,y))
  105. return
  106. factors(18)

 

文章来源: fantianzuo.blog.csdn.net,作者:兔老大RabbitMQ,版权归原作者所有,如需转载,请联系作者。

原文链接:fantianzuo.blog.csdn.net/article/details/83025190

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。