原文出处,如有侵权,请联系删除。

  • 用户自定义.py文件

   如果你已经把my_abs()的函数定义保存为abstest.py文件了,那么,可以在该文件的当前目录下启动Python解释器,用from abstest import my_abs来导入my_abs()函数,注意  abstest是文件名(不含.py扩展名)

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。
  • 定义空函数 nop()

如果想定义一个什么事也不做的空函数,可以用pass语句:

def nop(): pass 

pass语句什么都不做,那有什么用?实际上pass可以用来作为占位符,比如现在还没想好怎么写函数的代码,就可以先放一个pass,让代码能运行起来。

pass还可以用在其他语句里,比如:

if age >= 18: pass 

缺少了pass,代码运行就会有语法错误。

  • 用户自定义检验参数类型
def my_abs(x):
    if not isinstance(x, (int, float)):
        raise TypeError('bad operand type')
    if x >= 0:
        return x
    else:
        return -x
  • 函数返回多个数值
def fun1(x):
    a=x**2
    b=x**3
    return a,b
a,b=fun1(4)
print(a,b)
  • 可变参数
Python-函数小结 Python 第1张
def variableArg(*num):
    sum=0
    for n in num:
        sum=sum+n**2
    return sum
    
    
print(variableArg(1,2,3,4))
可变参数

  定义可变参数和定义一个list或tuple参数相比,仅仅在参数前面加了一个*号。在函数内部,参数numbers接收到的是一个tuple,因此,函数代码完全不变

  *nums表示把nums这个list的所有元素作为可变参数传进去。这种写法相当有用,而且很常见。

  

Python-函数小结 Python 第3张
def power(x, n=2):
    s = 1
    while n > 0:
        n = n - 1
        s = s * x
    return s
默认参数

  这样,当我们调用power(5)时,相当于调用power(5, 2)

  设置默认参数时,有几点要注意: 一是必选参数在前,默认参数在后,否则Python的解释器会报错

  当函数有多个参数时,把变化大的参数放前面,变化小的参数放后面。变化小的参数就可以作为默认参数。

  • 可变参数

  

  

  • 实例之求解一元二次方程的根
import math
#输入三个参数,返回一元二次方程的解
def quadratic(a,b,c):
    delt=math.pow(b,2)-4*a*c
    delt1=math.sqrt(delt)
    if delt<0:
        print('该一元二次方程没有实根')
        return None
    elif delt==0:
        print('该一元二次方程只有一个实根')
        x1=x2=(-b/2*a)
        return x1,x2
    else:
        print('该一元二次方程有两个实根')
        x1=(-b+delt1)/(2*a)
        x2=(-b-delt1)/(2*a)
        return x1,x2
print('请输入一元二次方程的三个系数a,b,c:')
a=float(input('请输入a:'))
b=float(input('请输入b:'))
c=float(input('请输入c:'))
x1,x2=quadratic(a,b,c)
print('该一元二次方程的解析式为:{0}x^2+{1}x+{2}=0'.format(a,b,c))
print('该一元二次方程的解x1={0:.3f},x2={1:.3f}'.format(x1,x2))

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄