乐愚社区Beta

 编程语言  >  0基础学python(七)

0基础学python(七)

P2P  L3  • 2020-10-30 • 回复 4 • 只看楼主举报    

全局变量即函数外定义的变量,大家都能用,相当于公共的东西,像公共厕所,局部变量是函数内部定义的的东西,只能自己使用,类似自家的厕所

a = 100#全局变量
def get_a():
  a = 200#局部变量
  print(a)

print(a)

  大家可以发现打印出来的是两个值,一个是200一个是100

  因为这两个a不是一个东西,仅仅是名字相同而已

  想在函数内对全局变量进行修改,需要在函数内进行声明(global)

a = 100
def change_a():
   global a
   a = 200

  当全局变量为字符串(str),数字(包括整形和浮点型),元组(tuple)时,是无法直接修改的,因为这三种是不可变类型,下节课会做一个简单的点名系统来说明

  下面说说递归函数

  初中高中那会大家都学过函数f(x)= f(x-1)+f(x-2)这就是一个简单的递归函数,又比如阶乘5!=5*4*3*2*1,这个原理我之前发了个帖子有说到,就是不停的取返回值

  我们现在举一个简单的例子斐波那契数列,就是简单的找规律 :1,1,2,3,5,8,13,21

  简单观察我们可以发现从第三个数字开始,是前两个数字的和,我们现在开始写代码

a=int(input("n为:"))#让用户输入一个数,计算
def get_n(num):
	if num >2:#观察可得前两个数为1
		return get_n(num-2) + get_n(num-1)
	else:
		return 1
result = get_n(a)
print(result)

下节课做个简单的点名系统然后把函数讲完


4条回帖
P2P 楼主  L3  评论于
(0)  回复(0) 1#
不建议用递归,效率太低
含了个秋  L0  评论于
(0)  回复(0) 3#
厉害的,可惜学不会!
云菲菲  L0  评论于
(0)  回复(0) 4#
记忆化搜索
还没注册帐号?快来注册社区帐号,和我们一起嗨起来!
关于本社区

集各类兴趣爱好于一身的轻量化交流社区,在此您可以和他人一起分享交流您觉得有价值的内容,社区鼓励大家发表原创内容,为社区添砖加瓦!

发帖奖励 → 社区版规 → 招聘版主 →
推荐版块
扫描二维码下载社区APP
回到顶部