zoukankan      html  css  js  c++  java
  • Python_day09_2018.7.12(初始函数)

    本节内容:

      1.什么是函数

      2.函数的定义,函数名,函数体以及函数的调用.

      3.函数的返回值

      4.函数的参数

    一.什么是函数

        我们可以定义一个事情或功能,等到需要的时候去用就好了,那么这里定义的东西就是一个函数.

     函数:对代码块和功能的封装和定义

    二.函数的定义

        函数名,函数体,以及函数的调用,我们使用def关键字来定义函数的

    定义语法:

      def 函数名(  形参 )

                 函数体

         函数名( )           #调用函数

    例题:

        def   yue( )

             print("约定一起看电影!")

      yue ( )    #调用函数===>结果就是打印"约定一起看电影"

    三.函数的返回

      执行函数之后,可以使用return 来返回结果

    1.函数中遇到return,此函数结束,不再继续执行下面的代码

    def yue( )

    print("约你")

    print("约他")

    return 

    print("哈哈")  #前面有returu,所以ruturn后面的代码不会被执行.

    2.给函数的调用者一个访问结果

    def yue( )

        print("约你")

    return  "美女一枚","宝宝"            #return返回值可以有多个结果

    girl = yue()

    print("gril")   ===>则会输出"美女一枚","宝宝"

    总结:

      1.遇到return,此函数结束,函数后面的东西将不再执行

      2.return  返回值

    关于返回值:

      如果return什么都不写或没有写return,返回NONE

      如果return后面写了一个值,则调用者可以接受一个结果.

      如果return后面写了多个结果,则最终结果是将所有的返回值放在一个tuple元祖中存放.

    四.函数参数

    def yue( chat )

      print("打开"+ chat)

    yue ( 微信 )     #调用函数的地方给出一个实参,传递给函数位置的形参数,然后,形参在函数被调用的过程中写入到程序中.

                           #例子中"微信"被传递并调用,则最终输出结果是---"打开微信"

    关于参数:

      1.形参

        函数声明位置的变量叫做形参

      2.实参

        函数调用是传递给函数的参数,叫做实参

      3.传参

        在整个函数被调用的过程中,将实参传递给形参数的过程就叫做传参.

    参数的分类:

    首先我们看看实参:

    4.11位置参数

    在函数被调用的过程中,将形参的值直接给出来,如: "宝宝",22,"女",1  分别和定义函数时的name,age,sex,id 一一对应

    def fn(name,age,sex,id):
    print("名字:%s 年龄:%s 性别:%s id:%s " % (name,age,sex,id))
    return "我的"
    se = fn("宝宝",22,"女",1)
    print(se)

    4.1.2关键字参数

    在函数被调用的过程中,分别把每个变量的值都给出来,如:  name="宝宝",22,sex="女",id=1 (顺序可以改变) 和定义函数位置的 (name,age,sex,id)是互相对应的.
    def fn(name,age,sex,id):
    print("名字:%s 年龄:%s 性别:%s id:%s " % (name,age,sex,id))
    return "我的"
    se = fn(name="宝宝",22,sex="女",id=1)
    print(se)

    4.13混合参数

    在函数被调用过程中,有些变量的值是位置参数按照顺来一一赋值的,而有一部分的值是关键字参数来赋值的.

    def fn(name,age,sex,id=1):
    print("name=%s age=%s sex=%s id=%s " % (name,age,sex ,id))
    se =fn("大宝宝",18,id=1,sex="女")

    注意:先使用位置参数赋值,然后再使用关键字赋值,使用过了关键字赋值就不能再使用参数赋值.------->关键字参数必须在位置参数后面

    4.2从形参角度看,一共分为三种

    4.2.1 位置参数

      按照位置来赋值

    4.2.2

      再函数声明是就可以给出函数参数的默认值,再调用的时候给出具体的值,也可以不给,使用默认值.

    函数再调用过程中,形参数id=1,已近给了一个默认值1,如果调用时给出id则使用被调用者给出的id值,否则使用默认的id=1.

    def fn(name,age,sex,id=1):
        print("name=%s  age=%s  sex=%s  id=%s " % (name,age,sex ,id))
    se =fn("大宝宝",18,id=1,sex="女")

    注!!必须先声明位置参数,才可以声明位置参数的默认值





    # day9 作业及默写
    # 1,整理函数相关知识点,写博客。
    # 整理完了
    # 2,写函数,检查获取传入列表或元组对象的所有奇数位索引对应的元素,并将其作为新列表返回给调用者。
    #
    # def jishu(lst):
    # count = 0
    # lst1 = []
    # while count < len(lst):
    # lst1.append(lst[count])
    # count += 2
    # return lst1
    # l1 = [1,2,3,4,5,6,7,8,9]
    # print(jishu(l1))


    # 3,写函数,判断用户传入的对象(字符串、列表、元组)长度是否大于5。

    # def leng(lis):
    # if len(lis)> 5:
    # return "长度大于5"
    # return "长度不大于5"
    # l1 = [1,2,3]
    # a = leng(l1)
    # print(a)

    #
    # 4,写函数,检查传入列表的长度,如果大于2,将列表的前两项内容返回给调用者。

    # def line(lis):
    # if len(lis) > 2:
    # return lis[0],lis[1]
    # return None
    # l1 = [1,2,3,4,5,6]
    # print(line(l1))
    #
    # 5,写函数,计算传入函数的字符串中, 数字、字母、空格 以及 其他内容的个数,并返回结果。

    # def jishu(str):
    # num = 0
    # alpha = 0
    # space = 0
    # oth = 0
    # for i in str:
    # i.upper()
    # if i.isdigit(): #数字
    # num += 1
    # elif i.isalpha(): #字母
    # alpha += 1
    # elif i.isspace(): #空格
    # space += 1
    # else: #其他
    # oth += 1
    # return num,alpha,space,oth
    # # l1 = "123abAS @#$%^&"
    # l1 = input("请输入字符串:")
    # print(jishu(l1))



    # 6,写函数,接收两个数字参数,返回比较大的那个数字。

    # def bijiao(a,b):
    # if int(a)>int(b):
    # return a
    # return b
    # a = input("请输入一个数字:")
    # b = input("请再输入一个数:")
    # print(bijiao(a,b))

    #
    # 7,写函数,检查传入字典的每一个value的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。
    # dic = {"k1": "v1v1", "k2": [11,22,33,44]}
    # PS:字典中的value只能是字符串或列表

    # def zidian(k,v):
    # dic = {}
    # while 1:
    # # k = input("请输入k值:")
    # if k.upper() == "Q":
    # return dic
    # v = input("请输入value值:")
    # if type(v) == str:
    # if len(v) > 2:
    # v = v[0] + v[1]
    # dic[k] = v
    # else:
    # dic[k] = v
    # elif type(v) == list:
    # if len(v) > 2:
    # lst1 = []
    # lst1.append(v[0])
    # lst1.append(v[1])
    # dic[k] = lst1
    # dic[k] = v
    #
    #
    # # if type(v) == list or type(v) == str:
    # # if len(v) > 2:
    # # v = v[0] + v[1]
    # # dic[k] = v
    # # dic[k] = v
    # # # return dic
    # else:
    # print("value值不符合规则!!请重新输入!!")
    # # return dic
    #
    #
    #
    # print(zidian())

    #
    # 8,写函数,此函数只接收一个参数且此参数必须是列表数据类型,此函数完成的功能是返回给调用者一个字典,
    # 此字典的键值对为此列表的索引及对应的元素。例如传入的列表为:[11,22,33] 返回的字典为 {0:11,1:22,2:33}。

    # def zidian(lis):
    # if type(lis) == list:
    # dic = {}
    # count = 0
    # for el in lis:
    # dic[count]=el
    # count += 1
    # return dic
    # return "不是列表类型"
    # lis = [11,22,33]
    # print(zidian(lis))


    #
    # 9,写函数,函数接收四个参数分别是:姓名,性别,年龄,学历。用户通过输入这四个内容,
    # 然后将这四个内容传入到函数中,此函数接收到这四个内容,将内容追加到一个student_msg文件中。
    #
    # def luru():
    # f = open("student_msg.txt", mode="a+", encoding="utf-8")
    # f.write("姓名 性别 年龄 学历 ")
    # f.flush()
    # f.close()
    # while 1:
    # name = input("请输入姓名:")
    # if name.upper() == "Q":
    # break
    # else:
    # sex = input("请输入性别:")
    # age = input("请输入年龄:")
    # collage = input("请输入学历:")
    # f = open("student_msg.txt", mode="a+", encoding="utf-8")
    # f.write(name + " ")
    # f.write(sex + " ")
    # f.write(age + " ")
    # f.write(collage + " ")
    # f.flush()
    # f.close()
    #
    # luru()
    #

    #
    # 10,对第9题升级:支持用户持续输入,Q或者q退出,性别默认为男,如果遇到女学生,则把性别输入女。

    # def luru(name,age,collage,sex="男"):
    # f = open("student_msg.txt", mode="a+", encoding="utf-8")
    # f.write(name + " ")
    # f.write(sex + " ")
    # f.write(age + " ")
    # f.write(collage + " ")
    # f.flush()
    # f.close()
    #
    # f = open("student_msg.txt", mode="a+", encoding="utf-8")
    # f.write("姓名 性别 年龄 学历 ")
    # f.flush()
    # f.close()
    # # while 1:
    # # name = input("请输入姓名:")
    # # if name.upper() == "Q":
    # # break
    # # else:
    # # sex = input("请输入性别:")
    # # age = input("请输入年龄:")
    # # collage = input("请输入学历:")
    # # luru(name,age,collage,sex)
    # luru("康琛","21","本科")
    #

    #
    # 11,写函数,用户传入修改的文件名,与要修改的内容,执行函数,完成整个文件的批量修改操作(升级题)。

    # def xiugai(name,old,new):
    # import os
    # with open(name, mode="r", encoding="utf-8") as f1, open("news", mode="w", encoding="utf-8") as f2:
    # for line in f1:
    # s = line.replace(old, new)
    # f2.write(s)
    #
    # os.remove(name) # 删除文件
    # os.rename("news", name)
    # xiugai("cook.txt","肉","菜")



    #
    # 12,写一个函数完成三次登陆功能,再写一个函数完成注册功能(升级题)

    # def dl():
    # count = 0
    # while count < 3:
    # admin = input("请输入用户名:")
    # password = input("请输入你的密码:")
    # if admin == "kc" and password == 123:
    # print("登陆成功!")
    #
    # else:
    # count += 1




    # f = open("admins.txt",mode="r",encoding="utf-8")
    # for line in f.readlines():
    # lst = line.split(":")
    # # print(line)
    # # print(f.readlines())
    # print(lst)


    # def dl(): #-------------------------登陆模块-----------------------
    # admin = input("请输入用户名:")
    # password = int(input("请输入你的密码:"))
    # f = open("admins.txt", mode="r", encoding="utf-8")
    # for line in f.readlines():
    # lst = line.split(":")
    # if admin == lst[0] and password == int(lst[1]):
    # return "登陆成功!"
    # break
    # else:
    # pass
    # return "用户名或密码不正确!!"
    # # print(dl("kc",112))
    # # dl()
    # # print(dl())
    # def zc(): #-----------------------注册模块----------------------
    # f = open("admins.txt", mode="a", encoding="utf-8")
    # admin = input("请输入用户名:")
    # password = input("请输入密码:")
    # # f.write("admin"+":"+"password")
    # # f.write(" ")
    # f.write(" "+admin+":"+password)
    # #
    #
    #
    # #-------------------------系统主框架---------------------
    # print("""
    # 欢迎进入系统首页:
    # 1.登陆系统
    # 2.注册系统
    # """
    # )
    # num = int(input("请输入选择:"))
    # if num == 1:
    # print("欢迎进入登陆系统:")
    # count = 0
    # while count < 3:
    # print(dl())
    # count += 1
    # elif num == 2:
    # print("欢迎进入注册系统!!")
    # zc()
    # else:
    # print("输入有误!!")
    # #


  • 相关阅读:
    Swift中枚举的总结以及使用
    CapsLock Enhancement via AutoHotKey
    计算思维
    计算几何-凸包算法 Python实现与Matlab动画演示
    CapsLock魔改大法——变废为宝实现高效编辑
    Python调用Matlab2014b引擎
    VC++如何利用Matlab2014b的图形引擎进行绘图
    Window中C++进行精确计时的方法
    十四。算法小知识点
    十三。宫水三叶公众号总结
  • 原文地址:https://www.cnblogs.com/kcwxx/p/9299749.html
Copyright © 2011-2022 走看看