1.全局变量与局部变量练习

 1 # -*- coding: UTF-8 -*-
2 def bar():
3 print('from bar')
4 def foo():
5 print('from foo')
6 bar()
7 foo()
8
9 name = 'lhf'
10 def change_name():
11 global name
12 name = 'such a good young boy'
13 print('change_name',name)
14 def change_name1():
15 name1 = '帅了一比'
16 name2 = '帅了一比'
17 name3 = '帅了一比'
18 print('change_name',name)
19 change_name()
20 change_name1()
21 print(name)
22
23 NAME = '杠娘'
24 def yangjian():
25 global NAME
26 NAME = 'a cute little northwestern man'
27 print('i am going to hang out with ' + NAME)
28 def qupengfei():
29 NAME = 'alex'
30 print('i am going to hang out with ' + NAME)
31 yangjian()
32 qupengfei()
33
34 NAME = ['a','b']
35 def qupengfei():
36 NAME = 'myself'
37 print('i am fucking ' + NAME)
38 qupengfei()
39
40 NAME = ['c','d']
41 def yuyukun():
42 NAME.append('e')
43 print('i am fucking',NAME)
44 yuyukun()
45
46 result:
47 from foo
48 from bar
49 ('change_name', 'such a good young boy')
50 ('change_name', 'such a good young boy')
51 such a good young boy
52 i am going to hang out with a cute little northwestern man
53 i am going to hang out with alex
54 i am fucking myself
55 ('i am fucking', ['c', 'd', 'e'])
2.全局变量与局部变量 例子
#global keywork
name = '刚娘'
def weihou():
name = '陈卓'
def weiweihou():
global name #此处全局变量对应line780,表示重申变量name为全局变量
name = '冷静' #此处name仅为weiweihou()中的全局变量
weiweihou()
print(name) #此时打印的name对应'陈卓',因为weihou()中声明了name='陈卓'的局部变量
print(name)
weihou()
print(name)
#nonlocal keywork
name = '刚娘'
def weihou():
name = '陈卓'
def weiweihou():
nonlocal name #修改上级变量,陈卓改为冷静
name = '冷静'
weiweihou()
print(name)
print(name)
weihou()
print(name) result:
刚娘
陈卓
冷静 刚娘
冷静
刚娘

3.累加的递归练习

def add(n):
print(n)
if n == 1:
return n
else:
return (n + add(n-1))
res = add(10)
print(res) result:
10
9
8
7
6
5
4
3
2
1
55

4.公因子的递归练习

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

5.问路的递归练习

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(10)
res = ask_way(person_list)
print('%s问的结果是:%res'%(person,res))
return res
res = ask_way(person_list)
print(res)

forward reference前向引用,gloal values and local values全局变量和局部变量,recursive function递归函数的更多相关文章

  1. wpf staticresource 是不允许向前引用(forward reference)的

    不允许向前引用(forward reference)在C/C++中中很常见,即在语法上,未定义变量.类之前,不能使用. 没想到wpf中的wpf staticresource也遵循这种规则.资源字典中, ...

  2. java 报错非法的前向引用

    今天在看<thinking in java>的时候,第四章提到了非法的前向引用,于是自己试了一下,书中的例子倒是一下就明白了,但是自己写的一个却怎么也不明白,于是上网问了一位前辈,终于明白 ...

  3. Forward reference vs. forward declaration

    Q:Im a bit confused. What is the difference between forward declaration and forward reference? Forwa ...

  4. 错误代码: 1247 Reference 'startTime' not supported (forward reference in item list)

    1.错误描述 1 queries executed, 0 success, 1 errors, 0 warnings 查询:SELECT a.createUserId AS typeId, (SELE ...

  5. Python小白学习之路(十二)—【前向引用】【风湿理论】

    前向引用 风湿理论(函数即变量) 理论总是很抽象,我个人理解: 代码从上到下执行,一旦遇到定义的函数体,内存便为其开辟空间,并用该函数的名字作为一个标识但是该函数体内具体是什么内容,这个时候并不着急去 ...

  6. 018--python 函数参数、变量、前向引用、递归

    目录 一.python函数的定义 二.函数参数 三.全局变量和局部变量 四.前向引用 五.递归 一.python函数的定义 python函数是对程序逻辑进行结构化或过程化的一种方法 1 python中 ...

  7. C++类的组合、前向引用声明

    3.5类的组合 Part1.应用背景 对于复杂的问题,往往可以逐步划分为一系列稍微简单的子问题. 解决复杂问题的有效方法是将其层层分解为简单的问题组合,首先解决简单问题复杂问题也就迎刃而解了. 在面向 ...

  8. C++11中std::move、std::forward、左右值引用、移动构造函数的测试

    关于C++11新特性之std::move.std::forward.左右值引用网上资料已经很多了,我主要针对测试性能做一个测试,梳理一下这些逻辑,首先,左值比较熟悉,右值就是临时变量,意味着使用一次就 ...

  9. vs2015类中方法前的引用链接不显示的解决方案

    在工具→选项,打开如下界面,寻找“文本编辑器→所有语言”中设置显示:&lt;img data-rawheight="761" data-rawwidth="130 ...

随机推荐

  1. 来自师兄的Django2.0笔记摘录

    翻看一本书,觉得对于Django的日志处理.权限处理包括Django-guardian还没学清楚,然后书上关于mysql深入学习.elasticsearch.redis.celery分布式都没学过. ...

  2. node多项目合一打包

    因为公司的需要,需要将多个项目合并为一个项目,具体要求是:多个项目中的公用部分提取出来,单独维护,业务部分则分别在不同的目录中,而我们的项目配置文件则作为公用部分单独维护,在项目打包的时候遇到一个问题 ...

  3. PXE网络启动无人值守自动安装 centos 全程实录

    PXE网络启动无人值守自动安装 centos 全程实录 http://shayi1983.blog.51cto.com/4681835/1549854/ 搭建Pxe服务器无人听应答全自动安装CentO ...

  4. spring cloud(一)带你进入分布式

    spring cloud是近年来比较火的热门话题,很多大型公司也渐渐转型使用spring cloud来完善各种开发模式,我认为主要是由spring团队开发由来,致使会有那么多的使用者,在java的领域 ...

  5. 关于window 图片系统功能

    直接选择文件悬浮  分辨率 大小 修改时间 文件选择较少的 可以选择反选  找到自己想要的 大小排序 找到最大的压缩  名称排序 同一类的图片  按时间排序找自己刚修改的图片 文档类预览

  6. mybatis_generator合并xml mapper文件

    一.问题 用的mybatis.generator 1.3.6版本,版本没啥大关系. 目前的xml输出有两个主要的问题: 1.xml追加而不是覆盖 这样就导致一个xml mapper文件每个node都重 ...

  7. Qt 布局管理

    在布局编辑环境里: sizePolicy 影响控件在布局上的大小. layout 的属性 如:如margin 设置控件在布局上边距. 有时候需要设置 下面是一个 代码布局的方式 #include &q ...

  8. Saiku相关异常处理(十五)

    Saiku大概是我的第一个持续更博的技术点,希望自己能在这条研究saiku的道路上越走越远嘻嘻 这里我们来记录一下研究saiku时遇到的异常信息,这篇博客会保持持续更新的. 1. Java heap ...

  9. 打开本页N秒后跳转页面

    在head标签里面 <meta http-equiv="refresh" content="4;url=" />

  10. 为何放弃Eclipse,选择IntelliJ IDEA,看完终于明白了

    如果你初次用idea,毫无目的的度娘如何使用IDEA     浪费的将会是大量的时间.一套让你花时间,少走弯路的视频教程(下载地址:https://pan.baidu.com/s/1gfeX3hD) ...