小白的python之路
2018/04/18
自定义函数:
作业:定义自定义函数quadratic(),接收3个参数,返回一元二次方程:ax2 + bx + c = 0的2个解。
提示:计算平方根可以调用math.sqrt()函数:
# -*- coding: utf-8 -*-
import math
def quadratic(a,b,c):
p=b*b-4*a*c
if p>=0 and a!=0:
x1=(-b+math.sqrt(p))/(2*a)
x2=(-b-math.sqrt(p))/(2*a)
return x1,x2
elif a==0:
x1=x2=-c/b
return x1
else:
return('none answer')
a=float(input('Please input a='))
b=float(input('please input b='))
c=float(input('Please input c='))
print(quadratic(a,b,c))
函数的参数:
1.位置参数 2.默认参数 3.可变参数 4.关键字参数 5.命名关键字参数
1.位置参数:调用函数时根据函数定义的参数位置来传递参数。
2.默认参数:必选参数放前,默认参数放后面。(避免产生歧义而导致编译器报错)变化较小的参数放后面,变化较大的参数放前面。
3.可变参数:传入的参数个数是可变的。在参数前面增加符号'*',参数接收到后自动组装成tuple数据类型,允许传入0个或者任意个数。(可在list\tuple前面增加'*'将其中的元素变为可变参数输入。)
4.关键字参数:在参数前面增加符号'**'。参数接收到后自动组装成一个dict,允许传入0个或者任意个数。
5.命名关键字参数 :限制关键字参数的名字,例如仅接收dict中特定几个的key作为关键字参数。利用符号'*,key1,key2' '*,'后面的参数识别为命名关键字参数。
实例:计算x的n次方:
def power(x,n=2):#n=2为默认参数
s=1
while n>0:
n=n-1
s=s*x
return s
x=float(input('input x='))
n=float(input('input n='))
print(power(x,n))