函数基础(一)(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 ...
随机推荐
- 通过python代码对域名ssl证书进行监控
根据公司要求,要求用zabbix对域名的ssl证书进行到期监控 直接上代码 #!/usr/bin/env python3 from urllib3.contrib import pyopenssl f ...
- 对象实例Vue
var vm = new Vue({ el:'#app', data:{}, //数据 methods:{}, //方法调用 filters:{}, //私有过滤器 directives:{}, // ...
- 基于python的scrapy环境搭建
0.1安装python软件 32位机的电脑安装python-3.6.3.exe 64位机的电脑安装python-3.6.3-amd64.exe 0.1.1 python环境搭建 执行安装程序 选择Ad ...
- Spring 梳理-传递模型数据到视图
传递model,返回string,不指定返回key package com.jt; import com.myOrg.DeptUserDomain; @Controller @RequestMappi ...
- PHP 通过 ReflectionMethod 反射类方法获取注释返回 false 的问题解决
php 通过反射 ReflectionMethod 类来获取类方法的相关信息,其中就包含方法的注释内容. 问题描述 在公司测试环境运行以下代码,如果是 cli 命令行模式运行,正常输出代码注释.如果是 ...
- JVM(一)内存分配
方法区: ①存储被虚拟机加载的类信息.常量.静态变量.即时编译器编译后的代码数据 ②又称为永久代,仅对于Hotspot来讲,JRockit和IBM J9里面没有永久代的概念,1.8以后是元空间,直接使 ...
- pinpoint1.8.5安装及使用指南
简介 pinpoint是开源在github上的一款APM监控工具,它是用Java编写的,用于大规模分布式系统监控.它对性能的影响最小(只增加约3%资源利用率),安装agent是无侵入式的. 各大APM ...
- KafkaStream简介
Kafka Streams 1 概述 Kafka Streams是一个客户端程序库,用于处理和分析存储在Kafka中的数据,并将得到的数据写回Kafka或发送到外部系统.Kafka Stream基于一 ...
- 【DP合集】tree-knapsack
Description 给出一个 N 个节点的有根树,点编号 1 ∼ N ,编号为 i 的点有权值 v i .请选出一个包含树根的,点数 不超过 K 的连通块,使得点权和最大. Input 输入的第一 ...
- Java虚拟机重点知识归纳总结
一. JVM内存分区 分为程序计数器.虚拟机栈.本地方法栈.Java堆.方法区5个区域 其中Java堆和方法区是线程共享的,虚拟机栈.本地方法栈.程序计数器是线程隔离的. 程序计数器: 1.可 ...