天天看点

python基础之函数

一、函数定义,参数,以及返回值

def 函数名():

函数体

返回值:通过return函数

>>> def fun():
>>> def add(a,b):
	print(a+b)

	
>>> add(34,78)
112
>>> def add1(a,b):
	return a*b

>>> add1(12,5)
60
>>> 
      

print('第一个函数')>>> fun()第一个函数>>> def fun(name):print("第二个函数"+name)>>> fun(age)Traceback (most recent call last): File "<pyshell#7>", line 1, in <module> fun(age)NameError: name 'age' is not defined>>> fun('age')第二个函数age

二、函数文档

>>> def fun(name):
	'函数定义过程的name是形参!'
	#因为表示一个形式,标志占据一个位置
	print('传递参数'+name+'是实参,有具体参数值')

	
>>> fun('xiao')
传递参数xiao是实参,有具体参数值           
>>> fun._doc_
Traceback (most recent call last):
  File "<pyshell#23>", line 1, in <module>
    fun._doc_

>>> help(fun)
Help on function fun in module __main__:

fun(name)
    函数定义过程的name是形参!           

关键参数

>>> fun(name='关键参数')
传递参数关键参数是实参,有具体参数值
>>>            

收集参数:

参数前加*

>>> def test(*param):
	print("参数的长度是:",len(param))
	print("第一个参数是:",param[1])

	
>>> test(1,2,3,4)
参数的长度是: 4
第一个参数是: 2
>>>            
>>> def test(*param):
	print("参数的长度是:",len(param))
	print("第一个参数是:",param[1])

	
>>> test(1,2,3,4)
参数的长度是: 4
第一个参数是: 2
>>> def test1(*param,exp)
SyntaxError: invalid syntax
>>> def test1(*param,exp):
	print("参数的长度是:",len(param))
	print("第一个参数是:",param[1])
	print('exp是:',exp)

	
>>> test1(1,2.3,4,exp="普通参数")
参数的长度是: 3
第一个参数是: 2.3
exp是: 普通参数
>>>            

函数与过程:

函数有返回值,python中只有函数、、

全局变量和局部变量:

def discount(price,rate):
    final_price=price*rate
    return final_price
old_price=float(input("请输入原价:"))
rate=float(input("请输入折扣率:"))
new_price=discount(old_price,rate)
print("打折后的价格:",new_price)           

内嵌函数和闭包:

>>> count=5	#全局变量
>>> def myfun():
	count=10	#局部变量
	print(10)

	
>>> myfun()
10
>>> print()count
SyntaxError: invalid syntax
>>> print(count)
5
>>>            

全局变量用global申明:

>>> def myfun():
	global count
	count=10
	print(count)


	
>>> nyfin()
Traceback (most recent call last):
  File "<pyshell#63>", line 1, in <module>
    nyfin()
NameError: name 'nyfin' is not defined
>>> myfun()
10
>>> print(count)
10
>>> count=1
>>> print(count)
1
>>> myfun(count)
Traceback (most recent call last):
  File "<pyshell#69>", line 1, in <module>
    myfun(count)
TypeError: myfun() takes 0 positional arguments but 1 was given
>>> myfun()
10
>>>