zoukankan      html  css  js  c++  java
  • 函数的初始、函数的定义、函数的调用、函数的返回值、函数的参数

    1、函数的作用:封装代码、大量的减少了重复的代码。

    2、全局空间:顶行写的就是全局空间。

    图解 :

    3、函数的定义:

    def 是一个关键字、申明要定义一个函数

    my_len 函数的名字、遵循变量命名的规则

    ()固定结构、用来传参

    :表示语句结束

    缩进

    函数体(缩进体)

    4、函数定义结构:

    def 函数名():

      函数体

    5、函数的调用:

    函数名+()

    函数被调用后、函数体中开辟的空间会自动销毁。

    6、返回值:

    return 能够终止函数,return下方的代码不执行

    return 能够返回任意多个数据类型(python中所有对象)、以元组的形式接受

    函数体中不写return默认返回None、或者写了return不写值返回的也是None

    return 将返回值返回给调用者

    7、拆包、解包、平行赋值:

    def func():
    a = 10
    b = 20
    return a,b
    a,b = func()
    print(a,b)
    8、函数中写for、for里面写了return、终止的是函数
    9、函数运行图解:

    10、形参、实参、传参。

    在定义函数的阶段就是形参

    在调用函数的阶段就是实参

    将实参传递给形参的过程就是传参

    传参的时候相当于在当前函数体中进行了赋值操作

    可以单独使用位置参数、也可以单独使用默认参数、也可以混合使用

    11、位置参数:

    位置传参:必须一一对应

    def yue(app,girl,age,addr):
    print("掏出手机")
    print(f"打开{app}")
    print(f"找一位{girl},要求年龄:{age},地区:{addr}的人")
    print("聊一聊")
    print("约一约")
    yue("微信","女孩",18,"乌克兰")
    12、参数优先级:位置参数 > 默认参数
    13、默认参数:
    可以不传参、可以传参、传参就是把默认的值覆盖
    def userinfo(name,age,hobby,sex = "男"):
    print(f"姓名:{name} 年龄:{age} 性别:{sex} 爱好:{hobby}")
    userinfo("岳新力",23,"开车")
    14、关键字传参:
    指名道姓的方式进行传参
    def func(a,b,c=1,d=2):
    print(a,b,c,d)
    func(1,2,c=4)
    作业题:
    # 1、写函数,检查获取传入列表或元组对象的所有奇数位索引对应的元素,并将其作为新列表返回给调用者
    def func(arg):
    lst = []
    lst.append(arg[1::2])
    return lst
    li = [11,22,33,44,55,66,77]
    print(func(li))
    # 2、写函数,判断用户传入的对象(字符串、列表、元组)长度是否大于5
    def func(arg):
    if len(arg) > 5:
    print("大于")
    else:
    print("不大于")
    li = [11,22,33,44,55,66,77]
    func(li)
    # 3、写函数,检查传入列表的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者
    def func(arg):
    lst = []
    if len(arg) > 2:
    lst.append(arg)
    return lst[0][0:2]
    li = [11,22,33,44,55,66,77]
    print(func(li))
    #4、写函数,计算传入函数的字符串中,[数字]、[字母和中文]以及 [其他]的个数,并返回结果
    def func():
    num_sum = 0
    alpha_num = 0
    other_num = 0
    content = input("请输入字符串:")
    for i in content:
    if i.isdecimal():
    num_sum += 1
    elif i.isalpha():
    alpha_num += 1
    else:
    other_num += 1
    return f"数字:{num_sum} 中文和字母:{alpha_num} 其他{other_num}"
    print(func())
    #5、写函数,接收两个数字参数,返回比较大的那个数字
    print(max(1,10))
    #6、写函数,检查传入字典的每一个value的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者
    #dic = {"k1": "v1v1", "k2": [11,22,33,44]}
    # 字典中的value只能是字符串或列表
    dic = {"k1":"v1v1","k2":[11,22,33,44]}
    def func(dic1):
    for i in dic1:
    if len(dic1[i]) > 2:
    dic1[i] = dic1[i][:2]
    return dic1
    print(func(dic))
    #7、写函数,此函数只接收一个参数且此参数必须是列表数据类型,此函数完成的功能是返回给调用者一个字典,此字典的键值对为此列表的索引及对应的元素。例如传入的列表为:[11,22,33] 返回的字典为 {0:11,1:22,2:33}
    lst = [11,22,33]
    dic = {}
    def func(lst):
    for k,v in enumerate(lst):
    dic[k] = v
    func(lst)
    print(dic)
    #8、写函数,函数接收四个参数分别是:姓名,性别,年龄,学历。用户通过输入这四个内容,然后将这四个内容传入到函数中,此函数接收到这四个内容,将内容追加到一个student_msg文件中
    f = open("student_msg","a",encoding="utf-8")
    def userinfo(name,sex,age,edu):
    f.write(f"姓名:{name} 性别:{sex} 年龄:{age} 学历:{edu} ")
    userinfo(input("name:"),input("sex:"),input("age:"),input("edu"))
    #9、对第9题升级:支持用户持续输入,Q或者q退出,性别默认为男,如果遇到女学生,则把性别输入女
    f = open("student_msg","a",encoding="utf-8")
    def userinfo(name,age,edu,sex = "男"):
    f.write(f"姓名:{name} 性别:{sex} 年龄:{age} 学历:{edu} ")
    while True:
    a = input("name:")
    b = input("sex:")
    c = input("age:")
    d = input("edu:")
    if a.upper() == "Q":
    break
    if b == "女":
    userinfo(a,c,d,b)
    else:
    userinfo(a,c,d)
    #10、写函数,用户传入修改的文件名,与要修改的内容,执行函数,完成整个文件的批量修改操作(选做题)
    def file_change(old_file_name,new_file_name,old_centent,new_centent):
    with open(old_file_name,"r",encoding="utf-8") as f,
    open(new_file_name,"a",encoding="utf-8") as f1:
    for i in f:
    f1.write(i.replace(old_centent,new_centent))
    import os
    os.rename(old_file_name,old_file_name + ".bak")
    os.rename(new_file_name,old_file_name)
    file_change("student_msg","userinfo","18","81")
  • 相关阅读:
    移动端H5 QQ在线客服链接代码
    sql语句的优化技巧
    获取网页高度
    微信抽奖游戏
    H5中section和article标签之间的区别
    简易版九宫格相加数值相等
    两个单体内置对象_Global和Math
    特殊的引用类型
    引用类型-Array类型(二)~ 前端学习之路
    引用类型-Array类型~ 前端学习之路
  • 原文地址:https://www.cnblogs.com/zhang-da/p/11621066.html
Copyright © 2011-2022 走看看