昨日内容

文件的基本应用

什么是文件

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

操作文件的流程

  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. 性能测试瓶颈判断(LR&Windowns)

    性能测试瓶颈判断(LR&Windowns) 一.判断CPU瓶颈(Processor) 1, %processor time 如果该值持续超过95%,表明瓶颈是CPU.可以考虑增加一个处理器或换 ...

  2. logcat粗略了解(一)

    Logcat Logcat介绍:logcat是android的一个命令行工具,用于的到程序的log信息 Logcat命令格式: [adb] logcat [<option>]…[<f ...

  3. 使用Thymeleaf给前端绑定值

    1.pom依赖 <!-- thymeleaf --> <dependency> <groupId>org.springframework.boot</grou ...

  4. javaweb技术入门

    JavaWeb巩固和进阶 1.如何配置外部应用? 方法一: server.xml 在<Host>中添加如下配置 <Context path="/xxx" docB ...

  5. SpringCache - 请求级别缓存的简易实现

    前言 在SpringCache缓存初探中我们研究了如何利用spring cache已有的几种实现快速地满足我们对于缓存的需求.这一次我们有了新的更个性化的需求,想在一个请求的生命周期里实现缓存. 需求 ...

  6. 【Java】后台将文件上传至远程服务器

    问题:由于系统在局域网(能访问外网)内,但外网无法请求局域网内服务器文件和进行处理文件. 解决:建立文件服务器,用于存储文件及外网调用. 客户端(文件上传): package cn.hkwl.lm.u ...

  7. 一致性hash (PHP)

    <?php /** * Flexihash - A simple consistent hashing implementation for PHP. * * The MIT License * ...

  8. DDR3 DDR4 FPGA实现

    基于7系列.virtex6等xilinx器件的MIG ip核设计DDR3/4读写控制器,以及基于arria 10器件的DDR4读写控制:DDR3/4的设计,设计的关键点是提高DDR3/4的访问效率,目 ...

  9. python编程基础之二十八

    装饰器:说白了就是闭包,但是内部函数调用外部变量调用的是函数, 好处:就是在不用修改原函数代码的前提下给函数增加新的功能 装饰器有两种写法 第一种: #被修饰的函数 def say_hello(nam ...

  10. golang初探与命令源码分析

    前段时间有群友在群里问一个go语言的问题: 就是有一个main.go的main函数里调用了另一个demo.go里的hello()函数.其中main.go和hello.go同属于main包.但是在mai ...