首页 > 其他分享 >文件内指针的移动 、内数据的修改 、函数(次函数非数学中的函数)(非常重要)

文件内指针的移动 、内数据的修改 、函数(次函数非数学中的函数)(非常重要)

时间:2023-07-17 16:11:45浏览次数:35  
标签:index return 函数 res 修改 print def 指针

文件的操作模式

"""
    1. 如果是t模式,read里面写的数字代表的是读取的字符个数
    2. 如果是b模式,read里面写的数字代表的是读取的字节个数
    3. 一个字节代表一个英文字符
    4. 一个中文字符使用三个字节保存
"""
# with open('a.txt', 'r', encoding='utf8') as f:
#     print(f.read(3)) # 你好啊

with open('a.txt', 'rb') as f:
    # 你
    print(f.read(10).decode('utf8')) # 你好啊

文件内指针的移动

"""
    指针一定总共有三种模式:
        f.seek(3,0)
        f.seek(offset,whence)
        
        whence:
            # 0: 默认的模式,该模式代表指针移动的字节数是以文件开头为参照的(支持tb模式)
            # 1: 该模式代表指针移动的字节数是以当前所在的位置为参照的(只用于字节模式)
            # 2: 该模式代表指针移动的字节数是以文件末尾的位置为参照的(只用于字节模式)
            
        
"""

with open('a.txt', 'rb') as f:
    # f.seek(3,0)
    # print(f.read())
    # f.seek(-3,1)  # 负数代表的是往相反方向移动
    f.seek(-3,2)  # 负数代表的是往相反方向移动
    print(f.tell()) # 7 查看光标现在移动的位置
    print(f.read())  # loworld

    # print(f.read())  # 读取内容为空

文件的修改

# 方式1:
# 1.
with open('a.txt', 'r', encoding='utf8') as f:
    data = f.read()


res = data.replace('kevin', 'tank')
print(res)

with open('a.txt', 'w', encoding='utf8') as f:
    f.write(res)
    
 # 小练习:实现动态查看最新一条日志的效果
import time  # tail -f a.txt

with open('access.log', mode='rb') as f:
    f.seek(0, 2) # 直接把光标移动到了末尾
    while True:
        line = f.readline()  # 读取一行数据
        if len(line) == 0:
            # 没有内容
            time.sleep(1) # 睡眠0.5秒
        else:
            print(line.decode('utf-8'), end='')

函数简介

def my_len():
    n = 0
    for i in l:
        n += 1
    print(n)

print(my_len())  # None:返回值
"""
1. 我们现在写的代码都不够简洁,说白了就是需要写重复的代码(解决了)
2. 我们现在写的代码兼容性不强(目前解决不了)

函数简介:
    函数就类似于是一个工具(功能)
    函数就是提前定义好的一个功能,以后想用,就调用函数使用
"""

函数的语法结构

def my_len(a,b):
    '''函数注释'''
    print(123)
    return 

"""
1. def 定义函数的关键字(不能省略)
2. my_len
    函数名,不能省略,必须写
    函数名的命名遵循变量的命名
3. def my_len(参数1,参数2):
    参数是可有可无的
    参数就是在执行函数的时候要提前满足的条件
4. 函数注释
    可有可无,一般情况函数注释是用来介绍函数的功能、参数代表的意思,以及返回值的情况等信息
5. 函数体
    函数体也是可有可无的,但是,没有函数体的函数没有意义的,pass
6. 函数的返回值
    关键字:return
    返回值也是可有可无的,一个函数只能有一个return返回值
"""

函数的定义与调用

#########################################################################
"""
    1. 函数必须先定义后调用
    2. 函数在定义阶段只检测语法错误,不执行函数体代码
    3. 只有在函数调用阶段,才会执行函数体代码
    4. 如何调用函数
    	函数名加括号,如果有参数,在调用的时候也要把参数一块传过去
"""
#########################################################################

函数在定义阶段和调用阶段的底层原理:
1. 在内存空间中申请一块地址,来存储函数体代码
2. 把函数体代码所在的空间地址绑定给函数名
3. 通过调用函数来执行函数体代码

函数的分类

1. 内置函数:python解释器自带的函数,可以直接拿来使用
	eg:len、print、之前学的数据类型的内置方法
    '''本质上方法也是函数,为什么叫法不一样呢,函数单独使用就叫函数,面向对象,把函数写在面向对象里面就叫方法'''

2. 自定义函数
	无参函数
    	# 没有参数的函数,括号里面没有参数的函数
        def index():
            pass
        
    有参函数
    	# 有参数的函数就叫有参函数,括号里面有参的函数
        def index(a,b):
            print(a+b)
        index(1,2)
    空函数
    	# 就是没有函数体的代码,空函数可以帮助我们梳理代码思路
 def register():
    pass

def login():
    pass

def order():
    pass

def car_shopping():
    pass

def address():
    pass

函数的返回值

def index(a, b):
    print('helloworld')
    # if a > b:
    #     return '123'
    # else:
    #     return '345'
    # return 1, 2, 3, 4  # (1, 2, 3, 4)
    c = a+ b
    # return [1, 2, 3, 4]
    # return c
    return {
        'username':'kevin',
        'age':18
    }

# 返回值的关键字是return
res = index(1, 2)  #
# res1 = index()
# res1 = index()
# res1 = index()
# res1 = index()
#
# (1,2,3,4) [1, 2, 3, 4]
print(res)  # None res叫称之为是函数的返回值
# print(res[1])  # None res叫称之为是函数的返回值
# print(res1) # None res叫称之为是函数的返回值

"""
1. 函数内如果没有return关键字,那么,函数的返回结果就是None
2. 函数内如果只有return关键字,那么,函数的返回结果仍然是None
3. 函数内有了return关键字,return后面写什么东西就返回什么东西,谁调用,返回结果就给谁
4. 函数内遇到return关键字就直接返回结构,或者叫函数终止运行
5. 一个函数内只能有一个return结果
6. return后面也可以返回多个值,如果使用逗号隔开,那就以元组的形式返回,也可以直接返回列表、字典等类型
"""

标签:index,return,函数,res,修改,print,def,指针
From: https://www.cnblogs.com/huangchunfang/p/17560394.html

相关文章

  • 凸优化5——凸函数的定义
    本节对应凌青老师9,10两课,主要讲了凸函数的四种定义及相关证明凸函数的四种等价定义-知乎(zhihu.com)ConvexOptimization——凸函数-知乎(zhihu.com)具体可参考这两篇注意,凸函数的前提是,该函数的定义域是凸集......
  • NODE_EXPORTER 修改端口
    转载自:https://duanzhanpu.cn/index.php/archives/87/================== 修改prometheus中node-exporter端口因其他业务已占用9100端口,需修改为其他端口#启动时指定端口$nohup./node_exporter--web.listen-address=:7100......
  • PostgreSQL 常用函数(一)
    函数(function)是一些预定义好的代码模块,可以将输入进行计算和处理,最终输出一个结果值。PostgreSQL函数可以分为两类:标量函数(scalarfunction)和聚合函数(aggregationfunction)。标量函数针对每个输入都会返回相应的结果,聚合函数针对一组输入汇总出一个结果。为了便于学习,可以将常见的......
  • ruoyi修改打包jar名称
     ......
  • shared_ptr包装this指针构造bug
    目录成员函数里用shared_ptr包装this指针,当shared_ptr析构了,就会调用this对象的析构函数,是非常可怕的事情。classA{voideat(){std::shared_ptrp(this);ptr->status="吃了";}}voidfunc(){Aa;a.eat();//eat里......
  • mysql截取字符串函数 --九五小庞
    一、mysql截取字符串函数1、left(str,length)从左边截取length2、right(str,length)从右边截取length3、substring(str,index)当index>0从左边开始截取直到结束 当index<0从右边开始截取直到结束 当index=0返回空4、substring(str,index,len)截取str,从index开始,截取len......
  • 重构代码好方法之函数式编程
    在日常编码中,总会出现不同功能有相似之处,比如Session的连接与关闭啊,等等等等为了整理代码以获取眼睛的纯净,可以使用函数式编码步骤:重要的事说一遍第一步:定义函数式接口第二步:定义模板方法第三步:传递lambda表达式创建函数式接口@FunctionalInterfacepublicinterfaceDb......
  • git找回本地修改记录
    最近发生了一起git事故,幸亏自己把code找回来了,要不然那个需求的逻辑我又得写一天,还贼复杂,过程如下:昨天写了一天的code没有提交,今天需要帮同事看一个问题,用的是他的分支,于是乎我把我本地分支没有输入gitadd.操作(一般都会执行这一步,不知道为啥这次忽略了),直接gitcommit之后,执行了......
  • 【双指针】75. 颜色分类、荷兰国旗问题
    75.颜色分类给定一个包含红色、白色和蓝色、共n个元素的数组nums,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。我们使用整数0、1和2分别表示红色、白色和蓝色。必须在不使用库内置的sort函数的情况下解决这个问题。示例1:输入:nums......
  • mongodb副本集(PSA模式)修改节点信息
    环境:OS:Centos7mongodb:4.4.22 我们在副本集扩容的情况下,新加入节点一般设置priority和votes都为0,待新节点数据同步完成后再进行修改:主库上执行新增新的节点:myrepl:PRIMARY>rs.add({host:"192.168.1.107:29001",priority:0,votes:0})待同步完成后查看副本集配置 ......