美文网首页
2018-07-24 day07

2018-07-24 day07

作者: Kris_Shin | 来源:发表于2018-07-24 19:20 被阅读0次

    函数

    1. 函数: 就是对实现某一特定功能的代码块的封装

    2. 作用: 1.封装(将功能绑定在一个函数中,想要使用这个功能的时候覅用这个函数)

    3.声明一个函数

    def 函数名(参数列表):
        函数说明
        函数体
    
    • def: 是python中声明函数的关键字

    • 函数说明: 对函数的功能和参数以及返回值进行说明

    • 函数名: 标识符.pep8.见名知意(不可用无意义的命名方式,大概函数的功能)

    • (): 固定格式

    • 参数列表: (形参列表)参数名1,参数名2...参数的功能是用来接收从外部传到函数内部的数据

    • 函数体: 实现函数功能的代码块,可能回包含一个return语句

    4. 初学者声明函数的步骤:

    • a.确定函数的功能

    • b.确定函数名

    • c.确定参数

      i确定需不需要参数

      ii确定需要几个参数

      (看实现函数的功能需不需要从外部传数据到函数体)

    • d.实现函数功能

    • e.确定返回值

    注意:函数只有在调用的时候才会执行

    5. 函数的调用

    • 函数名(实参列表)

    • 函数名: 调用的函数一定是已经声明过的,调用相同函数名的函数

    • 实参列表: 实参是用来给形参赋值的

    • 函数的调用过程:
      0.回到函数声明的位置
      1.使用实参给形参赋值
      2.执行函数体
      3.函数体执行完毕后,回到函数调用的位置

    注意

    • 1.函数只有在调用才会执行

    • 2.函数调用的时候一定要保证每个形参都有值

    • 3.一个函数可以调用多次

    写一个函数,计算两个数的和

    函数的调用一定要写在函数的声明后

    def addNum(n1, n2):
        
        求两个数的和
        :param n1:提供第一个数,int
        :param n2:提供第二个数,int
        :return:对返回值进行说明
        
        return n1 + n2
    
    
    # 函数的调用一定要写在函数的声明后
    print(addNum(1, 5))
    

    case1: 声明一个函数,功能打印10个星号,调用这个函数

    def printStar():
        print('*' * 10)
    
    
    printStar()
    

    函数的参数

    • 参数的作用: 从函数的外面给函数传值

    1.位置参数

    传参的时候,实参与形参位置一一对应

    def fun1(a, b, c):
        print(a, b, c)
    
    
    fun1(1, 22, 4)
    

    2.关键字参数

    • 调用函数的时候:
    • 函数名(参数=值)
    fun1(c=32, a=6, b=5)
    

    3.参数的默认值

    • python中函数声明的时候参数可以设置默认值,有默认值的参数必须放在参数列表的最后
      调用有默认值的函数,有默认值的参数可以不传参
    def fun2(a, b=1, c=59):
        print(a, b, c)
    
    
    fun2(3, 5)
    fun2(1, 2, 3)
    

    4.参数个数不定

    • 参数个数不确定的时候,在形参前加*,将形参变成元组
      调用的时候,这个参数会将对应的实参作为元组的元素来保存

    写一个函数,求多个数的和

    • 注意参数个数不定,可以是形参中的一部分是不定的

    • 不定长参数只能放到最后,可以不传参

    • 说名:位置参数和关键字参数可以混用

    def mySum(*num):
        sum1 = 0
        for i in num:
            sum1 += i
        print(num)
    
    
    # 注意参数个数不定,可以是形参中的一部分是不定的
    # 不定长参数只能放到最后,可以不传参
    def fun3(a, *b):
        print(a, b)
    
    
    fun3('a', 1, 3, 5, 6, 7, 'a')
    # 说名:位置参数和关键字参数可以混用
    fun2(3, c=2)
    

    作业

    1.编写一个函数,求1+2+3+...N

    '''
     @Author: Kris Shin
     @Date: 2018-07-24 17:02:44
     @Last Modified by: Kris Shin
     @Last Modified time: 2018-07-24 17:02:44
    '''
    def getSum(*num):
        '''
        type num:int/float
        rtype: int/float
        '''
        n = 0  # 存储结果
        for n in num:  # 遍历元组
            n += num
        return n
    
    

    2.编写一个函数,求多个数最大值

    def getMax(*num):
        '''
        type num:int/float
        rtype: int/float
        '''
        maxNum = num[0]  # 取元组第一个值
        for i in num:
            if maxNum < i:
                maxNum = i
        return maxNum
    

    3.编写一个函数,实现摇骰子功能,打印n个骰子的点数和

    import random  # 产生骰子点数
    
    def getDicesPot(n):
        '''
        type num:int
        rtype: int
        '''
        sum1 = 0
        for _ in range(n):
            sum1 += random.randint(1, 6)  # 随机产生1-6的点数,再求和
        return n,sum1
    

    4.编写一个函数,交换指定字典的key和value

    • 例:{'a':1,'b':2,'c':3}→{1:'a',2:'b',3:'c'}

    def switchDict(dict1):
        '''
        type dict1:dict
        rtype: dict
        '''
        dict2 = {}  # 定义一个空字典用来存储交换后的结果
        for key, value in dict1.items():  # 遍历取出key和value
            dict2[value] = key  # 交换key和value给新字典
        return dict2
    

    5.编写一个函数,求三个数的最大值

    def getTriMax(num1, num2, num3):
        '''
        type num1:int/float
        type num2:int/float
        type num3:int/float
        rtype: int/float
        '''
        if num1 >= num2 and num1 >= num3:
            return num1
        elif num2 >= num1 and num2 >= num3:
            return num2
        else:
            return num3
    

    6.编写一个函数,提取指定字符串中的所有字母,然后拼接在一起后打印出来

    • 例:'12a&bc12d--'→打印'abcd'

    def getAlpha(str1):
        '''
        type str1:str
        rtype: str
        '''
        result = ''  # 存储结果
        for i in str1:
            if i.isalpha():  # 调用函数判断i是不是字母也可以用if 'a'<i<'z' or 'A'<i<'Z':
                result += i
        return result
    

    7.编写一个函数,求多个数的平均值

    def getAvg(*num):
        '''
        type num:int/float
        rtype: int/float
        '''
        sum1 = 0
        for i in sum1:
            sum1 += i  # 求和
        return sum1 / len(num)  # 除以长度
    

    8.编写一个函数,默认求10的阶乘,也可计算其他阶乘

    def getFactorial(n=10):
        '''
        type num:int
        rtype: int
        '''
        result = 1
        for i in range(1, n + 1):  # 从1乘到数本身,得到阶乘
            result *= i
        return result
    

    9.编写一个函数,可以对多个数进行不同的运算

    • 例:operation('+', 1,2,3) --->求1+2+3的结果

    • operation( '-',10,9) --->求10-9的结果

    • operation( '',2,4,8,10) --->求24* 8* 10的结构

    def operaNums(operation, *num):  # 操作符和数字分开
        '''
        type operation:str
        type num:int/float
        rtype: int/float
        '''
        result = 0
        if operation == '+':  # 判断操作符
            temp = 0
            for i in num:
                temp += i
            result = temp
        elif operation == '-':
            result = num[0] - num[1]
        elif operation == '*':
            temp = 1
            for i in num:
                temp *= i
            result = temp
        elif operation == '/':
            if num[1] != 0:  # 排除除0报错
                result = num[0] / num[1]
    
        return result
    

    测试输出结果

    print(operaNums('-', 1, 2))  # 测试代码返回结果是否正常
    

    相关文章

      网友评论

          本文标题:2018-07-24 day07

          本文链接:https://www.haomeiwen.com/subject/hnvymftx.html