函数基础(一)(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 ...
随机推荐
- APP自動化測試腳本3
package com.lemon.day01; import java.net.MalformedURLException; import java.net.URL; import java.uti ...
- windows环境下搭建python虚拟环境及离线移植
以python3.6为例 ①安装virtualenv: #pip安装之后在D:\Python36\Scripts目录下可以看到多了一个virtualenv.exe可执行文件pip install vi ...
- 日志 logging 代码格式
日志logging 格式代码 import logging looger = logging.getLogger() #创建一个空架子 创建一个文件句柄,用来记录日志(文件流) fh = loggin ...
- Spring Boot(三) 使用Lombok
C#写的多了用习惯了众多的语法糖,再写起来Java总会有一些非常不舒服的地方.比如用惯了C#的属性在用起来Java的属性,写起来就会感觉不够优雅.如:定义一个Person类 public cl ...
- 微项目:一步一步带你使用SpringBoot入门(一)
最近放假了,休息的时候不忘写个小项目来玩玩. 如果有需要一起手动做项目的朋友可以和我一起做这个小项目. 做到哪随心所欲.也就一周的事哈哈. *** 开发环境 JDK1.8 JetBrain Intel ...
- 1 Processing入门简介
1 Processing入门简介 1.1 Before you start Processing是一个为开发面向图形的应用(visually oriented application)而生的简单易用的 ...
- SpringBoot自定义异常,优雅解决业务逻辑中的错误
概要 你是不是在为业务逻辑中出现的异常弄的焦头烂额,常常在后台报错,前端却无法提示错误内容,导致用户体验极差?比如下单失败,前端只能提示下单失败,但是却不知道为什么失败,是库存不足,还是余额不足,亦或 ...
- Step ‘Publish JUnit test result report’ failed: No test report files were found问题解决
1. 查看配置 2.路径设置错误,修改路径和path一致即可 修改后的测试报告路径 重新构建成功
- 记一次客户DB CPU短时间内冲高至99%处理
问题背景: 客户反映DB CPU短时间内冲高,查询变得缓慢,记录此背景下的处理方式 1> 查看系统负载及相关sql 2> 查看相关sql的执行计划 3> 想看相关sql的执行计划是否 ...
- COGS 2095. 不平凡的引线
2095. 不平凡的引线 ★☆ 输入文件:firelead.in 输出文件:firelead.out 简单对比 时间限制:1 s 内存限制:256 MB [题目描述] 这里说的引线是炮 ...