Python基础局部变量、全局变量,递归的特性——07

局部变量与全局变量

如果函数的内容无global关键字,优先读取局部变量,能读取全局变量,无法对全局变量重新赋值,但是对于可变类型,可以对内部元素进行操作。

如果函数中有global关键字,变量本质上就是全局的那个变量,可读取可赋值。

递归

特性:

1、必须有一个明确的结束条件

2、每次进入更深一层递归时,问题规模相比上次递归都应有所减少

3、递归效率不高,递归层次过多会导致栈溢出

例:

def calc(n):
    if int(n/2) == 0:
        return n
    return (int(n/2))

calc(10)
#运行结果是:
10
5
2
1

一个问路的例子:

person_list = [‘winsdom‘,‘xl‘,‘hzz‘,‘hc‘]
def ask_way(person_list):
    if len(person_list) == 0:
        return ‘没有人知道‘
    person = person_list.pop(0)
    if person == ‘hc‘:
        return ‘%s说,我知道在哪,就在。。。往右走‘%person
    print(‘%s说,我不知道怎么去,我帮你问问[%s]‘%(person,person_list))
    return ask_way(person_list)

res = ask_way(person_list)
print(res)
#结果是:
winsdom说,我不知道怎么去,我帮你问问[[‘xl‘, ‘hzz‘, ‘hc‘]]
xl说,我不知道怎么去,我帮你问问[[‘hzz‘, ‘hc‘]]
hzz说,我不知道怎么去,我帮你问问[[‘hc‘]]
hc说,我知道在哪,就在。。。往右走

原文地址:https://www.cnblogs.com/winsdom/p/9093630.html

时间: 2024-10-03 10:23:29

Python基础局部变量、全局变量,递归的特性——07的相关文章

Python基础函数、递归、内置函数

一.数学定义中的函数与Python中的函数 初中数学定义:一般的,在一个变化过程中,如果有两个变量x和y,并且对于x的每一个确定值,y都有唯一确定的值与之对应,那么我们就把x称为自变量,把y称为因变量,与是x的函数.自变量x的取值范围叫做这个函数的定义域. 例如:y=2*x python中函数的定义:函数是逻辑结构化和过程化的一种编程方法. # Python中函数定义方法 def test(x): "the function definitions" x+=1 return x def

python基础--局部变量与全局变量

首先来看两张图,局部变量与全局变量的区别: 局部变量: class MyClass(): def a(self): n=100 print('a中的n数值为:%d'%(n)) def b(self): n=n+200 print('b中的n数值为:%d'%(n)) 这个时候就会报错,函数b中的n=n+200会显示n未定义错误,原因是n只是在函数a中定义了一个值100,但是函数b中并未赋值,如果还是要使用n这个数值,就可以定义一个全局变量,表示区分我这里写成_n 全局变量: _n=1111 cla

python基础局部变量、全局变量

局部变量的作用域只作用与当前函数块(或代码块)中,对函数块(或代码块)之外的重名变量,没有任何影响. 在函数块(或代码块)中,局部变量可用通过global关键字声明变量来改变在函数块(或代码块)之外对该变量做的操作. 在函数里面定义的global全局变量,最好不要在函数里面改全局变量. 全局变量 作用域为整个程序包括函数中没有重名变量的代码块,如果有重名的,在函数中定义的局部变量起作用,全局变量不起作用. 变量为整数或字符型,最好不要在函数中做修改,其他类型的可以. 原文地址:https://w

python基础-函数_递归_内置函数

一 数学定义的函数与python中的函数 二 为何使用函数 背景提要 三 函数和过程 四 函数参数 五 局部变量与全局变量 六 前向引用之'函数即变量' 七 嵌套函数 八 递归 九 匿名函数 十 函数式编程 十一 内置函数 十二 本节作业 一.数学定义的函数与python中的函数 初中数学函数定义:一般的,在一个变化过程中,如果有两个变量x和y,并且对于x的每一个确定的值,y都有唯一确定的值与其对应,那么我们就把x称为自变量,把y称为因变量,y是x的函数.自变量x的取值范围叫做这个函数的定义域

Python开发【第一篇】Python基础之函数递归

函数递归 递归的本质: 就是一个函数调用另外一个函数. def d(): return '123' def c(): r = d() return r def b(): r = c() return r def a(): r = b() print(r) a() def func(n): n += 1 if n >=4: return 'end' return func(n) r = func(1) print(r)

python基础学习07(核心编程第二版)部分

# -*- coding: utf-8 -*- # ==================== #File: python #Author: python #Date: 2014 #==================== __author__ = 'Administrator' #file与input output #文件对象 #简单说来,就是写入和读取的方式 #file(),open()2个操作都是一样的,一般推荐open() #语法 # open(name[, mode[, bufferin

Python函数基础与函数递归

数学中函数的定义: 一般的 在一个变化过程中, 如果有两个变量 x 和 y 并且 对于 x的每一个确定的值,y都有唯一确定的值与 其对应, 那么我们就把 x 成为 自变量 把y成为 因变量 y是x的函数.自变量x的取值范围叫这个函数的定义域 y = 2*x python 中函数 是一种逻辑结构化和过程化的一种变成方法python中函数定义的方法: 1 def test(x): 2 "the function deinitions" 3 x += 1 4 return x def 定义函

Python基础入门(三)深浅拷贝、函数、内置函数、文件处理、三元运算、递归

深浅拷贝 import copy copy.copy() #浅拷贝 copy.deepcopy() #深拷贝 num = 110 copynum = num #赋值 一.数字和字符串 对于 数字 和 字符串 而言,赋值.浅拷贝和深拷贝无意义,因为其永远指向同一个内存地址. 1 import copy 2 #定义变量 数字.字符串 3 n1 = 123 4 #n1 = 'nick' 5 print(id(n1)) 6 7 #赋值 8 n2 = n1 9 print(id(n2)) 10 11 #浅

Python基础07 函数

Python基础07 函数 作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 函数最重要的目的是方便我们重复使用相同的一段程序. 将一些操作隶属于一个函数,以后你想实现相同的操作的时候,只用调用函数名就可以,而不需要重复敲所有的语句. 函数的定义 首先,我们要定义一个函数, 以说明这个函数的功能. def square_sum(a,b): c = a**2 + b**2 return c 这个函数的功能是求两个数的平方和. 首先