内建函数(Built-in-Functions)
这些函数在py安装完成后即可使用,函数介绍可查看:
python官网内建函数介绍
创建函数
语法:定义函数
定义关键字(def) 函数名 (参数):
[缩进] 返回关键字(return) 可选项 ‘’ 缩进:是为了表达代码逻辑和语境的从属关系,缩进后的代码称为语句块(block).IDE中定义函数冒号后按回车自动会缩进,不使用IDE的情况下要在英文状态下四个空格缩进
return :return是可选项
def f_function (var1,var2):
return ''
函数demo
含有return关键字
def f_CtoF(C):
F=float(C)*9/5+32
return str(F)+'℉'
a=input('请输入需要转换的摄氏度:') #此处输入的为字符串,因此需要在函数里转类型为float,查询input方法/函数,如何限定输入的参数类型:a=float(input(""))可以实现转类型
print("转换后的华氏度为:"+f_CtoF(a))
不包含return关键字
def f_CtoF(C):
F=float(C)*9/5+32
print("转换后的华氏度为:"+str(F)+'℉')
# return str(F)+'℉'
a=input('请输入需要转换的摄氏度:') #此处输入的为字符串,因此需要在函数里转类型为float,查询input方法/函数,如何限定输入的参数类型
# print("转换后的华氏度为:"+f_CtoF(a))
f_CtoF(a)
结果一致
练习题
- 写g、kg 单位转换函数
# unit 练习题1:单位g转换成kg
def f_gTokg(g):
kg=float(g)/1000
return(str(kg)+'kg')
a=input("please input switch num (g):")
print("after switch num:"+f_gTokg(a))
- 写一个求直角三角形斜边长度函数,满足勾股定理
(本想使用cmath中的函数,但是结果有问题,求根使用的是**0.5)
# 练习题2 求直角三角形斜边长度
# import cmath as cm
def f_Trianglelenth(a,b):
# c=cm.sqrt(float(a)*float(a)+float(b)*float(b))
c=(a*a+b*b)**0.5
return(str(c))
a=input("请输入直角三角形a边边长:")
b=input("请输入直角三角形b边边长:")
print("该直角三角形斜边长为:"+f_Trianglelenth(float(a),float(b)))
函数参数:类型、传递
参数传递方式
先声明一个函数,计算梯形面积
# 梯形面积函数
def f_trapezoid(base_up,base_down,height):
s=0.5*(base_up+base_down)*height
return s
位置参数 (position argument)
调用函数,在括号中输入值,就是位置参数,此时参数对应函数定义的时参数的位置;
# 位置参数传递
print(f_trapezoid(1,2,3))
关键词参数(keyword argument)
关键词参数传递时,函数括号中使用定义函数时的参数名=值的形式调用,调用时,参数赋值的顺序允许变化,以名称一一对应值
# 关键词参数传递
print(f_trapezoid(base_up=1,base_down=2,height=3))
print(f_trapezoid(base_down=2,base_up=1,height=3))
位置参数、关键词参数mix传递
必须:位置参数在前,关键词参数传递使用在后
# 位置参数、关键词参数mix传递
print(f_trapezoid(1,2,height=3))
print(f_trapezoid(1, height=3,base_down=2)) #保持位置参数在前,之后使用的关键词参数顺序可以打乱
函数的默认参数
以刚才的梯形面积函数为例,修改高的默认值为3
# 梯形面积函数
def f_trapezoid(base_up,base_down,height=3):#此处给height参数赋默认值,调用函数时没有复制height ,则默认为3
s=0.5*(base_up+base_down)*height
return s
调用函数
print(f_trapezoid(1,2)) #缺省调用
print(f_trapezoid(1,2,5))
执行结果
示例
# 圣诞树
print(' *',' * *','* * *',' | ',sep='\n') #print() 函数sep作为可选参数,意为以...分开,默认以' ' 空格分开