1.局部变量与全局变量

 #!/usr/bin/env python
# -*- coding:utf-8 -*- # 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():
# 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)
#
# yangjian() # 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)
# 刚娘
# 冷静
# 刚娘

2.前向引用

 #!/usr/bin/env python
# -*- coding:utf-8 -*- # 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')

3.测试

 #!/usr/bin/env python
# -*- coding:utf-8 -*-
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) # 海风 黄伟 刘洋 刘洋 炉指花 黄伟 海风
 #!/usr/bin/env python
# -*- coding:utf-8 -*-
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)# 10 5 2 1

4.递归

 #!/usr/bin/env python
# -*- coding:utf-8 -*-
# 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(1)
# 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(10)
print('----------->')

day15-python之变量和递归的更多相关文章

  1. day15 python lambda函数 递归函数 二分法

    day15 python   一.匿名函数 lambda     1.lambda函数 def func(n):                #普通函数, 功能比较简单, 当函数多的时候, 起名也不 ...

  2. 配置python环境变量(转)

    默认情况下,在windows下安装python之后,系统并不会自动添加相应的环境变量.此时不能在命令行直接使用python命令. 1.首先需要在系统中注册python环境变量:假设python的安装路 ...

  3. python学习 变量的操作 与 基本数据类型

    一变量(本文使用python3.5): #变量:是计算机内存中的一块区域,变量可以存储规定范围内的值,变量可以改变#在python中变量是计算机内存中数据的引用 python的变量没有明显的类型,具体 ...

  4. python的变量传递

    python中变量都被视为对象的引用.python函数调用传递参数的时候,不允许程序员选择传值还是传引用,python参数传递采用的都是“传对象引用”的方式.     这种方式相当于传值和传引用的结合 ...

  5. Python中变量的作用域(variable scope)

    http://www.crifan.com/summary_python_variable_effective_scope/ 解释python中变量的作用域 示例: 1.代码版 #!/usr/bin/ ...

  6. Windows下python环境变量配置

    默认情况下,在windows下安装python之后,系统并不会自动添加相应的环境变量.此时不能在命令行直接使用python命令. 1. 首先需要在系统中注册python环境变量:假设python的安装 ...

  7. windows7下python环境变量配置

    默认情况下,在windows下安装python之后,系统并不会自动添加相应的环境变量.此时不能在命令行或cmd里直接使用python命令. 1. 首先需要在系统中注册python环境变量:假设pyth ...

  8. FAQ:Python环境变量配置

    Python安装安装成,需要配置环境变量: 默认情况下,在windows下安装python之后,系统并不会自动添加相应的环境变量.此时不能在命令行直接使用python命令. 1. 首先需要在系统中注册 ...

  9. python基础(2):python的变量和常量

    今天看看python的变量和常量:python3 C:\test.py 首先先说一下解释器执行Python的过程: 1. 启动python解释器(内存中) 2. 将C:\test.py内容从硬盘读入内 ...

  10. python __name__ 变量的含义

    python __name__ 变量的含义 if __name__ == '__main__': tf.app.run() 当python读入程序时,会初始化一些系统变量.如果当前程序是主程序,__n ...

随机推荐

  1. 力荐!35 个最好用的 Vue 开源库!

    无论是开发新手还是经验丰富的老手,我们都喜欢开源软件包.对于开发者来说,如果没有这些开源软件包,很难想象我们的生活会变得多么疲惫不堪,而且靠咖啡度日也会成为家常便饭.所幸的是,随着 Vue.js 和 ...

  2. cpp extern 关键字用法

    语法说明: extern 可以置于变量或者函数前,以标示变量或者函数的在别的文件中定义,提示编译器遇到此变量和函数后,在其他模块中寻找其定义.此外extern也可用来进行链接指定. 即 extern ...

  3. Backbone学习记录(3)

    创建视图 同前面创建模型和集合的方式一样,Backbone.View.extend()即可创建视图 var UserView=Backbone.View.extend(); var view1=new ...

  4. Asp.net 字符(三)

    using System; using System.Collections.Generic; using System.Globalization; using System.Linq; using ...

  5. C# 修改DataTable 列的 DataType

    /// <summary> ///当DataTable中有值时,是不允许修改列的DataType /// 修改数据表DataTable某一列的数据类型和记录值 /// </summa ...

  6. dubbo系列--重要概念介绍

    dubbo架构图 节点角色说明 整体设计 proxyFactory:就是为了获取一个接口的代理类,例如获取一个远程接口的代理.它有2个方法,代表2个作用 getInvoker:针对server端,将服 ...

  7. hihocoder offer收割编程练习赛9 B 水陆距离

    思路: 宽搜,多个起点. 实现: #include <iostream> #include <cstdio> #include <algorithm> #inclu ...

  8. 2018.7.21NOIP模拟赛?解题报告

    题面 预计得分:70 + 60 + 30 = 160 实际得分:40 + 60 + 0 = 100 T1数组开小了 T2比赛结束后5min AC T3加了个记忆话搜索wa了.. T1 zbq吊打std ...

  9. JVM补充一

    一.为什么废弃永久代(PermGen) 2.1 官方说明 参照JEP122:http://openjdk.java.net/jeps/122,原文截取: Motivation This is part ...

  10. 利用JSTL重写查询的jsp页面

    利用JSTL重写Java Web MVC实例中的jsp页面 第一步:导入jstl.jar和standard.jar文件