Python学习——函数

定义函数:  def funcname(parameter_list):   #名称以及参数列表

                               pass #占位符,空语句(函数体)

1、参数列表是可以没有的  2、return value(有return返回结果,没有就返回None)

a= 1.23843
result= round(a, 2)
print(result)

保留2位小数,结果为1.24

def add( x, y): #形式参数xy
result=x+y
return result
def print_code( code):
print(code)

a=add( 1, 2) #实际参数,实参1,2
b=print_code( 'python')
print(a)

结果为,Python 3

def damage( skill1, skill2):
damage1=skill1* 3
damage2=skill2* 2+ 10
return damage1,damage2 返回多个结果用逗号隔开

# damages=damage(3,6)
# print(damages)

# print(damages[0],damages[1])

skill1_damage,skill2_damage2=damage( 3, 6)
print(skill1_damage,skill2_damage2)

结果为:9 22

参数:1、必须参数  2、关键字参数  3、默认参数

def add(x,y):  (必须输入xy,必须参数)

result =x+y

c=add(y=1,x=2)  #关键字参数

#打印学生档案
def print_student_files( name, age= 18): #age=18,默认参数,在默认参数之后不能再放非默认参数

print( '我叫'+name)
print( '我今年'+ str(age)+ '岁')

 

*args可变参数,tuple类型;**kw是关键字参数,dict类型

def print_x( x, y,* args,** kw):
print(x,y)
print(args)
print(kw)
a=[ 1, 2, 3]
b={ 'bianhao': 11, 'age': 33}
print_x( 6, 7,a,b)

结果:

6 7
([1, 2, 3], {'bianhao': 11, 'age': 33})

{}

def print_x( x, y,* args,** kw):
print(x,y)
print(args)
print(kw)
a=[ 1, 2, 3]
b={ 'bianhao': 11, 'age': 33}
print_x( 6, 7,*a,**b)

结果为:

6 7

(1, 2, 3)

{'bianhao': 11, 'age': 33}

递归函数:

# 计算阶乘,用递归的方式写
def cacul( i):
if i == 1:
return 1
return i*cacul(i- 1)
print(cacul( 6))

结果为720

用循环做阶乘:

k= int( input( 'number'))
n= 1
result= 1
while n<=k:
result*=n
n+= 1
print(result)


还有汉诺塔也是用递归:

# 汉诺塔
def move( n, a, b, c):
if n== 1:
print(a, '--->',c)
else:
move(n- 1,a,c,b) #把n-1个从a移到b,c做辅助
print(a, '--->',c)
move(n- 1,b,a,c) #把n-1个从b移到c,a做辅助
k= int( input( '输入块数:'))
move(k, 1 , 2 , 3 )
结果为:输入块数:3
1 ---> 3
1 ---> 2
3 ---> 2
1 ---> 3
2 ---> 1
2 ---> 3

1 ---> 3

匿名函数:lambda parameter_list:expression

def add(x,y):

result=x+y

和 f=lambda x ,y:x+y   结果是一样的

# 用sort排序
list=[{ 'number': 3, 'age': 10},{ 'number': 5, 'age': 17},{ 'number': 2, 'age': 14}]
print( list)
list.sort( key= lambda x:x[ 'number'], reverse= True)
print( list)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值