是否有不用global改变全局变量的办法?
来源:5-2 编程练习
weixin_慕慕0271488
2024-01-05 17:30:25
count=1 def Recursion(n): global count if n==0 or n==1: print(count,n) return 1 #退出机制,当满足条件以后就不执行下面的else else:count= count*n n-=1 print(count,n) return Recursion(n) Recursion(5) print('总数:',count)
老师好,5-2 递归的练习代码如上,想请教:
1.是否有不用global改变全局变量count来实现任务的方法,不是说不建议在函数内用global改全局变量吗?
2. “第6行”我“退出机制”的注释正确吗
3.我尝试过将return 1改为 true、3、或其它值,都可以退出,是否意味着这个可以设为任意值?
1回答
好帮手慕小猿
2024-01-05
同学,你好!1、课程没有要求输出递归的次数,只要求输出最终的结果120。
若同学只传一个参数n 的,想输出次数,那只能使用全局变量。若可传入两个参数,可以将count 也作为参数传入到函数中
(ncount): n == n == : (countn) : count *= n n -= (countn) Recursion(ncount) count = Recursion(count)
同学可按提示的内容,返回阶乘 n*Recursion(n-1)。参考代码如下:
def Recursion(n): if n == 1 or n == 0: return 1 else: return n * Recursion(n-1) print(Recursion(5))
2、退出机制正确的
3、return 任意值都可以的。
祝学习愉快~
相似问题