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. vue的组件之间传值方法

    父组件 <template> <div> 这是父组件 <children v-bind:parentToChild="toChild" v-on:sh ...

  2. EBS 请求输出Html报表集成Echarts

    百度开源的ECharts有样式丰富且美观的报表类型可供选用,可以将其集成至EBS请求输出的Html报表中,这其实就是一个生成Html数据的过程. 定义输出类型为HTML的请求我就不在此处赘述.   我 ...

  3. 使用ssm(spring+springMVC+mybatis)创建一个简单的查询实例(二)(代码篇)

    这篇是上一篇的延续: 用ssm(spring+springMVC+mybatis)创建一个简单的查询实例(一) 源代码在github上可以下载,地址:https://github.com/guoxia ...

  4. 微信小程序silk格式转码成mp3格式

    最近小程序项目需要录制语音并上传到服务器,经过查资料了解 目前微信小程序录音的文件后缀名是silk,因此需要转换. 经过查资料了解,参考一下的地址 https://github.com/kn007/s ...

  5. jdbc从基础到优化

    package com.xk.demotest.tools; import java.io.IOException; import java.io.InputStream; import java.s ...

  6. <文档学习>AirSim/using_car.md Choosing Your Vehicle: Car or Multirotor

    如何在AirSim中使用汽车 默认情况下,AirSim中使用的车型为多转子multirotor. 如果你想使用汽车,那么只需在你的settings.json(https://github.com/Mi ...

  7. Mysql 截取日期的方法

    //显示年月日 select date_format(date ,'%Y-%m-%d' ) from talbe_a //根据年月日分组 select date_format(date ,'%Y-%m ...

  8. python编码及转换

    第一种:ASCII码 ASCII(American Standard Code for Information Interchange,美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统,主要用于 ...

  9. bootstrap validator 出现Maximum call stack size exceeded

    如果用 c# 里面用的是 taghelper 的控件,有可能造成 Maximum call stack size exceeded bootstrap validator  必须是继承  bootst ...

  10. Permission denied (publickey). fatal: Could not read from remote repository.

    博主在github上下载tiny face的的源代码的时候,遇到git clone命令为:git clone --recursive git@github.com:peiyunh/tiny.git 而 ...