学习python的第二十九天-函数,变量,global语句
来源:互联网 发布:使徒行者2 知乎 编辑:程序博客网 时间:2024/06/06 09:00
定义函数
函数是python
中比较重要的程序段。函数通过def
关键字定义,def
后跟一个函数的标识符名称,然后跟一对圆括号。圆括号中可以包括一些变量名。定义函数完成后以冒号结尾。
def sayHello(): print 'Hello World!' # block belonging to the function sayHello() # call the function
这段代码很好的展示了定义函数并调用的过程,按要求定义好函数后,在下方输入函数名加圆括号调用。
函数形参
函数取得的参数是你提供给函数的值,参数就像变量一样,它们的值是在我们调用函数的时候定义的,非函数本身内赋值。注意:函数中的参数名称为形参,你提供给函数调用的值称为实参。
def printMax(a, b): if a > b: print a, 'is maximum' else: print b, 'is maximum' printMax(3, 4) # directly give literal values x = 5 y = 7 printMax(x, y) # give variables as arguments
在第一个
printMax
使用中,我们直接把数,即实参,提供给函数。在第二个使用中,我们使用变量调用函数。printMax(x, y)
使实参x
的值赋给形参a
,实参y
的值赋给形参b
。在两次调用中,printMax
函数的工作完全相同。
局部变量
代码部分:
def func(x): print 'x is', x x = 2 print 'Changed local x to', x x = 50 func(x) print 'x is still', x
运行结果:
x is 50 Changed local x to 2 x is still 50
x
等于50,然后调用func(x)
函数,打印x
等于50,接下来x
等于2,打印Changed local x to 2
,函数运行完成以后,下一步打印x is still 50
。因为x
等于2是局部变量,所以在运行函数以后x
的值仍然是50.
global
语句
如果你想要为一个定义在函数外的变量赋值,那么你就得告诉
Python
这个变量名不是局部的,而是全局的。我们使用global
语句完成这一功能。没有global
语句,是不可能为定义在函数外的变量赋值的。你可以使用定义在函数外的变量的值(假设在函数内没有同名的变量)。然而,我并不鼓励你这样做,并且你应该尽量避免这样做,因为这使得程序的读者会不清楚这个变量是在哪里定义的。使用
global
语句可以清楚地表明变量是在外面的块定义的。
def func(): global x print 'x is', x x = 2 print 'Changed local x to', x x = 50 func() print 'Value of x is', x
运行结果:
x is 50 Changed global x to 2 Value of x is 2
很显然,在这段代码中,先给x
赋值为50,然后调用函数,global
函数定义变量x
,先打印x is 50
,然后给全局变量x
赋值为2,所以在下一句代码打印Changed global x to 2
,函数运行完成以后x
已经为2,所以打印Value of x is 2
。
global
语句被用来声明x
是全局的——因此,当我们在函数内把值赋给x
的时候,这个变化也反映在我们在主块中使用x
的值的时候。 你可以使用同一个global
语句指定多个全局变量。例如global x, y, z
。
- 学习python的第二十九天-函数,变量,global语句
- python第二十九天的学习记录
- python爬虫学习第二十九天
- Python的global语句
- Python的global语句
- Python的global语句
- Python的global语句
- python global语句 变量作用域
- python 函数的局部变量和全局变量 global
- Python的global语句使用
- 学习python的第十九天
- 学习python的第二十天
- 第二十九天
- 学习python的第二十八天-for循环,break语句,continue语句
- 跟燕十八学习PHP-第二十九天-MySQL数学函数与字符串
- python 的全局变量global变量使用
- PHP函数--全局的变量 global关键字
- python global语句
- POJ2312 Battle City(优先队列+广搜BFS)
- a href=#与 a href=javascript:void(0) 的区别
- 新环境配置编译chromium
- coursera算法公开课练习题Interview(1)
- IDA6.1下载符号表时卡死
- 学习python的第二十九天-函数,变量,global语句
- 统计学资料
- Java远程调用BPS流程实现流程运行简单示例
- 按列合并txt文件
- Intel RealSense 002(Learning RealSense SDK 001) Windows安装 Intel RealSense SDK
- 插入空格
- [JQ_node1] JQuery入门
- 2016 最佳 Linux 发行版排行榜
- openvpn client 代码执行