码迷,mamicode.com
首页 > 编程语言 > 详细

python学习笔记(4)

时间:2018-05-13 23:44:34      阅读:316      评论:0      收藏:0      [点我收藏+]

标签:python

函数定义和调用
函数就是最基本的一种代码抽象的方式(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,即0,1,2,正好是三个元素
>>L[:3] 如果第一个索引是0,还可以省略
>>L[:] 只用一个 : ,表示从头到尾
切片操作还可以制定第三个参数
>>L[::2] 第三个参数表示每N个取一个,L[::2]表示每两个元素取出来一个,即隔一个取一个

技术分享图片

倒序切片:

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

技术分享图片技术分享图片

python学习笔记(4)

标签:python

原文地址:http://blog.51cto.com/13665347/2115803

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!