函数基础(一)(day10整理)
目录
昨日内容
文件的基本应用
什么是文件
操作系统提供的虚拟概念,用来存储信息
操作文件的流程
- 打开文件(open)
- 修改文件(write/read)
- 保存文件(flush)
- 关闭文件(close)
打开文件的三种模式
- r(只读)
- w(清空后写入)
- a(追加写入)
文件打开的两种方式
- t 文本模式(文本文件)
- b 二进制模式(音频/图片/视频)
两种方式一般不单独使用
绝对路径和相对路径
绝对路径
从盘符开始
相对路径
相当于当前执行文件的文件夹下的所有文件
with管理文件上下文
跳出with缩进外,会自动关闭文件,可以一次性打开多个文件
文件的高级应用
新的打开文件的模式
- r+,覆盖光标后(文件头)的内容
- w+,w清空文件,读的功能失去了意义
- a+,a让光标移到文件位
如果真要即写又读,打开两次文件
光标移动的应用
- read,以字符为单位,读取n个字符,默认读取全部
以下三个方法以字节为单位
- seek:移动光标的位置,0表示文件头,1表示当前位置,2表示文件末尾
- tell:告诉光标当前位置
- 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的特性
- return返回一个返回值(所有数据类型)
- 没有return默认返回None,如果没有返回值也返回None
- return会终止函数,不运行下面代码,假设有多个return,运行到第一个就会终止
- return可以返回多个值,返回值以元组的形式接收
函数的参数
形参
定义函数阶段的产物,具有接受实参的作用,具有描述意义
def guess(x:int,y:int = 30)->list:
"""给定两个数,打印较大的数"""
if s > y :
print(s)
else:
print(y)
- :后面规定的参数的数据类型,约定俗成
- ->规定的是return的数据类型
位置形参
从左都右,依次接受实参的值
默认形参
- 如果调用时不传值,使用默认值:如果传值了,使用传的值
- 默认形参必须放在位置形参后面
实参
调用阶段的产物,传给形参一个具体的值,具有具体的值(可以为所有数据类型)
位置实参
从左到右依次给位置形参传值,一一对应
关键字实参
- 按照形参名给形参传值(使用情况基本没有)
- 关键字实参必须在位置实参后面
函数的参数一般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整理)的更多相关文章
- 函数基础(二)(day11整理)
目录 昨日内容 函数的定义 函数的三种定义方式 空函数 有参函数 无参函数 函数的调用 函数的返回值 函数的参数 形参 实参 今日内容 可变长参数 可变长形参 可变长实参(仅作了解) 函数对象 函数嵌 ...
- Linux 究级基础入门命令整理
Linux 究级基础入门命令整理 条条框框,三三两两,怎讷个这么多,哈哈!no zuo no die. 纯粹个人菜鸟笔记,望大神笑纳! 后续,未完!! 查看系统信息 uname -a - 查看内核/操 ...
- 速战速决 (3) - PHP: 函数基础, 函数参数, 函数返回值, 可变函数, 匿名函数, 闭包函数, 回调函数
[源码下载] 速战速决 (3) - PHP: 函数基础, 函数参数, 函数返回值, 可变函数, 匿名函数, 闭包函数, 回调函数 作者:webabcd 介绍速战速决 之 PHP 函数基础 函数参数 函 ...
- JavaScript 函数基础
1. JavaScript 函数基础 1. 定义方法 2. 函数的调用方法 3. 函数方法 apply : 将函数作为数组的方法来调用 将参数以数组形式传递给该方法 call : 将函数作为对象的 ...
- Python 函数基础、有序集合、文件操作(三)
一.set 特点: set是一个无序且不重复的元素集合访问速度快:天生解决元素重复问题 方法: 初始化 >>> s1 = set()>>> print(type(s ...
- 【2017-03-05】函数基础、函数四种结构、ref和out参数、递归
一.函数基础 1.函数/方法:非常抽象独立完成某项功能的一个个体 2.函数的作用: 提高代码的重用性提高功能开发的效率提高程序代码的可维护性 3.分类 固定功能函数高度抽象函数 4.函数四要素:输入, ...
- PHP基础入门(三)---PHP函数基础
PHP基础入门(三)---函数 今天来给大家分享一下PHP的函数基础.有了前两章的了解,想必大家对PHP有了一定的基础了解.想回顾前两章的朋友可以点击"PHP基础入门(一)"&qu ...
- PHP基础入门(二)【PHP函数基础】
PHP基础入门(二)--函数基础 了解 PHP基础入门详解(一) 后,给大家分享一下PHP的函数基础. 这部分主要讲的就是: 函数的声明与使用.PHP中变量的作用域.静态变量.函数的参数传递.变量函数 ...
- 09-Python入门学习-函数基础与参数
一.函数基础 1.定义函数的三种形式 1.1 无参函数 def foo(): print('from foo') foo() 1.2 有参函数 def bar(x,y): print(x,y) bar ...
随机推荐
- MySQL 相关规约(v1.0)
0)前言 a. 基本规约 [强制]表存储引擎必须使用InnoDB(针对主库一般是强制要求的) [强制]表字符集默认使用utf8,必要时候使用utf8mb4(个人踩坑:emoji表情存储问题) 说明: ...
- python-字符编码、字符串格式化、进制转化、数据类型、列表、元组、字典总结
目录: 一.字符编码 二.字符串格式化 三.进制转换 四.数据类型及其操作 五.字符串转换 六.列表 七.元组 八.字典 一.字符编码: 计算机由美国人发明,最早的字符编码为ASCII,只规定了英文字 ...
- java实现图片验证码
一.验证码生成类 package hbi.tech.utils; import javax.imageio.ImageIO; import java.awt.*; import java.awt.im ...
- 使用 BeanDefinition 描述 Spring Bean
什么是BeanDefinition 在Java中,一切皆对象.在JDK中使用java.lang.Class来描述类这个对象. 在Spring中,存在bean这样一个概念,那Spring又是怎么抽象be ...
- 记一次linux Docker网络故障排除经历
背景: 之前做了一个项目,需要在容器内访问宿主机提供的Redis 服务(这是一个比较常见的应用场景哈), 常规方案: ① 主机网络(docker run --network=host): 完全应用 ...
- React antd如何实现<Upload>组件上传附件再次上传已清除附件缓存问题。
最近在公司做React+antd的项目,遇到一个上传组件的问题,即上传附件成功后,文件展示处仍然还有之前上传附件的缓存信息,需要解决的问题是,要把上一次上传的附件缓存在上传成功或者取消后,可以进行清除 ...
- 色即是空,空即是色---java有关null的几件小事
故事背景 ---摩诃般若波罗蜜多心经: 观自在菩萨,行深般若波罗蜜多时,照见五蕴皆空,度一切苦厄.舍利子,色不异空,空不异色:色即是空,空即是色.受想行识,亦复如是.舍利子,是诸法空相,不生不灭,不垢 ...
- pycharm 2019/10 激活码 最新福利 (1)
MTW881U3Z5-eyJsaWNlbnNlSWQiOiJNVFc4ODFVM1o1IiwibGljZW5zZWVOYW1lIjoiTnNzIEltIiwiYXNzaWduZWVOYW1lIjoiI ...
- Hyper-V 下linux虚拟机静态IP上网配置的两种方式(1)
工作需要,搭建linux环境,网上搜了两种Hyper-V配置linux静态IP及上网的方式,记录一下,方便查阅,如下是桥接方式的配置: 本实例所用的各项资源说明,系统是windows10企业版64bi ...
- django中CBV
08.13自我总结 django中CBV 一.django处理业务逻辑的两种方式 FBV (function based views):使用函数来处理业务逻辑 CBV (class based vie ...