Python- 函数(1)


#函数
# help() 查看函数信息
help(abs)
#abs(x, /)  Return the absolute value of the argument.
abs(-5)#5
#函数传入参数有误 会报TypeError 错误
#abs(-5,-1)#TypeError: abs() takes exactly one argument (2 given)
#如果传入参数数量是对的,参数类型错误也会报 TypeError 错误
#abs('a')#TypeError: bad operand type for abs(): 'str'


#help(max)
#max(...)
# max(iterable, *[, default = obj, key = func]) -> value
# max(arg1, arg2, *args, *[, key = func]) -> value
# With a single iterable argument, return its biggest item.The default keyword - only
# argument specifies an object to return if the provided iterable is empty.
# With two or more arguments, return the largest argument.
max('abcdef')#f
max(1,2,3,4,5)#5

#数据类型转换
int('123')      # int: 类型 123
int(12.34)    # int: 类型 12 忽略小数部分 int('12.34') 会报错
float('12.34')  # float: 类型 12.34
str(1.23)       # 字符串: '1.23'
str(100)        # 字符串: '100'
bool(1)         # bool: True
bool('')        # bool: False

# 函数可以赋值给变量 相当于给函数起别名
a = abs
a(-1)# -1

hex(32)#0x20 把10进制转换为16进制


# 定义函数 def `函数名(参数1,参数2):` 用return 返回结果

# 自定义求绝对值
def my_abs(x):
    if x < 0:
        return  -x
    else:
        return  x
# 函数可以没有 return 关键字, 这时返回 None

# 空函数 pass 语句 用做占位符, 函数还没想好怎么写,先占着,让程序跑起来
def nop():
    pass
# pass 用在 if 语句中
age = 0
if age >= 18:
    pass


# 函数参数检查  只做数量检查,布恩那个进行参数类型检查,我们可以自己检验参数类型
# 如: abs(1,2) #TypeError: abs() takes exactly one argument (2 given)
#my_abs('a') # TypeError: '<' not supported between instances of 'str' and 'int'
# 好像也可以做参数类型检查

# 自己做参数类型检查
def my_abs_a(x):
    if not isinstance(x,(int,float)):
        raise TypeError('bad operand type')
    if x < 0:
        return -x
    else:
        return x
#my_abs_a('a')# TypeError: bad operand type

#返回多个值
#从一个点移动到另一个点
import math
def move(x,y,step, angle=0):
    nx = x + step * math.cos(angle)
    ny = y + step * math.sin(angle)
    return nx,ny
x, y = move(100,100,60,math.pi/6)# x = 151.96152422706632 y = 130.0
# 上面的 x,y 其实是一个 tuple
r = move(100,100,60,math.pi/6) # r = (151.96152422706632, 130.0)


#练习  求一元二次方程: ax^2 + bx+ c =0
import math
def quadratic(a:float,b:float,c:float):
    a = float(a)
    b = float(b)
    c = float(c)
    x1 = 0
    x2 = 0
    if b*b -4*a*c > 0:
        x1 = (-b + math.sqrt(b*b - 4 * a * c)) / (2*a)
        x2 = (-b - math.sqrt(b*b - 4 * a * c)) / (2*a)
    return x1, x2

quadratic(2,3,1)#(-0.5, -1.0)
aa = quadratic(1,3,-4)#(1.0, -4.0)


你可能感兴趣的:(Python- 函数(1))