1.内置函数
Python有很多自带的函数,在api里很容易找到
菜鸟教程的Python内置函数讲的也不错
这里先试试几个能猜的出作用的简单函数
函数名 | 描述 |
---|---|
abs() | 返回数字的绝对值; abs(-1) = 1 |
all() | 判断给定的可迭代参数 iterable 中的所有元素是否都为 TRUE,如果是返回 True,否则返回 False |
any() | 判断给定的可迭代参数 iterable 是否全部为 False,则返回 False,如果有一个为 True,则返回 True |
bin() | 返回一个整数 int 或者长整数 long int 的二进制表示,返回值是字符串 |
bool() | 将给定参数转换为布尔类型,如果没有参数返回False;boo()=False; bool(0)=False; bool(1)=True |
divmod() | 把除数和余数运算结果结合起来,返回一个包含商和余数的元组(a // b, a % b); divmod(7, 2)=(3, 1) |
float() | 将整数和字符串转换成浮点数; float(1) = 1.0; float(‘123’) = 123.0 |
2.定义函数
定义函数需要用到def关键词,格式如下:
def my_fun(y):
return y
print(my_fun(1))#返回1
如果函数体力没有return,则返回None,同时return None可简写为return
def my_fun(y):
y = -y
print(my_fun(1))#返回None
Python的函数参数如果类型不符合,会报TypeError错
def my_fun(y):
y = -y
return y
print(my_fun('a'))
Python的函数可以返回多个值,其实是一个tuple
def my_fun(y):
y = -y
return y, -y
x, y = my_fun(1)
print("x = {}, y = {}".format(x, y))#返回x = -1, y = 1
在 python 中,strings, tuples, 和 numbers 是不可更改的对象,而 list,dict 等则是可以修改的对象。
def my_fun(y):
y = 2
x = 1
my_fun(x)
print(x)#输出的还是1
上面的代码在刚学编程的时候经常见,C++有形参和实参等概念,和这个概念类似
传可变对象实例时,可变对象在函数里修改了参数,那么在调用这个函数的函数里,原始的参数也被改变了
def changeList(myList):
myList += [1, 5]
myList.sort()
return
myList = [2, 3, 1, 4]
changeList(myList)
print(myList)#打印 [1, 1, 2, 3, 4, 5]
3.函数的参数
3.1必需参数
必需参数须以正确的顺序传入函数。调用时的数量必须和声明时的一样
def my_fun(y):
y = 2
my_fun()#这里没有传参数,报TypeError: my_fun() missing 1 required positional argument: 'y'
3.2默认参数
必选参数在前,默认参数在后
定义默认参数要牢记一点:默认参数必须指向不变对象!
def say(a, b=2, c=3):
print('a={}, b={}, c={}'.format(int(a), b, c))
say(1)
say(1, 4)
say(2, c=4)
say(a=3, c=1)
say(a=3, b=1)
say(c=1, b=2, a=3)
3.3可变参数
顾名思义,可变参数就是传入的参数个数是可变的,可以是1个、2个到任意个,还可以是0个
def mySum(*numbers):
sum = 0
for n in numbers:
sum += n
print(sum)
#Python允许你在list或tuple前面加一个*号,把list或tuple的元素变成可变参数传进去
numList = [1, 2, 3]
mySum(*numList) #6
mySum(1, 2, 3) #6
mySum() #0