python的函数(二)
1,函数的变量
2,函数的返回值
1,函数的变量
1.0,函数的变量分为局部变量和全局变量。
def fun():
x = 100
print x
这个x是局部变量,函数执行完后,x的变量就会销毁,只能在函数内部有效。
x = 100
def fun():
print x
print x
这里的x = 100'是全局变量,函数内部也可以调用。但是调用的只能用于print,做其他操作都会报错(这里的x可以是数字或者字符串)。比如:
x = 100
def fun():
print x
x+=1
像这个执行了 x+=1 的动作就会报错。
当然,可以通过global关键字在函数内部声明为全局变量,这样声明后,就可以做其他操作。
x = 100
def fun():
global x
x +=1
print x
如果你的全局变量为列表,字典,集合这样可变的数据类型的变量,其实在函数内部也是可以更改它的值。
name=['tom','jack']
def fun():
name[0]='tom1'
print name
fun()
print name
输出结果都为:['tom1', 'jack'],可见函数内部其实也是可以更改变量值的。
1.1,在函数内部定义的变量在函数外部也可以使用,也使用关键字global关键字。(不建议这么操作)
def fun():
global y
y = 1
fun()
print y
这样y也就可以输出了,但前提条件是你必须先调用函数。
1.2,函数locals,输出脚本执行中有哪些变量。如果写到函数内部,返回的则是函数内部的所有变量。如果是写的是程序里面,则输出的程序所有的变量。
def fun():
x = 1
y = 2
print locals()
查看程序的所有变量,以字典形式输出。
#!/usr/bin/env python
print 'hello,world'
pritn locals()
2,函数返回值(return)
函数如果默认没有return语句,则函数默认return None.函数遇到return结束运行。
def test():
print 'test' print test()
上述代码返回:test和None.为什么会有None呢?因为函数如果没有retun语句,默认会return None。
def test2(var):
if str(var).isdigit():
return 'this is number'
return 'thisi is not number' print test2(1)
可以发现,if 后面没用else。上面写到了,执行到return的时候代码,函数就会停止运行。所以只要上面的if执行了,后面的return就不会执行。
上面讲的return都是返回1个,那么是否可以返回多个呢?
def test2(var):
if str(var).isdigit():
return 'this is number','hello',['a','b'],{'name':'tom'}
data = test(2)
print data
上面返回结果:('this is number', 'hello', ['a', 'b'], {'name': 'tom'}),可见,如果返回值的个数是多个的话,会以元祖的形式返回。
小结:
1,变量分为全局变量和局部变量。如果定义一个全局变量,函数内部如果调用这个局部变量,只能使用print 的关键字输出(换句话说函数内部其实是知道全局变量的,只是不能操作全局变量),所以如果你在函数内部
使用global 关键字,就是在告诉程序,我要操作全局变量了。此时,函数才可以正式的操作全局变量。
2,局部定义的变量如果想变为全局变量,可以使用global关键字。这样这个局部变量就可以称为全局变量了,但前提条件是你要执行该函数。
3,函数返回值的个数如果为0,则默认返回None,如果是多个返回值,则以元祖的形式返回。
python的函数(二)的更多相关文章
- python魔法函数(二)之__getitem__、__len__、__iter__
魔法函数会增强python类的类型,独立存在 __getitem class Company: def __init__(self, employees): self.employees = empl ...
- python之函数(二)
上一篇中我们在函数体中的写的都是打印语句,用print来输出打印结果.但是在实际使用的时候,我们并不需要将结果输出在控制台上.这时候该如何解决呢? 1. return返回值. 我们可以将函数的结果通过 ...
- 【278】◀▶ Python 数学函数说明
参考:Python 数学函数说明 目录: 一.Python 数学函数 二.Python 随机数函数 三.Python 三角函数 四.Python 数学常量 一.Python 数学函数 函数 返回值 ...
- python学习笔记11(函数二): 参数的传递、变量的作用域
一.函数形参和实参的区别 形参全称是形式参数,在用def关键字定义函数时函数名后面括号里的变量称作为形式参数. 实参全称为实际参数,在调用函数时提供的值或者变量称作为实际参数. >>> ...
- 初学 Python(十二)——高阶函数
初学 Python(十二)--高阶函数 初学 Python,主要整理一些学习到的知识点,这次是高阶函数. #-*- coding:utf-8 -*- ''''' 话说高阶函数: 能用函数作为参数的函数 ...
- python之内置函数(二)与匿名函数、递归函数初识
一.内置函数(二)1.和数据结构相关(24)列表和元祖(2)list:将一个可迭代对象转化成列表(如果是字典,默认将key作为列表的元素).tuple:将一个可迭代对象转化成元组(如果是字典,默认将k ...
- python3.4学习笔记(二十) python strip()函数 去空格\n\r\t函数的用法
python3.4学习笔记(二十) python strip()函数 去空格\n\r\t函数的用法 在Python中字符串处理函数里有三个去空格(包括'\n', '\r', '\t', ' ')的函数 ...
- 【C++实现python字符串函数库】二:字符串匹配函数startswith与endswith
[C++实现python字符串函数库]字符串匹配函数startswith与endswith 这两个函数用于匹配字符串的开头或末尾,判断是否包含另一个字符串,它们返回bool值.startswith() ...
- 学以致用三十二-----python中函数的括号使用
一直以来对python中函数括号的使用,有点分不清楚,到底什么时候用括号,什么时候不用括号,造成了很大看困惑. 今天来总结下. class aaa(): y = 'you' def __init__( ...
随机推荐
- VMWare Workstation 11的安装
不多说,直接上干货! 说白了 VMWare Workstation是收费的! VMware Player 和 VirtualBox是免费的! 虚拟机软件可让你在一个操作系统上直接运行的多个不同的虚 ...
- [Java初探07]__关于面向对象的简单认识
前言 类和对象,在我们学习Java语言的过程中,它们无时无刻不存在着,在我们还远未详细弄明白它们的意义之前,在我们不知不觉的下意识里,我们都会直接或间接的用到它们,这是因为Java是一门面向对象的语言 ...
- 如何让你的网站用上免费的HTTPS
因为之前网站上被注入了广告,再百般尝试之后最后还是使用了HTTPS解决了. 在实现HTTPS的时候最关键的就是证书. 证书的质量觉得了你被多少浏览器所信任. 证书的价格也就蹭蹭蹭往上涨了. 这里推荐一 ...
- mysql delimiter的说明
默认情况下,mysql解释器一遇到分号(;),它就要自动执行. 不会等到用户把这些语句全部输入完之后,再执行整段语句. 而自定义函数和存储过程的SQL语句有好多行,且语句中包含有分号,为了保证整段语句 ...
- 如何精准实现OCR文字识别?
欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由云计算基础发表于云+社区专栏 前言 2018年3月27日腾讯云云+社区联合腾讯云智能图像团队共同在客户群举办了腾讯云OCR文字识别-- ...
- Java 容器源码分析之1.8HashMap方法讲解
前言:Java8之后新增挺多新东西,在网上找了些相关资料,关于HashMap在自己被血虐之后痛定思痛决定整理一下相关知识方便自己看.图和有些内容参考的这个文章:http://www.importnew ...
- Centos下安装最新版Mono并为windwos服务配置开机启动项
一:安装Mono,此步骤参照官网 1:配置Yum仓库 #Centos 7yum install yum-utils rpm --import "http://keyserver.ubuntu ...
- Tomcat专题
1. 修改端口 tomcat-7.0.70/conf/server.xml <Connector port=" protocol="HTTP/1.1"
- sqlserver查询连续签到天数
create table #t(keyId int identity,actionDate datetime)insert into #t(actionDate) select distinct Cr ...
- Linux下安装SQL Server 2016(连接篇SQL Server on linux)
连接数据库 (1)设置防火墙 要连接数据库,首先要打开防火墙上1433端口,也就是,增加tcp端口1433到公共区域,并且永久生效. [root@localhost Desktop]# firewal ...