Python函数和代码的复用 实例示例

例:实现isOdd函数,参数为整数,如果整数为奇数,返回True,否则返回False

def isOdd(*num):#定义一个可变参数
    num = int(input("请输入一个数字:"))#将输入的参数强制转换为整型
    if num%2 == 0:#对num取余,若为0,则该数为偶数
       return False
    else:#如果取余的结果不为0,则该数为奇数
       return True
isOdd()

例:实现isNum()函数,参数为一个字符串,如果这个字符串属于整数、浮点数或复数的表示,则返回True,否则返回False

def isNum(*num):#定义一个可变参数
    try:
        num = eval(input("请输入一个数字:"))#eval()能够以Python表达式的方式解析并执行字符串
        #使用type()判断输入是否为整数、浮点数或复数类型
        if type(num)==int or type(num)==float or type(num)==complex:
            print(True)#如果是整数、浮点数或复数类型,打印True
        else:
            print(False)#如果不是整数、浮点数或复数类型,打印False
    except NameError:#对不是整数、浮点数或复数类型的输入数据进行错误警告
        print("False 你输入的不是整数、浮点数或复数,请重新输入!")
        isNum()#isNum()函数在其定义内部使用了自身,形成了递归过程
isNum()

例:实现multi函数,参数个数不限,返回所有函数乘积

def multi(*a):#定义一个可变数量参数,满足题目中"参数个数不限"的要求
    try:
        multiply = 1#将连乘的初始值赋值为1,若为连加赋值为0
        a = input("请输入你想要连乘的数(把这些数用一个空格隔开):")#强调"一个空格"方便split()函数的切分
        for item in a.split():#遍历a中的所有元素
            multiply *= int(item) #对item中的元素进行强制类型转换
        print("你输入的所有的数的乘积是:{}".format(multiply))#使用format()对multiply进行格式化处理    
    except ValueError:#因为在try语句块中对输入进行了强制类型转换,所以此处错误类型为ValueError
        print("你输入的不是整数,请重新输入!")#对不是简单数值类型的输入数据进行错误警告
        multi()#multi()函数在其定义内部使用了自身,形成了递归过程
multi()

例:实现isPrime()函数,参数为整数,要有异常处理。如果整数是质数,则返回True,否则返回False

def isPrime(*num):#输入一个可变参数
    try:#用try except进行异常处理
        num = int(input("请输入一个数字:"))#把输入参数转换强制转换为整数
        if num > 1:#首先对大于1的整数进行判断
            for i in (2, num):#检验num是否存在因子
                if num%i == 0:#如果存在因子,那么这不是一个质数
                    print("False 这不是一个质数")
                    break#用break终止循环
                else:#如果不存在因子,那么这是一个质数
                    print("True 这是一个质数")
                    break#用break终止循环
        else:#若一个整数小于等于1,那么它一定不是一个质数
            print("False 这不是一个质数")
    except ValueError:#对不是整数类型的输入数据进行错误警告
        print("你输入的不是一个整数,请重新输入!")
        isPrime()#isPrime()函数在其定义内部使用了自身,形成了递归过程
isPrime()

例题来自《Python语言程序设计基础(第二版)》崇天等 著——程序练习题5.2、5.3、5.4、5.5

关于文章内容若有疑问,批评指正的建议或优化方法,欢迎私信或在文章下方回帖

七月从今天开启Python学习之路,专栏将会间断更新,欢迎关注,和七月一起进步

创建这个专栏的初衷和目的:

1.关于代码段的不足之处合理采纳大家的建议,督促自己的学习及反思

2.和初学Python的小白们交流讨论学习路上的困惑与学习的tips,和大家共同进步

文末给学习Python的小白推荐一个系列教程,真的超级有用,我之前看的就是这个,老师讲课思路清晰,真的适合零基础入门~,良心推荐!

B站 北邮《Python编程与实践》课程(2020):北邮《Python编程与实践》课程 (2020)_哔哩哔哩_bilibili

你可能感兴趣的:(七月的python学习,python)