函数?
定义一次,可以多次调用。避免重复写同一个代码段。
例子
#coding=utf-8 def sayHello(): print 'Hello World!' sayHello() #use parameters def sayHello2(x): print 'Good Day!'+x sayHello2('杰森。斯坦森') y='Joy' sayHello2(y) print("你好")
开始未加 #coding=utf-8 导致编译报错
SyntaxError: Non-ASCII character '\xe4' in
解决:需要在文件开头指定中文编码。
二、
局部变量
函数参数的传递都是值的传递。(同Java)
注意到一点:函数参数的命名x与外部传参的变量x相同,可读性不好,不容易查找变量初始定义在哪。
所以建议:
你可以使用定义在函数外的变量的值(假设在函数内没有同名的变量)。然而,我并不鼓励你这样做,并且你应该尽量避免这样做,因为这使得程序的读者会不清楚这个变量是在哪里定义的。
例子:
def func(x): print 'x is ',x x = 2 print 'changed local x to ',x x=50 func(50) print 'x is still',x
得到结果:
x is 50 changed local x to 2 x is still 50 [Finished in 0.2s]
如果要改变输入的值呢?
使用global语句
def func(): global x print 'x is ',x x = 2 print 'changed local x to ',x x=50 func() print 'x is ',x
得到结果:
x is 50 changed local x to 2 x is 2 [Finished in 0.2s]
三、
默认参数
#coding=utf-8 def func(): global x print 'x is ',x x = 2 print 'changed local x to ',x x=50 func() print 'x is ',x def say(message='123', times =1): print message*times #print '函数内' #print '函数外' say() say('Hello') say('world',3)
得到:
changed local x to 2 x is 2 123 Hello worldworldworld [Finished in 0.2s]