字符编码与函数基本定义

Posted 俊先生

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了字符编码与函数基本定义相关的知识,希望对你有一定的参考价值。

变量与常量
在python中无常量一说,可写大写做提示作用,但还是可变的。

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

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 #告诉以什么方式读
乱码:在存的时候乱码,无解。
读的时候乱码,可以换字符编码。

open() 向操作系统发起系统调用,操作文件
f=open(‘a.txt‘,encoding=‘utf-8‘) f 相当于操作系统的返回值 /encoding告诉以什么方式打开
f.read

f=open(‘a.txt‘,‘r‘,encoding=‘UTF-8‘)
r模式,默认模式,文件不存在则报错
w模式,文件不存在创建,文件存在则覆盖
a模式 文件不存在则创建,文件存在不会覆盖,写内容是追加的方式


f.flush #把内存书数据刷到硬盘
f.seek(m,n) #移动光标,以文件开头开始 seek读的是字节,中文一个字是三个字节
n=0从开始seek n=1 从当前开始seek n=2 从最后开始seek
f.truncate() #截断,以字节为单位截取


#r w a rb wb ab b--->binary二进制 rb ----->以二进制的方式读
r \\绝对路径 ????

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

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


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

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

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

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

以上是关于字符编码与函数基本定义的主要内容,如果未能解决你的问题,请参考以下文章

对字符串的基本操作(查看,转成编码,截取,拼接)

Laravel基本使用

在python 3.6中处理自定义编码时遇到类型错误

如何测试文本片段是不是是 Quoted-printable 编码的

VSCode自定义代码片段——声明函数

VSCode自定义代码片段8——声明函数