3.1. 定义1个函数,形参3个

代码示例

#!/usr/bin/env python
#-*- coding:utf8 -*-

def fun_bmi(name,height,weight):
    '''
    :param name:
    :param height:
    :param weight:
    :return:根据身高和体重计算bmi指数
    '''
    print(name + "的身高" + str(height) + "米\t 体重:"+ str(weight) + "千克")
    bmi = weight/(height*height)        #计算BMI指数,公式为: "体重/身高的平方"
    print("您的BMI指数为:" + str(bmi))   #输出BMI指数
    #check身材是否合理

    if bmi < 18.5:
        print("您的体重过轻~~~@_@")
    if bmi >=18.5 and bmi <24.9:
        print("正常范围,注意保持...")
    if bmi >=24.9 and bmi <29.9:
        print("您的体重过重!!~~@_@~")
    if bmi>29.9:
        print("@_@肥胖。")

fun_bmi("路人甲",1.83,60)
print("".center(100,"="))
fun_bmi("路人乙",1.49,61)

3.1.1. 定义pass占位

def check_mysql():
    """
    还没想好如何写这个函数
    :return: None
    """
    pass

# 调用函数
check_mysql()


# 隐藏4位号码的函数
#!/usr/bin/env python
#-*- coding:utf8 -*-

def change_number(number):
    hiding_number = number.replace(number[3:7],"*"*4)
    print(hiding_number)

change_number("13262662216")

3.1.2. 函数调用中检查参数

#!/usr/bin/env python
# -*- coding:utf8 -*-
# auther; 18793
# Date:2019/12/22 12:47
# filename: 函数调用中检查参数.py
'''
isinstance()函数的作用是检查函数的类型

def isinstance(x, A_tuple): # real signature unknown; restored from __doc__
    """
    返回对象是一个类的实例还是其子类的实例。可以给出一个元组,
    例如``isinstance(x,(A,B,...)))''作为要检查的目标。
    """

'''


def recoder(strname, age):
    if not isinstance(age, (int, str)):  # 对参数进行检查
        raise TypeError("bad operand type")  # 如果内向错误raise函数进行报错
    print("姓名:{},年龄:{}".format(strname, age))


recoder("hujianli", "22")
recoder("hujianli", 22)
recoder("hujianli", 22.1)  # TypeError: bad operand type