python基础1-简明python教程-5.1函数

上一篇 / 下一篇  2018-05-16 11:55:20 / 个人分类:测试经历

1.函数
指可重复使用的程序片段。它们允许给一块语句一个名称,然后可以在程序的任何地方使用这个名称任意多次地运行这个语句块。这被称为调用函数
函数可以通过关键字def 来定义字后跟一个函数的标识符名称,再跟一对圆括,其中可以包括一些变量的名称,再以冒号结尾。接下来是一块语句。
2.函数参数
在定义函数时给定的名称称作“形参”(Parameters),在调用函数时你所提供给函数的值称作“实参”(Arguments)
3.局部变量
在一个函数的定义中声明变量时,它们不会以任何方式与身处函数之外但具有相同名称的变量产生关系,也就是说,这些变量名只存在于函数这一局部(Local)。这被称为变量的作用域(Scope)。所有变量的作用域是它们被定义的块,从定义它们的名字的定义点开始。
给全局变量赋值,不会影响到主代码中该变量的值。
x = 50
def func(x):   #定义函数
    print('x is',x) 
    x = 2                        #局部变量
    print('changed local x to',x) #局部变量作用域结束
func(x)
print('x is still',x) #主代码不受局部变量影响
    
输出:
$ python function_local.py
x is 50
Changed local x to 2
x is still 50
4.global语句
给一个在程序顶层的变量赋值(也就是说它不存在于任何作用域中,无论是函数还是类),必须告诉 Python 这一变量并非局部的,而是全局(Global)的。我们需要通过  global  语句来完成这件事。因为在不使用  global  语句的情况下,不可能为一个定义于函数之外的变量赋值。
在全局函数中为变量进行赋值时,将影响到主代码块中全局变量的值。
可以在同一句global语句中指定不止一个的全局变量,例如global x, y, z。
x = 50
def func():    #定義函數
    global x   #聲明x為全局函數
    print('x is',x)
    x = 2           #為全局函數賦值
    print('changed global x to',x)

func()
print('value of x is',x) #主代嗎x的值手全局函數影響

输出:
$ python function_local.py
x is 50
Changed local x to 2
x is still 50
5.默认参数值
设定某些参数可选并使用默认值,可在定义函数时,添加赋值运算值=为参数指定默认参数值。注意,默认参数值必须是常数。
只有那些位于参数列表末尾的参数才能被赋予默认参数值,意即在函数的参数列表中拥有默认参数值的参数不能位于没有默认参数值的参数之前。
这是因为值是按参数所处的位置依次分配的。举例来说, def func(a, b=5)  是有效的,但  def func(a=5, b)  是无效的。
def say(message,times=2): #定義times默認參數值為1
    print(message * times)
say('hello')         #沒有給出times數值,times默認為1
say('world',5)       #給出times數值
输出:
hellohello
worldworldworldworldworld
6.关键字参数
关键字参数(Keyword Arguments)——使用命名(关键字)而非位置(一直以来所使用的方式)来指定函数中的参数。有两个优点:
一、不用需要考虑参数的顺序,函数的使用将更加容易。其二,可以只对部分参数赋值,只要其它的参数都具有默认参数值。
def func(a,b=5,c=10): #a沒有默認值,b、c有
    print('a is',a,'and b is',b,'and c is',c)
func(3,7)     #定義a、b的參數值(按照位置),c為默認
func(25,c=24) #定義a、c的參數值,b為默認值,按照位置25指定为a的值。
func(c=50,a=100)#定義a、c的參數值,b為默認

(有多个默认参数,调用时,可以按顺序提供默认参数,比如调用func(3,7),除**琤这两个参数外,c没有提供,使用默认值。
或者不按顺序提供部分默认参数。当不按顺序提供部分默认参数时,需要把参数名写上。比如调用func(25,c=24),意思是,c参数用传进去的值,按顺序25的值为a。


TAG:

 

评分:0

我来说两句

日历

« 2024-03-23  
     12
3456789
10111213141516
17181920212223
24252627282930
31      

数据统计

  • 访问量: 9381
  • 日志数: 17
  • 建立时间: 2018-05-07
  • 更新时间: 2019-03-07

RSS订阅

Open Toolbar