1.调用函数:
内置函数直接使用
需要导入的函数,
<法一>from xxx import fun
再直接使用fun()
<法二>import xxx
用xxx.fun()使用函数
2.函数参数
a.默认参数
d={'Michale':95,'Bob':75,'Tracy':85}
print(d['Michale'])
d['Bob']=80
print(d['Bob'])
print(d.get('Tom',-1))
print('Tom' in d)
d.pop('Tracy')
print('Tracy' in d)
print('\n')
lst=[1,2,2,5,5,8,7,4,4]
s=set(lst)
print(s)
s.add('good')
print(s)
s.remove('good')
print(s)
l=[]
print(bool(l))
def my_abs(x):
if x>=0:
return x
else:
return -x
print(my_abs(-100))
def power(x,n=2):
s=1
while n>0:
s=s*x
n-=1
return s
print(power(5))
print(power(5,2))
95
80
-1
False
False
{1, 2, 4, 5, 7, 8}
{1, 2, 4, 5, 7, 8, 'good'}
{1, 2, 4, 5, 7, 8}
False
100
25
25
默认参数必须为不可变量
b.可变参数:传参数时自动转变为一个元组tuple
def enroll(name, gender, age=6, city='Beijing'):
print('name: {0} gender:{1} age:{2} city:{3}'.format(name, gender, age, city))
print(enroll('xiaoming', 'M'))
def add_end(l=None):
if l is None:
l = []
l.append('End')
return l
print(add_end())
def calc(*numbers):
sum=0
for x in numbers:
sum=sum+x
print(sum)
calc(1,2,3,4)
lst=[1,54,648,0,84]
calc(*lst)
name: xiaoming gender:M age:6 city:Beijing
None
['End']
10
787
<类型一>直接传入一个列表
<类型二>使用*number
调用时只需要传入列表的值,没必要重新构造一个列表
而已有列表时*num在调用时输入
c.关键字参数:转变为一个字典dict
def fun(**number):
pass
调用时写成fun(a=0,b=1)之类,作为字典直接输入函数
def fun(**number):
print(number)
fun(a=0,b=1)
{'a': 0, 'b': 1}
d.命名关键字参数
表示方法: 使用*隔开,调用时输入名称
def ren(name, gender, *, city='Beijing', job='EE'):
print('name: ', name, ' gender', gender, 'others', city, job)
ren('xiao', 'Male')
ren('asus', 'Female', city='Taipei')
name: xiao gender Male others Beijing EE
name: asus gender Female others Taipei EE
3.返回值:
Python中可以返回多个值,但是实质上还是作为一个元组返回的
from math import atan2
def to_polar(x, y):
r = (x**2 + y**2) ** 0.5
theta = atan2(y, x)
return r, theta
r, theta = to_polar(3, 4)
print r, theta
print to_polar(3, 4)
5.0 0.927295218002
(5.0 0.927295218002)
4.map也可以作为一个映射,起到函数调用的作用总结:
默认参数必须是不可变参数,例如None或者字符串,元组
可变参数在调用时自动组装为一个列表list或者元组tuple,如果已经有了一个list或者tuple通过*lst进行调用,当然一个元素一个元素地输入也行
关键字参数在调用时自动组装为一个字典,调用时按照字典的方式输入,如果已有一个dict通过**dict进行输入
命名关键字参数注意需要使用*隔开,输入时需要保证输入的名称跟函数原型的命名一样
以上参数在函数中是有先后顺序的:位置参数->默认参数->可变参数->命名关键字参数->关键字参数