Title: Python学习
1 基本用法
输入输出
格式化输出
-
python的格式化输出
str1 = "num: {}".format(123) str1 = "num: {:<44}".format(123) str1 = "num: {:^20}".format(123)-
{}与.format():占位符、格式控制语句(替换{}的内容); -
{:<44}、{:^20}:<表左对齐、>表右对齐,数字是占位符的宽度;此处
{:<44}表示一个宽度为44的左对齐占位符,{:^20}表示一个宽度为20的居中对齐占位符。
-
数组
创建
-
创建指定大小
# 一维 a = [1] *10 ; # 大小位10,初始化全1 # 二维 a = [ [1 for i in range(3)] for h in range(4) ] # 大小4行3列的二维矩阵 # a= [ [1,1,1,], [1,1,1,], [1,1,1], [1,1,1] ]
添加新元素
-
先创建空间再添加
list = [1, 2, 3] list.append("") # 不append直接list[4]会报IndexError list[4] = 4错误的方式:直接索引“尾部溢出index”来添加新元素 ❌
列表推导式
-
英文称呼:List Comprehension
-
语法:
B = [a for a in A if a]- 含义:对于列表A中的每个元素a,如果a的值为真(非零、非空、非None),则将其添加到新列表中。新列表为B.
- 优点:比普通for语句在py中运行的快。因为推导式是编译到C语言级别,而普通for语句是解释型。
- 缺点:更耗内存。
字符串
-
串拼接
注意:串和数字拼接,必须手动把数字变量用
str()转为字符,否则会报error。 -
串分割
list = str1.split(' ')可以化字符串为列表(按间隔符' ')。
文件读写
常规读/写
-
写文件
filename = '???' with open(filename, 'w') as fp: fp.write("...str...")
文件指针操作
-
file.seek(offset, 方向用法- 细节见此ref:文件操作中file.seek()方法
- offset的单位:字符数(字节)
size = file.tell()返回文件指针的当前位置,单位-字符数(字节)
上述单位,不以
open("xxx", 'r')还是rb为转移.-
file.seek()的使用注意事项若file是以
'r'打开的,则不能随意用.seek(offset数, 0/1/2),因为按字符打开的文本,其文本的编码字节与字符的内容没有一一对应的关系,用.seek()就没法精确按数量移动文件指针(除非调用.tell()函数返回offset的值),用自定义的数值进行.seek()跳转,会出现随机、未知的错误.我就出现了使用
file.seek(负数, 2)的报错:io.UnsupportedOperation: can’t do nonzero end-relative seeks.故用
.seek()函数时,最好用'rb'的二进制比特流来打开文本。
-
从文本尾部开始读取,检索关键字
-
文本必须以二进制流的形式读取、再用seek()函数跳转指针位置、读取比特流后得编码。
-
Demo
with open(filename, 'rb') as file: file.seek(-20000, 2) content = file.read() str_content = content.decode('utf-8', errors='ignore') if 'fatal' in str_content: return 1 else: return 0-
将文件以只读、二进制的形式打卡
-
-

最低0.47元/天 解锁文章
17万+

被折叠的 条评论
为什么被折叠?



