数据分析 --- day11函数基础

一、函数的作用

写程序的时候会出现这种情况: 有一个功能需要在多个地方使用,如果没有函数需要在每次使用这个功能的时候,把实现这个功能的代码写一遍。

如果有函数可以提前将实现功能的代码封装成函数,然后在所有需要这个功能的位置调用这个函数

二、 函数的定义

1.什么是函数

**概念: **函数就是实现某一特点功能代码的封装
函数就是将实现某一个功能的所有代码打包(封装),以后再需要这段代码对应功能的时候就不需要重复写这段代码了,而是直接调用函数

示例

def sum1(n):
    s = 0
    for i in range(1, n+1):
        s += i
    print(s)

# 1+2+3+...+100
sum1(100)

# 1+2+3+...+50
sum1(50)

2.函数的分类

  • 根据函数由谁创建的可以将函数分为:系统函数和自定义函数
    • 系统函数 - 由系统创建好的函数:print、input、type、chr、ord、max、sum等
    • 自定义函数 - 由程序员自己创建的函数

3.定义函数(创建函数)

  • 语法:

    def 函数名(形参列表):
        函数说明文档
        函数体
    
  • 说明:
    1. 函数名: 名字由程序员自己决定
    两个要求: 是标识符;不能是关键字
    三个规范: 见名知义(看到函数名就大概知道这个函数功能);字母都小写多个单词用下划线隔开; 不使用系统函数名、类名或者模块名

    2. (): : 固定写法

    3. 形参列表: 以’变量名1,变量名2,变量名3,…'的形式存在,这儿的每一个变量就对应一个形参(形参可以有多个,也可以没有);
    形参可以将函数外部的数据传递到函数的内部;
    定义函数的时候需不需要形参,需要几个形参就看实现函数功能的时候需不需要额外的数据,需要几个额外的数据

    4. 函数说明文档: 本质就是和def保持一个缩进的多行注释

    5. 函数体: 结构上就是和def保持一个缩进的一条或者多条语句(至少一条);逻辑上函数体就是实现函数功能的代码。(需要封装的对象)

  • 定义函数步骤:

    步骤说明
    1确定函数功能
    2确定函数名 (根据功能来)
    3确定形参列表 - 看实现函数功能的时候需不需要额外的数据,需要几个额外的数据
    4使用函数体实现函数功能(实现函数的功能的时候,需要将形参当成对应的数据来使用)

示例: 定义一个函数,求任意两个数的和

def sum2(num1,num2):
    """
    (功能说明)求两个数的和
    :param num1: (参数说明)数字1
    :param num2: 数字2
    :return: (返回值说明)None
    """
    print(num1 + num2)

案例: 定义一个函数,统计任意一个列表中数字的个数

def count_num(list1):
    count = 0
    for x in list1:
        if type(x) == int or type(x) == float:
            count += 1
    print(count)

list2 = ['jkmd', 75, 4.2, True, {1,2}, 100]
count_num(list2)

练习1: 定义一个求10的阶乘

def factorial(num1):
    reslut = 1
    for i in range(1, num1+1):
        reslut *= i
    print(reslut)

factorial(5)		# 120

练习2:统计任意一个字符串中中文的数量

def count_chinese(str1):
    count = 0
    for i in str1:
        if '\u4e00' <= i <= '\u9fa5':
            count += 1
    print(count)

str2 = 'fhjsb进销存九54'
count_chinese(str2)		# 4

练习3:定义一个函数判断一个字符串是否以另外一个字符串开头

def start(str1,str2):
    print(str1[:len(str2)] == str2)

start('rnrdfruire72','rnr')			# True

练习4:定义一个函数,将一个名字列表中所有的名字按照123重复报数的方式分成三组

def part3(list1):
    p1 = list1[0::3]
    p2 = list1[1::3]
    p3 = list1[2::3]
    print(p1,p2,p3)

list2 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]
part3(list2)       # [1, 4, 7, 10, 13] [2, 5, 8, 11] [3, 6, 9, 12]

三、函数的调用

1.调用函数

定义函数的时候不会执行函数体,调用函数的时候才会执行函数体(调用多少次就执行多少次)

  • 语法:

    函数名(实参列表)
    
  • 说明:
    1.函数名: 任何已经定义过的函数的函数名
    2.() : 固定写法
    3.实参列表: 以"数据1, 数据2, 数据3, …"的形式存在,在这的每一个数据就是一个实参

实参是用来给形参赋值的(实参才是正真从函数外部传递到函数内部),实参必须和形参一一对应

2.函数调用过程

过程说明
第一步回到函数定义位置
第二步传参(用传参给形参赋值)
第三步执行函数体
第四步确定函数返回值
第五步回到函数调用位置,接着往后执行
def sum2(num1,num2):
    print(num1 + num2)

sum2(100,875)   # num1 = 100, num2 = 875
print('end!')
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值