进入python的世界_day10_python基础——了解一些文件的操作、函数的介绍、函数的语法、函数的定义等

一、文件内光标的移动实战演练(了解)

  • 文件监控系统

​ 把光标控制在末尾,可以监测一个文件是否有新东西添加进来

import time
with open(r'userinfo.txt', 'rb') as f:
    f.seek(0, 2)
    while True:
        line = f.readline()
        if len(line) == 0:
            time.sleep(1)
        else:
            print(line.decode('utf8'), end='')
______________________________________
with open(r'userinfo.txt', 'a', encoding='utf8') as f: # 注意!编码模式一定要带上!不然乱码!
    f.write('天气不错\n')
_________________________________
先执行1,1会自动等待,这时候执行2,1就打印出来了2新增加的内容

二、计算机硬盘存取数据的原理——针对机械硬盘

  • ​ 这个展开就太深奥了,就简单理解硬盘的工作原理是利用特定的磁粒子的极性来记录数据,磁头在读取数据时,将磁粒子的不同极性转换成不同的电脉冲信号,再利用数据转换器将这些原始信号变成电脑可以使用的数据,写的操作正好与此相反。
  • ​ 因为可以看成是对硬盘的雕刻,本质上来说,写好数据后,占用了一块硬盘的空间,是没法直接嫁接之类的,只能覆盖或者重写(长度需一致)
  • ​ 机械硬盘格式化(简单)后,数据是还在硬盘上的,但是指向这个数据的目录标记被删除了,所以没法显示出来这个数据,当系统需要空间来写入另一个文件,它就会利用可用空间并在其中保存另一个文件。 到那时,实际数据才真正消失了
  • ​ 所以装系统时都要先分区,建立引导区

三、文件内容修改(了解)

  1. 覆盖写

    ​ 先存为一个变量名,然后replace.(原,改)替换掉,可能会内存溢出(因为要先一次性读取完)

   with open(r'a.txt', 'r', encoding='utf8') as f:
   	data = f.read()
   with open(r'a.txt', 'w', encoding='utf8') as f1:
   	f1.write(data.replace('jason', 'tony'))
  1. 换地写

    ​ (使用模块,暂时没学)搞一个新文件,把旧文件内容复制过去,然后删除旧文件,重命名新文件

import os

with open('a.txt', 'r', encoding='utf8') as read_f, \
     	open('.a.txt.swap', 'w', encoding='utf-8') as write_f:
    for line in read_f:
        write_f.write(line.replace('tony', 'kevinSB'))

四、函数(重点)

  1. 函数的介绍

    ​ 函数就是相当于一个工具,相同的代码(不一定是长得一模一样)在不同的位置可以反复使用执行能简化冗余的步骤

    ​ 函数的使用必须遵循一个原则: 先定义,后调用

    ​ 定义阶段只检测语法,不执行代码(不会报错先)

  2. 如何用

    ​ 先定义:

 def 函数名(参数1,参数2,...):  >>>函数名不框定,但是要见名知意
     """文档描述"""			  >>>解释这个函数干嘛用,推荐写,类似说明书
     函数体                   >>>核心部分
     return 值			   >>>函数执行后给到的反馈,可以不写默认返回None,函数碰到return会立即结束	(如果多个数据值会组成元组返回)
  1. 函数的分类

    • 内置函数(pycharm)

      ​ 提前给你定义好了 直接使用即可,不用深究底层代码

    • 自定义——无参函数

      ​ 函数名( ) >>>括号内无数据,意思是不需要传递参数(变量名)

      ​ 比如说:

      def done ():
      
          print('嘿嘿嘿')
      
          print('嘿嘿嘿')
      done()
      >>>>
      嘿嘿嘿
      嘿嘿嘿
      
    • 自定义——有参函数

      ​ 函数名(x, y) >>>括号内有数据,意思是需要传递参数(变量名)

      ​ 比如说:

      def done(x, y):  # 指定两个参数得被传递过来
          print(x, y)
      
      
      done(1, 2)
      
    • 自定义——空函数

      ​ 函数名( ) :

      ​ '''''解释下"""

      ​ pass >>>括号内可有可无数据,换行带注释再换行 带pass,意思是先空着,有缘再写,一般用于搭框架时

  2. 函数的参数

    • 形式参数——给人参考的,写在定义阶段括号内的参数

    • 实际参数——使用者调用时填写的,写在调用阶段括号内

      快速理解:形参类似变量名,实参类似数据值,在调用阶段实参临时和形参绑定,函数结束运行后立马断开

posted @ 2022-10-09 16:55  yiwufish  阅读(516)  评论(0)    收藏  举报