python基础(二)
1.函数
内置函数:具体参考官方文档:http://docs.python.org/3/library/functions.html#abs
#获取最大值或最小值
l = [1,2,3,99,43]
print(max(l))
print(min(l))
#部分字符串函数
str = "hello world zhangsan"
print("str长度:",len(str))
print("str第一个字符转大写",str.capitalize())
print("str是否包含hello,返回hello的位置",str.find("hello"))
print("lower 转小写:",str.lower())
print("upper 转大写:",str.upper())
数据类型转换函数,如:
#字符串转int
a = int('123')
print(type(a),":",a)
#结果:<class 'int'> : 123
#float转int
a = int(23.663)
print(type(a),":",a)
#结果:<class 'int'> : 23
#int转字符串
b = str(123)
print(type(b),":",b)
#结果:<class 'str'> : 123
什么叫函数:为了实现一个特定的功能,然后把实现这个功能的所有执行语句进行封装,然后每次调用该函数即可
函数定义和调用,使用def ,然后跟上函数名、参数、冒号
def 函数名(参数):
函数体
样例:
def if_func(x):
if x >= 0:
return x
else:
return "error"
print(if_func(100))
#注意:缩进为四个空格或1个tab
def sum(x,y):
return x + y
print(sum(3,4))
#调用自定义的sum函数,传递的参数为3、4,输出结果为7
递归函数
递归就是一个函数自己调用自己
#递归,实现n!=n * (n-1)...... * 3 * 2 * 1
def func(n):
if n == 1:
return 1
return n * func(n-1)
print(func(4))
#详解:
---func(4)
---4 * func(3)
---4 * (3 * func(2))
---4 * (3 * (2 * func(1)))
---4 * (3 * (2 * 1))
---4 * (3 * 2)
---4 * 6
---24
2.其他特性
-
切片
取某个索引范围内的值L = ['张三','李四','王五'] #若要获取L集合中前两个元素,我们可以使用循环,也可以使用切片 #循环 n = 2 for i in range(n): print(L[i],end='\t') print() #切片,从索引0开始,n-1结束,不包括 n L[0:n] print(L[0:2])
-
迭代
#迭代---不通过下标获取 #迭代list集合 L = ['张三','李四','王五'] for i in L: print(i,end='\t') print() #结果:张三 李四 王五 #迭代字符串 for i in "helloworld": print(i,end='\t') print() #结果:h e l l o w o r l d #迭代dict内置字典 dict = {1:"张三",2:"李四",3:"王五"} for k,v in dict.items(): print(k,v) #结果:1 张三 # 2 李四 # 3 王五
-
列表生成式
创建复杂的list集合,如:
#生成 3 * x + 1 ,x取1到10 L = [3 * x + 1 for x in range(11)] print(L) #结果:[1, 4, 7, 10, 13, 16, 19, 22, 25, 28, 31]
-
生成器
相比列表生成式可以节省大量的空间,因为生成器保存的是算法
#生成器 g = (3 * x + 1 for x in range(11)) print(g) for i in g: print(i)
-
迭代器
什么是可迭代对象:可以直接作用于for循环的对象
#判断一个对象是否是Iterable isinstance([1,2,3],Iterable) #结果:True
什么是迭代器:可以被next()函数调用并不断返回下一个值的对象
#判断一个对象是否是Iterator print(isinstance([],Iterator)) #结果:False print(isinstance(g,Iterator)) #结果:True itera = iter([2,4,6,8,10]) while True: try: x = next(itera) print(x,end='\t') except StopIteration: break #结果:2 4 6 8 10