函数
函数名其实就是指向一个函数对象的引用,完全可以把函数名赋给一个变量,相当于给这个函数起了一个“别名”.
定义方式:
def one_function(x,y=2):
pass
def 定义函数关键字.
one_function 函数名字.
x,y 形参.后接冒号表示换行.
若未确定函数要执行的事情,先用pass占位.
可以返回多个参数.
return x,y 实际是返回了一个.只是(x,y)的语法糖.
形参和实参的个数要对上.
形参可以有默认参数: 写法为y=2,但是需要学要必要参数的后面.
传递实参时,若是不按照位置去传递.则需要给定名字. 如 two_function(name = 'xiaoming',sex=0)
等等,参数还有更多的形式.
调用方式:
函数名(实参1,实参2,...)
执行后的值,是函数内部return 的值. 可以使用变量接收,作为执行的结果.
return 可以再次调用自己.但是传递不同的参数.来实现递归调用.
def fact(n):
if n==1:
return 1
return n * fact(n - 1)
递归调用时,需要留有一个缺口,来结束执行. 否则导致死循环.
切片
list = [1,2,3,4,5,6,7,8]
[x:y:z]
x:表示开始切的值. 默认为0.即第一个 y:表示结束的值. 默认是list的长度. 因为不包括y值得本身. z:表示隔多个,切一次,默认为1
负数索引也可以进行切片.最后一位是-1
[-2:] 表示切list后两位. [-2:-1] 表示切倒数第二位.
同理,tuple 与 str 同理,都可以切片.
迭代 ()
迭代字典:
迭代字典的key. 默认就是迭代key
for key in dic:
print(key)
迭代字典的value
for value in dic.values():
print(value)
同时迭代key 和 value.
for key,value dic.items():
print(key,value)
字符串,列表,元组同理:
判断是否时可迭代对象:
from collections.abc import Iterable
isinstance(需要判断的对象,Iterable)
如果返回true,则表示是,反之不是.
如何实现C语言类似的for循环.
enumerate() 方法: 将可迭代对象传入,转化成index和value的形式.
for i, value in enumerate(['a','b','c','d','e','f','g']):
print(i,value)