昨日内容

文件的基本应用

什么是文件

操作系统提供的虚拟概念,用来存储信息

操作文件的流程

  1. 打开文件(open)
  2. 修改文件(write/read)
  3. 保存文件(flush)
  4. 关闭文件(close)

打开文件的三种模式

  1. r(只读)
  2. w(清空后写入)
  3. a(追加写入)

文件打开的两种方式

  1. t 文本模式(文本文件)
  2. b 二进制模式(音频/图片/视频)

两种方式一般不单独使用

绝对路径和相对路径

绝对路径

从盘符开始

相对路径

相当于当前执行文件的文件夹下的所有文件

with管理文件上下文

跳出with缩进外,会自动关闭文件,可以一次性打开多个文件

文件的高级应用

新的打开文件的模式

  1. r+,覆盖光标后(文件头)的内容
  2. w+,w清空文件,读的功能失去了意义
  3. a+,a让光标移到文件位

如果真要即写又读,打开两次文件

光标移动的应用

  1. read,以字符为单位,读取n个字符,默认读取全部

以下三个方法以字节为单位

  1. seek:移动光标的位置,0表示文件头,1表示当前位置,2表示文件末尾
  2. tell:告诉光标当前位置
  3. truncate:阶段处理,truncate(0),清空文件

文件的修改

文件没有插入,只有覆盖的说法

with open('test.py','r',encoding = 'utf8') as fr,\
open('test_swap.py','w',encoding = 'utf8') as fw:
    data = fr.read()
    data = data.replace('sb','s')

    fw.write(data)
    fw.flush

#    for line in fr:
#        line = line.replace('sb','s')
#        fw.(line)
#        fw.flush

import os

os.remove('test.py')
os.rename('test_swap.py','test.py')

今日内容

函数的定义

def 函数名(等同于变量名):
    """对函数的描述信息"""
    代码块

函数定义的特性:函数定义过程,只检测语法,不执行代码

示例:

def guess():
    """给定两个数,打印较大的数"""
    s = 10
    y = 20

    if s > y :
        print(s)
    else:
        print(y)

print(guess._doc_)  # 打印注释内容
print(len._doc_)  # 打印len内置方法的作用

定义函数的三种形式

空函数

def func():
    pass

有参函数

def guess(x,y):
    """给定两个数,打印较大的数"""

    if x > y :
        print(x)
    else:
        print(y)

无参函数

def guess():
    """给定两个数,打印较大的数"""
    s = 10
    y = 20

    if s > y :
        print(s)
    else:
        print(y)

函数的调用

使用函数 guess(),加括号可以区分变量名

guess()  # 调用函数
print(guess)  # 函数的地址

函数的返回值

返回值:返回一个值

def guess():
    """给定两个数,打印较大的数"""
    s = 10
    y = 20

    if s > y :
        return s
    else:
        return y

num = guess()
print(num)  # 20

return的特性

  1. return返回一个返回值(所有数据类型)
  2. 没有return默认返回None,如果没有返回值也返回None
  3. return会终止函数,不运行下面代码,假设有多个return,运行到第一个就会终止
  4. return可以返回多个值,返回值以元组的形式接收

函数的参数

形参

定义函数阶段的产物,具有接受实参的作用,具有描述意义

def guess(x:int,y:int = 30)->list:
    """给定两个数,打印较大的数"""

    if s > y :
        print(s)
    else:
        print(y)
  1. :后面规定的参数的数据类型,约定俗成
  2. ->规定的是return的数据类型

位置形参

从左都右,依次接受实参的值

默认形参

  1. 如果调用时不传值,使用默认值:如果传值了,使用传的值
  2. 默认形参必须放在位置形参后面

实参

调用阶段的产物,传给形参一个具体的值,具有具体的值(可以为所有数据类型)

位置实参

从左到右依次给位置形参传值,一一对应

关键字实参

  1. 按照形参名给形参传值(使用情况基本没有)
  2. 关键字实参必须在位置实参后面

函数的参数一般0~3个,一般,不要超过三个

可变长参数

*把多余的值接收

可变长形参

def min_4(*lt):  # 把所有传过来的实参全部接收,并且以元组的形式存储
    a,b,c,d,*_ = lt
    res1 = min_2(a,b)
    res2 = min_2(c,d)

    return min_2(res1,res2)

res = min_4(1,2,3,4)
print(res)

    

可变长实参

def min_4(a,b,c,d):
    res1 = min_2(a,b)
    res2 = min_2(c,d)

    return min_2(res1,res2)

lt = [1,2,3,4]
res = min_4(*lt)  # 相当于做了解压缩,也就是把lt内的元素一个一个取出来传给形参

函数基础(一)(day10整理)的更多相关文章

  1. 函数基础(二)(day11整理)

    目录 昨日内容 函数的定义 函数的三种定义方式 空函数 有参函数 无参函数 函数的调用 函数的返回值 函数的参数 形参 实参 今日内容 可变长参数 可变长形参 可变长实参(仅作了解) 函数对象 函数嵌 ...

  2. Linux 究级基础入门命令整理

    Linux 究级基础入门命令整理 条条框框,三三两两,怎讷个这么多,哈哈!no zuo no die. 纯粹个人菜鸟笔记,望大神笑纳! 后续,未完!! 查看系统信息 uname -a - 查看内核/操 ...

  3. 速战速决 (3) - PHP: 函数基础, 函数参数, 函数返回值, 可变函数, 匿名函数, 闭包函数, 回调函数

    [源码下载] 速战速决 (3) - PHP: 函数基础, 函数参数, 函数返回值, 可变函数, 匿名函数, 闭包函数, 回调函数 作者:webabcd 介绍速战速决 之 PHP 函数基础 函数参数 函 ...

  4. JavaScript 函数基础

    1. JavaScript 函数基础 1. 定义方法 2. 函数的调用方法 3. 函数方法 apply : 将函数作为数组的方法来调用 将参数以数组形式传递给该方法 call   : 将函数作为对象的 ...

  5. Python 函数基础、有序集合、文件操作(三)

    一.set 特点: set是一个无序且不重复的元素集合访问速度快:天生解决元素重复问题 方法: 初始化 >>> s1 = set()>>> print(type(s ...

  6. 【2017-03-05】函数基础、函数四种结构、ref和out参数、递归

    一.函数基础 1.函数/方法:非常抽象独立完成某项功能的一个个体 2.函数的作用: 提高代码的重用性提高功能开发的效率提高程序代码的可维护性 3.分类 固定功能函数高度抽象函数 4.函数四要素:输入, ...

  7. PHP基础入门(三)---PHP函数基础

    PHP基础入门(三)---函数 今天来给大家分享一下PHP的函数基础.有了前两章的了解,想必大家对PHP有了一定的基础了解.想回顾前两章的朋友可以点击"PHP基础入门(一)"&qu ...

  8. PHP基础入门(二)【PHP函数基础】

    PHP基础入门(二)--函数基础 了解 PHP基础入门详解(一) 后,给大家分享一下PHP的函数基础. 这部分主要讲的就是: 函数的声明与使用.PHP中变量的作用域.静态变量.函数的参数传递.变量函数 ...

  9. 09-Python入门学习-函数基础与参数

    一.函数基础 1.定义函数的三种形式 1.1 无参函数 def foo(): print('from foo') foo() 1.2 有参函数 def bar(x,y): print(x,y) bar ...

随机推荐

  1. mybatis #{}和${}的区别是什么?

    #{}是预编译处理,${}是字符串替换.mybatis在处理#{}时,会将sql中的#{}替换为?号,调用PreparedStatement的set方法来赋值,最后注入进去是带引号的:mybatis在 ...

  2. jQuery常用方法(三)-jQuery Ajax

    JQuery Ajax 方法说明: load( url, [data], [callback] ) 装入一个远程HTML内容到一个DOM结点. $("#feeds").load(& ...

  3. OpenGl 导入读取多个3D模型 并且添加鼠标控制移动旋转

    原文作者:aircraft 原文链接:https://www.cnblogs.com/DOMLX/p/11627508.html 前言: 因为接下来的项目需求是要读取多个3D模型,并且移动拼接,那么我 ...

  4. Zookeeper监控(Zabbix)

      一直在弄监控,这些个中间件Zookeeper.Kafka......,平时也只知道一点皮毛,也就搭建部署过,没有真正的用过,一般都是大数据的同学在用,作为运维人员我需要对他做一个监控,由于对他不是 ...

  5. 多线程基础(主要内容转载于https://segmentfault.com/a/1190000014428190)

    进程作为资源分配的基本单位 线程作为资源调度的基本单位,是程序的执行单元,执行路径(单线程:一条执行路径,多线程:多条执行路径).是程序使用CPU的最基本单位. 线程有3个基本状态: 执行.就绪.阻塞 ...

  6. ssm配置文件

    mybatis配置文件SqlMapConfig.xml <?xml version="1.0" encoding="UTF-8"?> <!DO ...

  7. rest_framework视图

    知识预览 视图 回到顶部 视图 使用混合(mixins) 上一节的视图部分:   from rest_framework.views import APIView from rest_framewor ...

  8. 史上最全docker基础知识汇总

    正文 Docker常用命令 run docker run [OPTIONS] IMAGE [COMMAND] [ARG...] -e设置环境变量:-e username=zhj --name为容器指定 ...

  9. 点云之OpenMesh:error C1083:无法打开包括文件:“OpenMesh/Core/IO/MeshIO.hh”:No such file or directory

    1.这是一个错误引发的惨案:错误提示如下: 在进行点云程序调试时,出现错误:[error C1083:无法打开包括文件:“OpenMesh/Core/IO/MeshIO.hh”:No such fil ...

  10. 章节十七章、2- 给执行失败的case截图

    一.案例演示 1.首先我们把截图的方法单独进行封装方便以后调用. package utilities; import java.io.File; import java.io.IOException; ...