1.局部变量与全局变量
1 #!/usr/bin/env python
2 # -*- coding:utf-8 -*-
3
4 # name='lhf'
5 # def change_name():
6 # global name
7 # name='帅了一比'
8 # print('change_name',name)
9 #
10 #
11 # change_name()
12 # print(name)
13
14 # name='lhf'
15 #
16 # def change_name():
17 # name1='帅了一比'
18 # name2='帅了一比'
19 # name3='帅了一比'
20 # print('change_name',name)
21 #
22 # globals
23
24 # NAME = "杠娘"
25 #
26 # def yangjian():
27 # global NAME
28 # NAME = "小东北"
29 # print('我要搞', NAME)
30 #
31 # def qupengfei():
32 # NAME = "基"
33 # print('我要搞', NAME)
34 #
35 # yangjian()
36 # qupengfei()
37
38 # NAME = "产品经理"
39 #
40 # def yangjian():
41 # # NAME = "史正文"
42 # global NAME # 已经声明,NAME就是全局的的那个变量
43 # print('我要搞', NAME)
44 # NAME = "小东北" # 修改 全局的变量
45 # print('我要搞', NAME)
46 #
47 # def qupengfei():
48 # NAME = "基"
49 # print('我要搞', NAME)
50
51 # 如果函数的内容无global关键字,
52 # - 有声明局部变量
53 # NAME = ["产品经理","廖波湿"]
54 # def qupengfei():
55 # NAME = "自己"
56 # print('我要搞', NAME)
57 # qupengfei()
58 # - 无声明局部变量
59 # NAME = ["产品经理","廖波湿"]
60 # def qupengfei():
61 # NAME.append('XXOO')
62 # print('我要搞', NAME)
63 # qupengfei()
64
65 # 如果函数的内容有global关键字
66 # - 有声明局部变量
67 # NAME = ["产品经理","廖波湿"]
68 # def qupengfei():
69 # global NAME
70 # NAME = "自己"
71 # print('我要搞', NAME)
72 # qupengfei()
73 # 错误示例
74 # NAME = ["产品经理","廖波湿"]
75 # def qupengfei():
76 # NAME = "自己"
77 # global NAME
78 # print('我要搞', NAME)
79 # qupengfei()
80 # - 无声明局部变量
81 # NAME = ["产品经理","廖波湿"]
82 # def qupengfei():
83 # global NAME
84 # NAME = ["阿毛"]
85 # NAME.append('XXOO')
86 # print('我要搞', NAME)
87 # qupengfei()
88
89 ######## 全局变量变量名大写
90 ######## 局部变量变量名小写
91
92 # 优先读取局部变量,能读取全局变量,无法对全局变量重新赋值 NAME=“fff”,
93 # 但是对于可变类型,可以对内部元素进行操作
94 # 如果函数中有global关键字,变量本质上就是全局的那个变量,可读取可赋值 NAME=“fff”
95 # qupengfei()
96 # yangjian()
97
98 # NAME = ["产品经理","廖波湿"]
99 #
100 # def yangjian():
101 # # NAME = "史正文"
102 # global NAME # 已经声明,NAME就是全局的的那个变量
103 # print('我要搞', NAME)
104 # NAME = "小东北" # 修改 全局的变量
105 # print('我要搞', NAME)
106 #
107 # def qupengfei():
108 # # NAME = "aS"
109 # NAME.append('天扎龙')
110 # print('我要搞', NAME)
111 #
112 # yangjian()
113
114 # NAME = ["产品经理","廖波湿"]
115 # def qupengfei():
116 # name = "自己"
117 # global NAME
118 # print('我要搞', NAME)
119 # qupengfei()
120
121 # NAME = '海风'
122 #
123 # def huangwei():
124 # name = "黄伟"
125 # print(name)
126 # def liuyang():
127 # name = "刘洋"
128 # print(name)
129 # def nulige():
130 # name = '沪指花'
131 # print(name)
132 # print(name)
133 # nulige()
134 # liuyang()
135 # print(name)
136 #
137 # huangwei() # 黄伟 刘洋 刘洋 沪指花 黄伟
138
139 # name = "刚娘"
140 #
141 # def weihou():
142 # name = "陈卓"
143 # def weiweihou():
144 # nonlocal name # nonlocal,指定上一级变量,如果没有就继续往上直到找到为止
145 # name = "冷静"
146 #
147 # weiweihou()
148 # print(name)
149 #
150 # print(name)
151 # weihou()
152 # print(name)
153 # 刚娘
154 # 冷静
155 # 刚娘
2.前向引用
1 #!/usr/bin/env python
2 # -*- coding:utf-8 -*-
3
4
5 # def foo():
6 # print('from foo')
7 # bar()
8 #
9 # foo()
10
11 # def bar():
12 # print('from bar')
13 # def foo():
14 # print('from foo')
15 # bar()
16 #
17 # foo()
18
19
20
21 # def foo():
22 # print('from foo')
23 # bar()
24 #
25 # def bar():
26 # print('from bar')
27 # foo()
28
29 # def foo():
30 # print('from foo')
31 # bar()
32 #
33 # foo()
34 #
35 # def bar():
36 # print('from bar')
3.测试
1 #!/usr/bin/env python
2 # -*- coding:utf-8 -*-
3 name='海风'
4 def huangwei():
5 name = "黄伟"
6 print(name)
7 def liuyang():
8 name = "刘洋"
9 print(name)
10 def nulige():
11 name = '炉指花'
12 print(name)
13 print(name)
14 nulige()
15 liuyang()
16 print(name)
17
18 print(name)
19 huangwei()
20 print(name) # 海风 黄伟 刘洋 刘洋 炉指花 黄伟 海风
1 #!/usr/bin/env python
2 # -*- coding:utf-8 -*-
3 def calc(n):
4 print(n)
5 if int(n / 2) == 0: # 10/2 5/2 2/2
6 return n
7 res=calc(int(n / 2))
8 return res
9
10
11 calc(10)# 10 5 2 1
4.递归
1 #!/usr/bin/env python
2 # -*- coding:utf-8 -*-
3 # def calc(n):
4 # print(n)
5 # if int(n / 2) == 0:
6 # return n
7 # res=calc(int(n / 2))
8 # return res
9 #
10 #
11 # res=calc(10)
12 # print(res)
13
14 # while True:
15 # print(10)
16
17 # import time
18 #
19 # person_list=['alex','wupeiqi','linhaifeng','zsc']
20 # def ask_way(person_list):
21 # print('-'*60)
22 # if len(person_list) == 0:
23 # return '根本没人知道'
24 # person=person_list.pop(0)
25 # if person == 'linhaifeng':
26 # return '%s说:我知道,老男孩就在沙河汇德商厦,下地铁就是' %person
27 #
28 # print('hi 美男[%s],敢问路在何方' % person)
29 # print('%s回答道:我不知道,但念你慧眼识猪,你等着,我帮你问问%s...' % (person, person_list))
30 # time.sleep(1)
31 # res=ask_way(person_list)
32 #
33 #
34 # print('%s问的结果是: %res' %(person,res))
35 # return res
36 #
37 # res=ask_way(person_list)
38 # print(res)
39 # 我 来英 杨建 是征文
40 # res等沙河 res等沙河 res等 沙河 return ‘沙河’
41 # print printres
42
43
44 import time
45 res=time.sleep(10)
46 print('----------->')