python学习笔记(4)

函数定义和调用

函数就是最基本的一种代码抽象的方式(python有许多内置函数)

调用:要调用一个函数,需要知道函数 的名称和参数

比较函数cmp(x,y)就需要两个参数,如果x<y,就返回-1,如果x==y,就返回0,如果x>y就返回1

数据类型转换函数,不如int()函数可以把其他数据类型转换为整数

>>>int(‘123’)

123

>>int(12.34)

12

例如:

>>>str(123)

‘123’

>>>str(12.3)

‘12.3’

 

 

编写函数:

python中,定义以恶函数要使用def语句,一次写出函数名,括号,括号中的参数和冒号,然后在缩进块中编写函数体,函数的返回值用return 语句返回

例如:定义一个求绝对值的my_abs函数

def my_abs(x):

if x>=0

return x

else

return -x

注意:如果没有return语句,函数执行完毕也会返回结果,只是结构为none

 

函数返回多值

 

但其实这只是一种假象,python函数返回的仍然是单一值,python的函数返回多值其实就是返回一个tuple

 

递归函数:如果一个函数在内部调用自己本身,这个函数就是递归函数

例如:计算阶乘n!

def fact(n):

if n==1

Return n*fact(n-1)

>>>fact(1)

1

>>>fact(5)

120

 

知识点:使用递归函数需要注意防止栈溢出。在计算机中,函数调用时通过栈(stack)这种数据结构实现的,每当进入一个函数调用,栈就会加一层栈帧,每当函数返回,栈就会减一层栈帧。由于栈的大小不是无限的,所以递归调用的次数过多,会导致栈溢出。

 

定义默认参数

例如python自带的int()函数,其实就有两个参数,既可以传一个参数,又可以传两个参数

>>>int(‘123’)

123

>>>int(‘123’,8)

83

注意:int()函数的第二个参数苏是转换进制,如果不传,默认是十进制(base=10)

 

知识点:由于函数的参数按从左到右的顺序匹配。所以默认参数只能定义在必须函数的后面

 

 

定义可变参数

如果想让一个函数能接受任意个参数,我们可以定义一个可变参数:

def fn(*args)

print agrs

可变参数的名字前面有个*号,我们可以传入任意个参数给可变参数:

>>>fn()

()

>>>fn(‘a’)

(‘a’)

>>>fn(‘a’,’b’,’c’)

(‘a’,’b’,’c’)

可变参数也不是很神秘,python解释器会把传入的一组参数组装正一个tuple传递给可变参数,因此在函数内部,直接把变量args看成一个tuple就好了

 

切片操作:

取一个list的部分元素是非常常见的操作

>>>L=[‘Adma’,’Lisa’,’Bart’,’Paul’]

>>>r=[]

>>>n=3

>>>for i in range(n)

...  r.append(L[i])

...

>>>r

[‘Adma’,’Lisa’,’Bart’]

切片操作符

>>>L[0:3]         表示,从索引0开始取,知道索引3 为之,大怒包括3,即012,正好是三个元素

>>>L[:3]           如果第一个索引是0,还可以省略

>>>L[:]             只用一个 : ,表示从头到尾

切片操作还可以制定第三个参数

>>>L[::2]           第三个参数表示每N个取一个,L[::2]表示每两个元素取出来一个,即隔一个取一个

 

倒序切片:

 

记住倒数第一个元素的索引是-1,倒序切片包含起始索引,不包含结束索引

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值