python第四周

全局变量和局部变量:

全局变量:如果直接创建变量,而不在子程序中创建,创建的为全局变量

局部变量:在子程序中创建的变量为局部变量,局部变量只能应用在子程序中

global 变量:在子程序中,可将变量应用至全局,必须提前 申明

name='lhf'

def change_name():
    print('我的名字',name)

change_name()


def change_name():
    name='帅了一笔'
    print('我的名字',name)

change_name()
print(name)



def change_name():
    global name
    name='帅了一笔'
    print('我的名字',name)

change_name()
print(name)

风湿理论:函数就是变量

如果创建的函数中有函数没有被创建,但在没有调用这个函数之前创建了,则不会报错

def mode():
    print("hello")
    bau()
def bau():
    print("world")
mode()

 递归函数:在函数内部中,可以调用其他函数,如果一个函数在内部调用自身本身,这个函数就是递归函数。

递归的特性:

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

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

3.递归效率不高,递归层次过多会导致栈溢出(在计算机中,函数调用栈(stack)这种数据结构实现的,每当进入一个函数的调用,栈就会加一层栈帧,每当函数返回,栈就会减少一层栈帧。由于栈的大小不是无限的 ,所以,递归调用的次数过多吗,就导致栈溢出)

#问路
import time           #1
person_list = ["alom","poat","jion","haux"]     
def ask_way(person_list):                #定义函数将列表传入             
    print("-" *60)                                           
    if len(person_list) == 0:                          
        return '没人知道'
    person = person_list.pop(0)
    if person == 'jion':
        return '%s说:我知道,她在东边' %person
    print('hi[%s],问一下路在哪里'%person)
    print("%s回答,我不知道,但我可以帮你问问%s"%(person,person_list))
    time.sleep(3)
    res= ask_way(person_list)
    return res
res = ask_way(person_list)                          
print(res)

猜你喜欢

转载自www.cnblogs.com/Alom/p/10887026.html