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