100天大数据零基础入门到就业------第四天:python函数

一.函数

作用:① 代码重用(代码重复使用)

           ② 模块化编程(模块化编程的核心就是函数,一般是把一个系统分解为若干个功能,                  每个功能就是一个函数)

在编程领域,编程可以分为两大类:① 模块化编程 ② 面向对象编程

 1.什么是函数

所谓函数就是一个被命名的独立的完成特定功能的代码段并可能给调用它的一个程序一个返回值。

2.函数的定义 

基本语法:

def 函数名称([参数1,参数2,....]):

       函数体

       .....

[return 返回值] 

3.函数的调用 

#定义函数

def 函数名称([参数1,参数2,....])

       函数体

         ......

    [return 返回值]

#调用函数

函数名称(参数1,参数 2....)

4.return返回值  

return可以退出当前函数,导致return下方的代码不执行

def return_num():
    return 1
    return 2


result = return_num()
print(result)  # 1

5.通过一个例子引入函数 

#第一步:见到一个老师,打一声招呼
print('您好')
#第二步:见到一个老师,打一声招呼
print('您好')
#第二步:见到一个老师,打一声招呼
print('您好')



#定义函数
def dat(name):
    print(f'{name},您好')

#调用函数
#见到张老师,打一声招呼
dat('老张')
#见到李老师,打一声招呼
dat('老李')
#见到汪老师,打一声招呼
dat('老王')





#定义函数
def greet(name):
     return name+',您好'

# 调用函数
# 见到了张老师,打一声招呼
print(greet('老张'))
# 见到了李老师,打一声招呼
print(greet('老李'))
# 见到了王老师,打一声招呼
print(greet('老王'))





def size(num1,num2):
    jia = num1+num2
    jian = num1 - num2
    cheng = num1 * num2
    chu = num1 / num2
    return jia,jian,cheng,chu 

print(size(20,5))









二.函数的说明文档(注释) 

1.定义函数的说明文档

# 1、定义一个menu菜单函数
def menu():
    pass

# 2、定义通讯录增加操作方法
def add_student():
    """ 函数的说明文档:add_student方法不需要传递任何参数,其功能就是实现对通讯录的增加操作 """
    pass

# 3、定义通讯录删除操作方法
def del_student():
    pass

# 4、定义通讯录修改操作方法
def modify_student():
    pass

# 5、定义通讯录查询操作方法
def find_student():
    pass

help(add_student) 

""""add_student()
    函数的说明文档:add_student方法不需要传递任何参数,其功能就是实现对通讯录的增加操作"‘  

 ② 调用函数的说明文档

help(函数名称) 

# 定义一个generate_code()函数
def generate_code(num):
    """ generate_code方法主要用于生成指定长度的验证码,有一个num参数,需要传递一个int类型的数值,其return返回结果为num长度的随机验证码 """
    import random
    # 第一步:定义一个字符串
    str1 = "0123456789abcdefghijkmnpqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"
    # 第二步:循环num次,代表生成num长度的字符串
    code = ''
    for i in range(num):
        # 第三步:从字符串中随机抽取num个字符
        index = random.randint(0, len(str1) - 1)
        code += str1[index]
    # 第四步:使用return返回验证码
    return code

# 求帮助(查看generate_code函数的作用以及需要传递的参数)
# help(generate_code)

# 调用函数
print(generate_code(6))

 三.函数的嵌套

1.什么是函数的嵌套

一个函数里面又调用了另一个函数,先执行本函数内函数,在执行本函数

2.实例

def test1():

    print("*" * 50)
    print("test 1")
    print("*" * 50)


def test2():

    print("-" * 50)
    print("test 2")
    
    test1()
    
    print("-" * 50)

test2()

四.全局变量和局部变量 

1.什么是变量作用域

变量作用域指的是变量的作用范围(变量在哪里可用,在哪里不可用),主要分为两类:局部变量和全局变量。

2.变量作用范围 

全局变量:在整个程序范围内都可以直接使用

局部变量:在函数的调用过程中,开始定义,函数运行过程中生效,函数执行完毕后,销毁

 3.global关键字

把局部变量修改成全局变量

# 定义全局变量num = 10
num = 10
# 定义一个函数func
def func():
    # 尝试在局部作用域中修改全局变量
    num = 20

# 调用函数func
func()
# 尝试访问全局变量num
print(num)



# 定义全局变量num = 10
num = 10
# 定义一个函数func
def func():
    # 尝试在局部作用域中修改全局变量
    global num
    num = 20

# 调用函数func
func()
# 尝试访问全局变量num
print(num)

五. 开发通讯录管理系统

1.步骤

① 显示功能界面

② 提示用户输入要操作的功能编号

③ 根据用户输入的序号执行相关功能 => if...elif...else

④ 如何让程序一直执行下去,而不是选择某个功能后,程序就退出了 => while True

⑤ 根据用户输入的序号,完成系统中的每一个功能

所有功能都有使用前提:必须共享一套数据 => info = [{}, {}, {}

# 7、定义一个全局变量,结构[{}, {}, {}]
students = []

# 2、封装一个menu函数,用于打印功能菜单
def menu():
    print('-' * 40)
    print('通讯录管理系统V1.0')
    print('1、添加学员信息')
    print('2、删除学员信息')
    print('3、修改学员信息')
    print('4、查询学员信息')
    print('5、遍历所有学员信息')
    print('6、退出系统')
    print('-' * 40)

# 6、封装一个函数add_student(),添加学员信息
def add_student():
    # 提示用户要输入学员的信息(name、age、mobile)
    name = input('请输入学员的姓名:')
    age = input('请输入学员的年龄:')
    mobile = input('请输入学员的电话:')

    # 声明全局变量
    global students

    student = {}
    student['name'] = name
    student['age'] = age
    student['mobile'] = mobile

    students.append(student)
    print('信息已添加成功!')

# 7、封装一个del_student()函数,删除学员信息
def del_student():
    # 提示用户输入要删除学员的姓名
    name = input('请输入要删除学员的姓名:')
    # 声明全局变量
    global students
    for student in students:
        if student['name'] == name:
            # 找到了要删除的学员
            students.remove(student)
            print('信息已删除成功!')
            break
    else:
        print('暂未查询到任何相关信息...')

# 8、edit_student()函数,修改学员信息
def edit_student():
    # 提示用户输入要修改学员的姓名
    name = input('请输入要修改学员的姓名:')
    # 声明全局变量
    global students

    for student in students:
        if student['name'] == name:
            # 找到了要修改的学员信息
            student['age'] = int(input('请输入要修改学员的年龄:'))
            student['mobile'] = input('请输入要修改学员的电话:')
            print('信息已更新成功!')
            break
    else:
        print('暂未查询到任何相关信息...')

# 封装一个show_students()函数,遍历所有学员信息
def show_students():
    # 声明全局变量
    global students

    for student in students:
        print(student)

# 1、编写一个while死循环
while True:
    menu()

    # 3、提示用户输入要操作的功能编号
    num = int(input('请输入要操作的功能编号:'))

    # 4、编写if多条件分支语句,可以根据用户的输入执行相应的功能
    if num == 1:
        # 添加学员信息
        add_student()
    elif num == 2:
        # 删除学员信息
        del_student()
    elif num == 3:
        # 修改学员信息
        edit_student()
    elif num == 4:
        # 查询学员信息(作业)
        find_student()
    elif num == 5:
        # 遍历所有学员信息
        show_students()
    elif num == 6:
        # 5、退出系统
        print('感谢您使用通讯录V1.0系统,欢迎下次继续使用!')
        break
    else:
        print('您输入的信息有误,请重新输入')

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大数据小子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值