Python学习笔记(二) 函数

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

猜你喜欢

转载自blog.csdn.net/winterking3/article/details/81334146