• 字符编码/ 文件管理/ 与函数基本定义


    一. 字符编码

    1.字符编码:
       人能识别的语言 对应 计算机的语言, 一一对一,参考的就是字符编码

      ASCII码表      1bytes=8 bit -------->256 位字符
      GBK编码            2bytes代表一个字符
      unicode万国语言      统一2 bytes代表一个字符          优    点:转换速度快,占用空间大 内存‘读’一般用unicode,但在执行阶段,可变成其他代码。
      UTF-8 可变长的编码    英文:1bytes 中文:3bytes               转换速度慢,占用空间小 硬盘与网路运输‘读’用UTF-8
      文件按什么编码存,按什么解开就不乱码。

      硬盘存储的是二进制
      windows 默认编码是GBK


      python2 <ASCII>
      python3 <utf-8>未执行时没有字符串的概念, 默认把字符串默认成unicode的二进制格式

      #coding:utf-8 #告诉以什么方式读
      乱码:在存的时候乱码,无解。
      读的时候乱码,可以换字符编码。


    二:文件管理操作

      操作硬盘无非是读与写,但是不能直接操作,操作系统为你提供了文件管理系统,而文件管理系统里是一个个的文件,所以你想对文件的具体操作,得以文件为单位进行操作,而python只是一个应用程序不能直接操作硬件 ,而读写硬盘是一种操作硬件的操作,所以只能想操作系统发起系统调用,让操作系统为我们调用硬盘。

      python里为用户提供了open()的操作指令,来发起系统调用,操作文件。

    格式:
      f=open('a.txt','r',encoding='utf-8')        f 相当于操作系统的返回值 /encoding告诉以什么方式打开/'r',默认是以读的方式。

      r模式,默认模式,文件不存在则报错          #读写模式可以以绝对路径的方式打开文件
      w模式,文件不存在创建,文件存在则覆盖
      a模式 文件不存在则创建,文件存在不会覆盖,写内容是追加的方式

     文件操作命令:

    f=open('a.txt','r',encoding='utf-8')          #rb/wb  以b方式打开时,读取到的内容是字节类型,写入时也需要提供字节类型,不能指定编码
    f.read()      #读取所有内容,如果文件太大则影响内存
    f.readline    #读取一行的内容
    f.readlines()   #读取所有行,以列表的形式保存
    
    f=open('a.txt','w',encoding='utf-8')
    f.write()     #写内容,必须写的方式打开
    f.close()
    
    f.flush            #把内存书数据刷到硬盘
    f.truncate()           #截断,以字节为单位截取
    f.seek(m,n) #移动光标,以文件开头开始 seek读的是字节,中文一个字是三个字节
            #n=0从开始seek n=1 从当前开始seek n=2 从最后开始seek
    
    
    上下文管理:
    with open('a.txt','w') as f:
        pass
    
    with open('a.txt','r') as read_f,open('b.txt','w') as write_f:
        data=read_f.read()
    View Code

    #r w a rb wb ab b------------>binary二进制 rb ----->以二进制的方式读

    硬盘没有修改的概念,只能覆盖
    内存才可以修改

    import os 模块 覆盖原文件
    os.remove('a.txt') 删除文件
    os.rename('b.txt','a.txt') 重命名

    修改文件名操作:

    import os
    with open('a.txt','r',encoding='utf-8') as read_f,
            open('.a.txt.swap','w',encoding='utf-8') as write_f:
        for line in read_f:
            if line.startswith('hello'):
                line='哈哈哈
    '
            write_f.write(line)
    
    os.remove('a.txt')
    os.rename('.a.txt.swap','a.txt')
    View Code

    三:函数
      1.为何要有函数?
      不加区分地将所有功能的代码垒到一起,问题是:
        代码可读性差  代码冗余  代码可扩展差

      如何解决?
        函数即工具,事先准备工具的过程是定义函数,拿来就用指的就是函数调用

      结论:函数使用必须是:先定义,后调用

    python中函数定义:函数是逻辑结构化和过程化的一种编程方法。
    1 python中函数定义方法:
     2  
     3 def test(x):
     4     "The function definitions"
     5     x+=1
     6     return x
     7      
     8 def:定义函数的关键字
     9 test:函数名
    10 ():内可定义形参
    11 "":文档描述(非必要,但是强烈建议为你的函数添加描述信息)
    12 x+=1:泛指代码块或程序处理逻辑
    13 return:定义返回值
    
    
    调用运行:可以带参数也可以不带
    函数名()
    
    
    #函数的使用:先定义,后调用
    #如何定义函数之定义函数的三种形式
    #1 定义无参函数:函数的执行不依赖于调用者传入的参数就能执行时,需要定义为无参函数
    # def print_tag():
    #     print('*************************')
    
    # def main():
    #     print_tag('*',20,3)
    #     print_msg('hello world')
    #     print_tag('*',20,3)
    #
    # main()
    #2 定义有参数:函数的执行需要依赖于调用者传入的参数才能执行时,需要定义为有参函数
    # def print_tag(tag,count,line_num):
    #     for i in range(line_num):
    #         print(tag*count)

    #3 定义空函数:函数体为pass
    # def func(x,y,z):
    #     pass
  • 相关阅读:
    关于easuiy中的datetimebox与数据库中的时间的交互的使用
    datagrid的getdata和getrows
    easyui中的datagrid的数据加载的问题
    数据库中的数据在datagrid显示footer的显示
    关于网页间传递汉字出现乱码的情况
    使用OpenCL(二) 设备上下文
    使用OpenCL
    复合、源文件组织、类别
    内存管理
    Foundation Kit介绍
  • 原文地址:https://www.cnblogs.com/junxiansheng/p/6994377.html
Copyright © 2020-2023  润新知