1、python函数
- 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号()。
- 任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数。
- 函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
- 函数内容以冒号起始,并且缩进。
-
orangepi@orangepizero2:~/python$ vi func23.py orangepi@orangepizero2:~/python$ python2.7 func23.py 我要调用用户自定义函数! 再次调用同一函数 orangepi@orangepizero2:~/python$ cat func23.py #!/usr/bin/python # -*- coding: UTF-8 -*- # 定义函数 def printme( str ): "打印任何传入的字符串" print str return # 调用函数 printme("我要调用用户自定义函数!") printme("再次调用同一函数")
传参:(传不可变对象,类似c语言传参形参)
orangepi@orangepizero2:~/python$ vi func02.py
orangepi@orangepizero2:~/python$ python2.7 func02.py
2
10
2
orangepi@orangepizero2:~/python$ cat func02.py
#!/usr/bin/python
# -*- coding: UTF-8 -*-
def ChangeInt( a ):
print a
a = 10
print a
b = 2
ChangeInt(b)
print b # 结果是 2
传参(可变,类似c语言指针)
orangepi@orangepizero2:~/python$ vi func03.py
orangepi@orangepizero2:~/python$ python2.7 func03.py
函数内取值: [10, 20, 30, [1, 2, 3, 4]]
函数外取值: [10, 20, 30, [1, 2, 3, 4]]
1
orangepi@orangepizero2:~/python$ cat func03.py
#!/usr/bin/python
# -*- coding: UTF-8 -*-
# 可写函数说明
def changeme( mylist ):
"修改传入的列表"
mylist.append([1,2,3,4])
print "函数内取值: ", mylist
return
# 调用changeme函数
mylist = [10,20,30]
changeme( mylist )
print "函数外取值: ", mylist
print mylist[3][0]
关键字参数(指定参数不用按顺序,不指定参数需要按顺序)
orangepi@orangepizero2:~/python$ vi func04.py
orangepi@orangepizero2:~/python$ python2.7 func04.py
Name: miki
Age 50
Name: yangzerui
Age 666
orangepi@orangepizero2:~/python$ cat func04.py
#!/usr/bin/python
# -*- coding: UTF-8 -*-
#可写函数说明
def printinfo( name, age ):
"打印任何传入的字符串"
print "Name: ", name
print "Age ", age
return
#调用printinfo函数
printinfo( age=50, name="miki" )
printinfo( 'yangzerui', 666)
不定长参数(一个函数能处理比当初声明时更多的参数。这些参数叫做不定长参数,声明时不会命名)
orangepi@orangepizero2:~/python$ vi func05.py
orangepi@orangepizero2:~/python$ python2.7 func05.py
输出:
10
输出:
70
60
50
orangepi@orangepizero2:~/python$ cat func05.py
#!/usr/bin/python
# -*- coding: UTF-8 -*-
# 可写函数说明
def printinfo( arg1, *vartuple ):
"打印任何传入的参数"
print "输出: "
print arg1
for var in vartuple:
print var
return
# 调用printinfo 函数
printinfo( 10 )
printinfo( 70, 60, 50 )
return语句
orangepi@orangepizero2:~/python$ vi funcret06.py
orangepi@orangepizero2:~/python$ python2.7 funcret06.py
函数内 : 30
函数外: 30
orangepi@orangepizero2:~/python$ cat funcret06.py
#!/usr/bin/python
# -*- coding: UTF-8 -*-
# 可写函数说明
def sum( arg1, arg2 ):
# 返回2个参数的和."
total = arg1 + arg2
print "函数内 : ", total
return total
# 调用sum函数
total = sum( 10, 20 )
print"函数外:",total
全局变量和局部变量:
函数外是全局变量,函数内是局部变量
#!/usr/bin/python
# -*- coding: UTF-8 -*-
total = 0 # 这是一个全局变量
# 可写函数说明
def sum( arg1, arg2 ):
#返回2个参数的和."
total = arg1 + arg2 # total在这里是局部变量.
print "函数内是局部变量 : ", total
return total
#调用sum函数
sum( 10, 20 )
print "函数外是全局变量 : ", total