一. 调用函数
1. abs():求绝对值
2. max():求最大值
3. min():求最小值
4. int():将其他数据类型转换为整型
5. float():将其他数据类型转换为浮点型
6. bool():将其他数据类型转换为布尔型
7. str():将其他数据类型转换为字符型
8. isinstance():数据类型检查
9. 函数名其实就是指向一个函数对象的引用,完全可以把函数名赋给一个变量,相当于给这个函数起了一个“别名”
a = -1 print(abs(a)) #1 a = (1,2,3) print(max(a)) #3 print(min(1,2,3)) #1 print(int("123")) #123 print(int(12.3)) #12 print(int(12.8)) #12 print(float("12.3")) #12.3 print(float(12)) #12.0 print(str(123)) #123 print(bool(1)) #True print(bool(0)) #False print(bool("adfda")) #True print(bool("false")) #True jia = abs # 注意没有() print(jia(-2)) #2 print(isinstance(1,(int,float))) #True print(isinstance("1",(int,float))) #False
二. 定义函数
1. 除了调用Python内置的函数外,我们还可以编写自己定义的函数,比如手动实现一个abs函数:
def jia_abs(x): if x >= 0: return x else: return -x print(jia_abs(-3)) # 3
2. 如果某个函数还没想好要怎么实现,可以用pass函数将其设置为空函数
def jia_abs(x): pass
3. 调用函数时,如果参数个数不对,Python解释器会报TypeError错误,但如果是参数类型不对,Python无法帮我们检查
def jia_abs(x): if x >= 0: return x else: return -x print(jia_abs(-3,2)) #TypeError: jia_abs() takes 1 positional argument but 2 were given print(jia_abs("-3")) # TypeError: '>=' not supported between instances of 'str' and 'int',和内置的abs报错不一样
我们可以升级一下jia_abs这个函数,在函数内主动判断参数类型,并将其限制为只允许接受int和float类型的函数
def jia_abs(x): if not isinstance(x,(int,float)): raise TypeError("类型错误") if x >= 0: return x else: return -x print(jia_abs("-3")) # TypeError: 类型错误
4. 返回多个值
我们可以在函数中,主动返回多个值
def jia(x): return x,-x a,b=jia(1) print(a,b) #1,-1 a = jia(1) print(a) #(1, -1),实际上jia返回的是一个tuple:(1,-1)
三. 练习题
请定义一个函数quadratic(a, b, c),接收3个参数,返回一元二次方程 ax^2+bx+c=0的两个解
import math def quadratic(a,b,c): return (-b+math.sqrt(pow(b,2)-4*a*c))/(2*a),(-b-math.sqrt(pow(b,2)-4*a*c))/(2*a) if quadratic(2, 3, 1) != (-0.5, -1.0): print('测试失败') elif quadratic(1, 3, -4) != (1.0, -4.0): print('测试失败') else: print('测试成功')
请登录之后再进行评论