Python 数组括号内的表达式是什么意思?

Python 数组括号内的表达式是什么意思?,python,Python,我不明白这段代码想说什么 expectedContent=content[offset+readOffset:offset+readOffset+readSize] 这部分代码是测试程序的一部分,它会自动更正我的家庭作业,它就在这个函数中 def测试读取部分(self,fname): 分数=0 子进程调用([“ipcrm”,“shm”,self.data[“shm_key”]],stderr=open(os.devnull,“w”)) 自写字符串(“创建”\u SHM) self.writeN

我不明白这段代码想说什么

expectedContent=content[offset+readOffset:offset+readOffset+readSize]
这部分代码是测试程序的一部分,它会自动更正我的家庭作业,它就在这个函数中

def测试读取部分(self,fname):
分数=0
子进程调用([“ipcrm”,“shm”,self.data[“shm_key”]],stderr=open(os.devnull,“w”))
自写字符串(“创建”\u SHM)
self.writeNumber(int(self.data[“shm_size”]))
r=self.readString()
如果r!=“创建\u SHM”:
回击得分
r=self.readString()
如果r!=“成功”:
回击得分
#检查shm是否确实存在
shm=self.shmget(int(self.data[“shm_key”]),int(self.data[“shm_size”]),0)
如果shm<0:
如果冗长:
打印“[测试仪]未找到键%s的shm”%self.data[“shm_key”]
回击得分
shAddr=self.shmat(shm,0,0)
分数=1
self.writeString(“映射文件”)
自写字符串(fname)
r=self.readString()
如果r!=“映射文件”:
回击得分
r=self.readString()
如果r!=“成功”:
回击得分
分数=2
sections=getSectionsTable(self.data,fname)
self.writeString(“从文件部分读取”)
自写枚举器(len(节)+2)
self.writeNumber(0)
自写计数器(100)
r=self.readString()
如果r!=“从文件部分读取”:
回击得分
r=self.readString()
如果r!=“错误”:
回击得分
分数=4
fin=打开(fname,“rb”)
content=fin.read()
财务结束()
sectIds=随机样本(范围(长度(截面)),3)
对于sectId中的sectId:
_名称、类型、偏移量、大小=截面[sectId]
readOffset=random.randint(0,大小/2)
readSize=random.randint(5,大小/2)
expectedContent=content[offset+readOffset:offset+readOffset+readSize]
self.writeString(“从文件部分读取”)
self.writeNumber(扇区ID+1)
self.writeNumber(readOffset)
self.writeNumber(readSize)
r=self.readString()
如果r!=“从文件部分读取”:
打印“!!!!!%d”%(扇区ID+1)
回击得分
r=self.readString()
如果r!=“成功”:
打印“[ANDREI]扇区ID:%d,读取偏移量:%d,读取大小:%d”%(扇区ID+1,读取偏移量,读取大小)
回击得分
readContent=ctypes.string_at(shAddr,readSize)
如果readContent!=预期内容:
如果冗长:
打印“[测试仪]读取内容不正确”
其他:
分数+=2
回击得分

数组[x:y]
是一个子数组,它包含索引
x
和索引
y-1
之间的所有元素。实际上,这不是一个操作,而是列表“内容”的截断,从索引开始:(offset+readOffset),结束于inex:(offset+readOffset+readSize)

它是一个列表切片。您的起点来自上一个片段的末尾,并且您正在每次迭代中读取块大小。如果
x
是一个列表,那么
x[a:b]
是一个由元素
x[a]
x[b-1]
组成的列表。请注意,
x[b]
被排除在外。