• python学习Day09--函数


    【主要内容】

    函数:
    函数:对功能的封装
    语法:
    def 函数名(形参):
    函数体
    函数名(实参)

    函数名:命名规则和变量一样

    函数的返回值:
    return, 函数执行完毕. 不会执行后面逻辑
    1. 如果函数中不写return返回None
    2. 只写return 返回None
    3. return 返回值. 返回一个值
    4. return 值1, 值2,... 返回多个值. 调用方接收到的是元组
    参数:
    在函数执行的时候给函数传递的信息
    1. 形参:
    1. 位置参数.
    2. 默认值参数. 当调用的时候不给传值使用默认值
    3. 混合使用. 顺序: 1. 位置参数, 2, 默认值参数
    2. 实参:
    1.位置参数. 按照位置给形参赋值
    2. 关键字参数. 按照名称给形参赋值
    3. 混合参数. 先用位置参数, 再用关键字参数

    【代码】

    1、函数的引入

     1 # while 1:
     2 #     print("首先, 打开手机")
     3 #     print("打开陌陌")
     4 #     print("找一个看着还不错的某一某")
     5 #     print("出来约一约.开开心心")
     6 #     print("各回各家,各找各妈")
     7 
     8 # 需要把上面这个功能进行定义或者封装. 在需要的时候.随时拿过来执行, 封装的这个东西就是函数
     9 
    10 # 定义一个功能叫yue
    11 def yue():
    12     # 函数体,代码块
    13     print("首先, 打开手机")
    14     print("打开陌陌")
    15     print("找一个看着还不错的某一某")
    16     print("出来约一约.开开心心")
    17     print("各回各家,各找各妈")
    18 
    19 # 函数的调用, 函数名()
    20 yue()   # 执行函数  # 第一次调用
    21 print("正常上班")
    22 yue()   # 第二次调用

    2、函数的返回值

     1 # def yue():
     2 #     print("约你")
     3 #     print("约他")
     4 #     print("我不约")
     5 #     return "大妈"    # return 返回值  当函数结束的时候. 给调用方一个结果
     6 #
     7 # ret = yue()
     8 # print(ret)
     9 #
    10 # ret2 = yue()
    11 # print(ret2)
    12 
    13 # 只要函数执行到return 函数就会停止执行
    14 # 1. 每个函数如果在函数中不写return, 默认返回None
    15 # 2. 我们也可以只写一个return, 也是返回None, 停止函数的执行
    16 # 3. return 一个返回值.  你在调用方能接受到一个返回值
    17 # 4. return 多个返回值. 多个值需要用,隔开   接收的位置. 接收的是元组.
    18 
    19 # def yue():
    20 #     print("约一约")
    21 #     return  # 函数就停止了
    22 # ret = yue()
    23 # print(ret)
    24 
    25 # def yue():
    26 #     print("打开陌陌")
    27 #     print("大阳哥出马")
    28 #     return "大妈", "萝莉", "模特"
    29 #
    30 # a,b,c = yue() #  多个返回值在接受的位置接受到的是tuple类型的数据
    31 # print(a)
    32 # print(b)
    33 # print(c)

    3、函数的参数

     1 # def yue(fangshi, age):   # 形参
     2 #     print("打开手机")
     3 #     print("打开%s" % fangshi)
     4 #     print("找一个漂亮的妹子")
     5 #     print("年龄最好是%s" % age)
     6 #     print("出来约一约")
     7 #
     8 # yue("微信")
     9 # yue("探探", 38)
    10 # yue("陌陌", 26)
    11 
    12 # def fn(a,b,c):
    13 #     print(a)
    14 #     print(b)
    15 #     print(c)
    16 #
    17 # fn(1, 2, 3)
    18 # fn(b=3, a=2, c=1)  # 在实参调用的时候 . 可以指定参数的值是多少. 关键字(形参)参数
    19 
    20 
    21 # def gn(name, age, address, id, sex, hobby):
    22 #     print("人的名字叫%s, 年龄:%s, 地址:%s, id是:%s, 性别:%s, 爱好是:%s" % (name, age, address, id, sex, hobby))
    23 # gn("太白", 58, "保定", 1, "不详", "女")    # 位置参数
    24 # gn(id=1, name="太白", address="保定", hobby="女", age=58, sex="不详")  # 关键字(形参)参数
    25 # gn("太白", 58, "保定", id="3", sex="女", hobby="不详")
    26 
    27 def regist(id, name, sex=""):
    28     print("录入学生信息:id是%s, 名字是%s, 性别是:%s" % (id, name, sex))
    29 
    30 regist(1, "大阳哥")
    31 regist(2, "徐卫星")
    32 regist(3, "毛尖妹妹", "")
    33 
    34 
    35 # 参数: 在函数执行的时候给函数传递的信息
    36 # 形参: 在函数声明的位置.声明出来变量
    37 # 实参: 在函数调用的时候. 实际你给函数传递的值 
    38 # 函数的参数个数是没有要求的 但是,在运行的时候. 形参和实参要匹配. 按照位置把实参赋值给形参
    39 # 参数的分类:
    40 #   站在实参的角度:
    41 #       1. 位置参数
    42 #       2. 关键字参数
    43 #       3. 混合参数, 注意顺序. 先写位置参数, 然后在写关键字参数. 否则会报错
    44 #   站在形参的角度:
    45 #       1. 位置参数
    46 #       2. 默认值参数
    47 #       3. 默认值参数和位置参数混合使用. 顺序: 先写位置参数. 然后在写默认值参数

    4、实际应用

     1 # 1+2+3+4+5+6+7+8+9+....+100 = ? 5050
     2 # 对功能的封装
     3 # def sum(n):
     4 #     s = 0
     5 #     count = 1
     6 #     while count <= n:
     7 #         s = s + count
     8 #         count = count + 1
     9 #     return s
    10 #
    11 # ret = sum(456)
    12 # print(ret)
    13 
    14 # 计算n是奇数还是偶数
    15 
    16 # def fn(n):
    17 #     if n%2 == 0:
    18 #         return "偶数"
    19 #     return "奇数"
    20 #
    21 # print(fn(456))
    22 
    23 # lst = ["大阳哥", "徐卫星"]
    24 # print(lst.append("胡辣汤"))    # 没有return
    25 #
    26 # s = "哈哈"
    27 # print(s.replace("哈", "呵"))  # 一定有return

    5、作业与练习

     1 # ***********作业讲解**************
     2 '''
     3 #1.1
     4 f=open("a1.txt",mode="r",encoding="utf-8")
     5 # for line in f:
     6 #     print(line)
     7 s=f.read()
     8 print(s)
     9 f.close()
    10 
    11 # 1.2
    12 f=open("a1.txt",mode="a",encoding="utf-8")
    13 f.write("
    信不信由你")
    14 f.flush()
    15 f.close()
    16 
    17 #1.3
    18 f=open("a1.txt",mode="r+",encoding="utf-8")
    19 f.read()
    20 f.write("
    信不信由你,反正我信了")
    21 f.flush()
    22 f.close()
    23 
    24 #1.5
    25 import os
    26 with open("a1.txt",mode="r",encoding="utf-8") as f1,
    27     open("a1_new.txt",mode="w",encoding="utf-8") as f2:
    28     s=f1.read()
    29     ss=s.replace("我说的都是真的。哈哈","你们就相信吧~
    我说的都是真的。哈哈")
    30     f2.write(ss)
    31 os.remove("a1.txt")
    32 os.rename("a1_new.txt","a1.txt")
    33 
    34 #6★★★★★
    35 f=open("a6.txt",mode="r",encoding="utf-8")
    36 line=f.readline()
    37 lst=line.split()
    38 result=[]
    39 #接着往后读
    40 for lin in f:#读取每一行
    41     ll=lin.split()#每一行进行切割
    42     dic={} #每一行对应的字典
    43     for i in range(len(ll)):#i表示ll的索引
    44         dic[lst[i]]=ll[i]
    45     result.append(dic)#将每一个字典放入列表
    46 print(result)
    47 '''
    48 
    49 #************今日练习*****************
  • 相关阅读:
    DotNetty 实现 Modbus TCP 系列 (一) 报文类
    C# 获取文件详细备注信息 (如图片、视频实际创建时间)
    Java 下载 HLS (m3u8) 视频
    开源 DotNetty 实现的 Modbus TCP/IP 协议
    SQL Server 2008 开启远程连接
    在 Web 页面使用 VLC 插件播放 m3u8 视频流 (360 极速模式)
    在 Web 页面中使用离线地图
    使用 Travis CI 自动部署 Hexo 站点至 GitHub Pages
    BZOJ 3238: [Ahoi2013]差异((单调栈+后缀数组)/(后缀树))
    BZOJ 3998: [TJOI2015]弦论(后缀自动机)
  • 原文地址:https://www.cnblogs.com/fengxb1213/p/12290739.html
Copyright © 2020-2023  润新知