2018-07-24 day07

2018-07-24  本文已影响0人  Kris_Shin

函数

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

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

3.声明一个函数

def 函数名(参数列表):
    函数说明
    函数体

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

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

5. 函数的调用

注意

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

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

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.参数的默认值

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

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.编写一个函数,提取指定字符串中的所有字母,然后拼接在一起后打印出来

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.编写一个函数,可以对多个数进行不同的运算

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))  # 测试代码返回结果是否正常
上一篇 下一篇

猜你喜欢

热点阅读