day15全局变量和局部变量

day15全局变量和局部变量
def change_name(self):
name='帅哥'
print(name)
change_name()
只有函数能把变量私有化

name='ajga'
def yangjiang(self):
name='shizhengwen'
print('我要搞',name)

def qupengfei(self):
name='jiyou'
print('我要搞',name)

global 会改变全局的变量

申明
全局变量 和局部变量
#如果函数的内容无global ,优先读取全局变量,无法对局部变量进行赋值
# 但是对于可变类型,无法对内部元素进行操作
#如果函数中有global 关键字,,变量的本质就是那个全局变量,可读取可赋值,
#可变类型,不可变类型

#全局变量需要存放在最上面
name=['昌平尽量','聊变更','股本金']
def quejg()
global name
name='jang'
print(name)

nonlocal 上级变量
global 全局变量

前项引用

风湿理论:函数即变量

内存:
变量应用要先创建
函数同样需要先申明变量然使用

1.递归的效率不高
2.必须有个人明确的结束条件
3.递归的规模必须不断减少,

# import os
# name='ouyang'
# #print(name)
# def change_name(self):
# name = '帅哥'
# global name
# print('change_name',name)
# #nam=change_name(self='ouyang')
# #print(name)
# name='x'
# def huangwei():
# name='a'
# print(name)#a
# def liuyang():
# name='b'
# print(name)#b
# def niuluge():
# name='c'
# print(name)#c
# print(name)#b
# niuluge()
# liuyang()
# print(name)#a
# print(name)
# huangwei()
# print(name)


#
# name='gnama'
# def weihou():
# name='chenzuo'
# def weiweiho():
# global name
# name='lengjing'
# weiweiho()
# print(name)
# print(name)
# weihou()
# print(name)

#gname,chenzuo,gnama

# def bar():
# print('from bar')
# def foo():
# print('form foo')
# bar()
# foo()
#
# import time
# person_list=['a','b','c','d','e']
#
# def ask_way(person_list):
#
# if 0==len(person_list):
# return 'none one'
# person=person_list.pop(0)
# print(person)
# if person == 'e':
# print('yes')
# return 'e'
# print('where %s'%person)
# print('no %s,下一个%s'%(person,person_list[0]))
# time.sleep(2)
# res=ask_way(person_list)
# return res
# res=ask_way(person_list)
# print(res)
#
#

person_list=['a','b','c','d','e']
a=person_list.pop(0)
print(a)
a=person_list.pop(0)
print(a)
a=person_list.pop(0)
print(a)
a=person_list.pop(0)
print(a)
a=person_list.pop(0)
print(a)

def cale(n):
print(n)
if int(n/2)==0:
return n
return cale(int(n/2))
cale(100)


# def calc(n):
#     print(n)
#     if int(n / 2) == 0:
#         return n
#     res=calc(int(n / 2))
#     return res
#
#
# res=calc(10)
# print(res)


# while True:
#     print(10)
#
# import time
#
# person_list=['alex','wupeiqi','linhaifeng','zsc']
# def ask_way(person_list):
#     print('-'*60)
#     if len(person_list) == 0:
#         return '根本没人知道'
#     person=person_list.pop(0)
#     if person == 'linhaifeng':
#         return '%s说:我知道,老男孩就在沙河汇德商厦,下地铁就是' %person
#
#     print('hi 美男[%s],敢问路在何方' % person)
#     print('%s回答道:我不知道,但念你慧眼识猪,你等着,我帮你问问%s...' % (person, person_list))
#     time.sleep(100)
#     res=ask_way(person_list)
#
#
#     print('%s问的结果是: %res' %(person,res))
#     return res
#
# res=ask_way(person_list)
# print(res)
# 我          来英                杨建         是征文
# res等沙河      res等沙河       res等 沙河      return ‘沙河’
#                 print          printres




import time
res=time.sleep(100)
print('----------->')


===================递归===============
name='海风'
def huangwei():
    name = "黄伟"
    print(name)
    def liuyang():
        name = "刘洋"
        print(name)
        def nulige():
            name = '炉指花'
            print(name)
        print(name)
        nulige()
    liuyang()
    print(name)


print(name)
huangwei()
print(name)






def calc(n):
    print(n)
    if int(n / 2) == 0: # 10/2  5/2  2/2
        return n
    res=calc(int(n / 2))
    return res




calc(10)




=====================向前引用==============




# def foo():
#     print('from foo')
#     bar()
#
# foo()


# def bar():
#     print('from bar')
# def foo():
#     print('from foo')
#     bar()
#
# foo()






# def foo():
#     print('from foo')
#     bar()
#
# def bar():
#     print('from bar')
# foo()


def foo():
    print('from foo')
    bar()


foo()


def bar():
    print('from bar')






================全部变量和局部变量====================




# name='lhf'
#
#
# def change_name():
#     global name
#     name='帅了一比'
#     print('change_name',name)
#
#
# change_name()
# print(name)


# name='lhf'
#
# def change_name():
#     name1='帅了一比'
#     name2='帅了一比'
#     name3='帅了一比'
#     print('change_name',name)


# globals


# NAME = "杠娘"
#
# def yangjian():
#     # NAME = "史正文"
#     global NAME
#     NAME = "小东北"
#     print('我要搞', NAME)
#
# def qupengfei():
#     # NAME = "基"
#     print('我要搞', NAME)
#
# yangjian()
# qupengfei()




# NAME = "产品经理"
#
# def yangjian():
#     # NAME = "史正文"
#     global NAME # 已经声明,NAME就是全局的的那个变量
#     print('我要搞', NAME)
#     NAME = "小东北"  # 修改 全局的变量
#     print('我要搞', NAME)
#
# def qupengfei():
#     NAME = "基"
#     print('我要搞', NAME)


# 如果函数的内容无global关键字,
#   - 有声明局部变量
        # NAME = ["产品经理","廖波湿"]
        # def qupengfei():
        #     NAME = "自己"
        #     print('我要搞', NAME)
        # qupengfei()
#   - 无声明局部变量
        # NAME = ["产品经理","廖波湿"]
        # def qupengfei():
        #     NAME.append('XXOO')
        #     print('我要搞', NAME)
        # qupengfei()


# 如果函数的内容有global关键字
#   - 有声明局部变量
        # NAME = ["产品经理","廖波湿"]
        # def qupengfei():
        #     global NAME
        #     NAME = "自己"
        #     print('我要搞', NAME)
        # qupengfei()
        # 错误示例
        # NAME = ["产品经理","廖波湿"]
        # def qupengfei():
        #     NAME = "自己"
        #     global NAME
        #     print('我要搞', NAME)
        # qupengfei()
#   - 无声明局部变量
        # NAME = ["产品经理","廖波湿"]
        # def qupengfei():
        #     global NAME
        #     NAME = ["阿毛"]
        #     NAME.append('XXOO')
        #     print('我要搞', NAME)
        # qupengfei()


######## 全局变量变量名大写
######## 局部变量变量名小写




# 优先读取局部变量,能读取全局变量,无法对全局变量重新赋值 NAME=“fff”,
#     但是对于可变类型,可以对内部元素进行操作
# 如果函数中有global关键字,变量本质上就是全局的那个变量,可读取可赋值 NAME=“fff”
# qupengfei()
# yangjian()




# NAME = ["产品经理","廖波湿"]
#
# def yangjian():
#     # NAME = "史正文"
#     global NAME # 已经声明,NAME就是全局的的那个变量
#     print('我要搞', NAME)
#     NAME = "小东北"  # 修改 全局的变量
#     print('我要搞', NAME)
#
# def qupengfei():
#     # NAME = "aS"
#     NAME.append('天扎龙')
#     print('我要搞', NAME)
#
# qupengfei()




# NAME = ["产品经理","廖波湿"]
# def qupengfei():
#     name = "自己"
#     global NAME
#     print('我要搞', NAME)
# qupengfei()


# NAME = '海风'
#
# def huangwei():
#     name = "黄伟"
#     print(name)
#     def liuyang():
#         name = "刘洋"
#         print(name)
#         def nulige():
#             name = '沪指花'
#             print(name)
#         print(name)
#         nulige()
#     liuyang()
#     print(name)
#
# huangwei()


name = "刚娘"


def weihou():
    name = "陈卓"
    def weiweihou():
        nonlocal name   # nonlocal,指定上一级变量,如果没有就继续往上直到找到为止
        name = "冷静"


    weiweihou()
    print(name)


print(name)
weihou()
print(name)
# 刚娘
# 冷静
# 刚娘



































阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页