python大法好——修改文件、函数
1.修改文件
补充上次没洗完的:
想要修改某个文件里一块地方,可以使用seek函数找到位置write函数修改。
是不是觉得这很简单?
但是如果你这样操作很可能会出现乱码。
因为由于字节数的不同,编码的不同,你把你写的东西直接添加进去对原来的位置不是往后移,而是在原来的位置上直接覆盖,所以可能会出现乱码。
但是为什么word、wps可以直接修改文件?
wps、word会把文件从内存中全部加载到硬盘上,而不是在内存中修改,你有可能会发现当我们打开一个很大的文件时wps.word打开都很慢,因为把文件从内存中加载到硬盘里需要时间,文件越大需要的时间越多!
2.函数
函数是将一组语句通过一个名字*(函数名)封装起来,要想执行时,只需要调用其名字即可。
def fun():
操作
主要作用是为了减少代码重复、使程序变得可扩展、易于程序的维护
下面我们看看什么是形参实参?
def fun(x,y): #这其中x,y是形参
操作 #函数调用
fun(5,6) #实参
python中的默认参数(举例生活中我们需要填一些东西,他老让我们写国籍,在我们的学校里都基本是国人,所以我们不想写国籍了怎么办?
用默认参数直接默认填写)
#默认参数
def fun(name,age,loc="中国"):
操作
当我们调用时如果不写这个参数他会默认是中国
fun("卢本伟",99) #我们没有写 就显示中国 fun("卢本伟",99,us)#如果写了就显示什么
注意的是默认参数必须放在位置参数的后面!!!!!!
python中的关键参数(必须放在未知参数后面)
def fun(name,age,country):
操作 #函数调用
fun("卢本伟",country="日本",age=99)
python中非固定参数
def send(msg,*user):
for u in user:
print("报警",u)
调用
方式一
send("报警",'alex','daliu')
其实写了*user后,参数就不固定了看你需要多少! 方式二
send('报警',*['alex','daliu'])
注意啦:::若*user后面还有参数怎么写呢 上面的写法是会报错的。
举例子:
def send(name,*user,age):
操作 调用:send("卢本伟",'alex','daliu',age=99)
这样子是不会报错的
可能大家也注意到了 *user就是穿了一个元祖/列表
那可以传递字典吗?
当然是可以的。。
name={
"":"卢姥爷",
"":"开挂最牛逼"
}
def send(msg,**name):
操作
函数调用:send("报警",**name)
2.1返回值
函数中止并返回结果,未指定的返回none,函数永远只返回一个值
若出现这种:return name,age 是返回了两个值吗?
不是的,系统会将他们当做元祖显示出来。
也可以直接返回元祖例: return [name,age]
2.2局部变量、全局变量
局部变量:函数里面定义的变量,只在函数内部有效.
执行就近原则!
name=['alex','black','peiq'] def change():
def name[2]
name[1]='黑'
print(names) #函数调用
change()
print(names)
结果是:name=['alex',黑]
为什么可以改变全局变量的值?
这其实只是把name的地址当做是一个整体,但其内部是可以修改的!
那种的是可以修改的?
就像这种一串串的可以修改 什么列表呀 字典丫的
2.3嵌套函数
就是函数里面嵌套函数嘛
要说的只有一点非常的重要
def change() :
print("a")
def change1() :
print("b")
函数调用
change()
这个结果会显示什么?
结果:a
因为change1没有被调用所以不会执行
2.4匿名函数
fun=lambda x,y :
x*y
调用:print(fun(2,5))
就这个例子自行体会,要知道的是在匿名函数最骚的操作可能就是三元运算了。循环什么都不行,
2.5高阶函数
满足条件:
1.函数中参数是另一个函数(就是参数是函数)
def a(x,y):
return x*y
def b(x):
return x
f=b(a) #函数a被当做参数传入
print(f(2,8))
2.返回值中返回有函数
例:return abs,x,y
python大法好——修改文件、函数的更多相关文章
- python 装饰器修改调整函数参数
简单记录一下利用python装饰器来调整函数的方法.现在有个需求:参数line范围为1-16,要求把9-16的范围转化为1-8,即9对应1,10对应2,...,16对应8. 下面是例子: def fo ...
- 采用python获得并修改文件编码(原创)
windows和linux采用了不同的编码,这让很多人伤透了脑经,这里我采用了Python的chardet库获得代码的编码,然后修改编码. 1.首先需要安装chardet库,有很多方式,我才用的是比较 ...
- python大法好——编码.文件
1.编码 python3 中使用utf-8作为默认编码. UTF-8对Unicode进行转化,为解决存储和网络传输问题. UTF是为Unicode编码设计的一种在存储和传输节省空间的编码方案. Uni ...
- python getmtime() 最近修改文件内容的时间
import time import os def mm(): file_name = '1.txt' file_times_modified = time.localtime(os.path.get ...
- python语言(三)文件修改、函数、json操作、监控日志代码、高效读取文件
1.文件操作(2) 代码 f = open('a.txt','a') # "a" 如果源文件不在,会自动创建 f.write('abc') result = f.read() ...
- python笔记(三)---文件读写、修改文件内容、处理json、函数
文件读写(一) #r 只读,打开文件不存在的话,会报错 #w 只写,会清空原来文件的内容 #a 追加写,不会请求,打开的文件不存在的话,也会帮你新建的一个文件 print(f.read()) #获取到 ...
- python基础3之文件操作、字符编码解码、函数介绍
内容概要: 一.文件操作 二.字符编码解码 三.函数介绍 一.文件操作 文件操作流程: 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 基本操作: #/usr/bin/env ...
- Python基础-week03 集合 , 文件操作 和 函数详解
一.集合及其运算 1.集合的概念 集合是一个无序的,不重复的数据组合,它的主要作用如下 *去重,把一个列表变成集合,就自动去重了 *关系测试,测试两组数据之前的交集.并集.差集.子集.父级.对称差集, ...
- python day5 lambda,内置函数,文件操作,冒泡排序以及装饰器
目录 python day 5 1. 匿名函数lambda 2. python的内置函数 3. python文件操作 4. 递归函数 5. 冒泡排序 6. 装饰器 python day 5 2019/ ...
随机推荐
- windows下vscode修复c++找不到头文件
因为原博客太长将部分内容分开 vscode找不到头文件的问题是由于windows下vscode默认的编译器是微软的MSVC(vs使用的编译器)的头文件路径 如果你没有安装vs肯定会因为找不到头文件而报 ...
- SELinux杂谈
----------------------------- 文末有推荐参考文档列表--------------------------- SELinux(Security Enhanced Linux ...
- ALGO-120_蓝桥杯_算法训练_学做菜
问题描述 涛涛立志要做新好青年,他最近在学做菜.由于技术还很生疏,他只会用鸡蛋,西红柿,鸡丁,辣酱这四种原料来做菜,我们给这四种原料标上字母A,B,C,D. 涛涛现在会做的菜有五种: . 西红柿炒鸡蛋 ...
- windows cmd下ssh连接免密码问题解决
windows 7 cmd下 ssh -T username@serverip 免密码连接成功 有的同学在windows下开发,并且在windows下安装了git for windows,这些资源已经 ...
- 【SpringMVC】文件上传Expected MultipartHttpServletRequest: is a MultipartResolver错误解决
本文转载自:https://blog.csdn.net/lzgs_4/article/details/50465617 使用SpringMVC实现文件上传时,后台使用了 MultipartFile类, ...
- jquery zTree搜索高亮的例子
思路: 搜索的时候发请求到后台,后台根据关键字找到匹配的节点,并将这些节点添加一个标志light: 后面就根据这个light为true就高亮,false就不高亮: 后台将这些节点返回到前台,前台展示: ...
- C与C++的部分区别
1.函数无形参情况 void test() { } int main() { test(,); ; } 在C语言中形参括号没有参数时代表接受任意多的参数,而在C++语言中代表void(无参数) 所以上 ...
- appium 启动了2个端口,但是只有一台机器在跑的 问题解决 (还没试,记录在此)
appium启动了2个,端口分别设置为了4723 4725, 在测试类中也分别指定了设备和端口,用device来指定.然而每次都是运行一个设备. 后来添加了udid这个来指定才发现可以.deviceN ...
- 廖雪峰Java3异常处理-2断言和日志-1使用断言
1.断言 断言Assertion是一种程序调试方式 使用assert关键字 断言条件预期为true 如果断言失败,抛出AssertionError,停止程序 可选的断言消息,断言失败,就会抛出 pub ...
- 廖雪峰Java2面向对象编程-2数据封装-1方法重载
方法重载 方法重载Overload是指:多个方法的方法名相同,但各自的参数不同 参数的个数不同 参数的类型不同 参数位置不同 方法返回值类型通常都是相同的 目的:相同功能的方法使用同一名字,便于调用 ...