为什么python循环继续与其他编程语言不同

时间:2015-09-19 06:23:04

标签: python loops continue

在其他编程语言中,当循环中遇到continue时,它不运行下面的代码,只是根据条件设置执行下一个循环。

然而在python中它实际上不会在相同的确切值上触发持续多达3次,直到继续实际触发最终可以有人告诉我为什么会这样?

功能

def get_section(self, address):
    for section in self.sections:
        section_base = section.image_base + section.VirtualAddress
        section_end = section_base + section.Misc_VirtualSize 
        print 'section_base= 0x%x' % section_base, ' section_end = 0x%x' % section_end
        print 'VirtualAdderss = 0x%x' % section.VirtualAddress, 'Misc_virtualSize = 0x%x' % section.Misc_VirtualSize
        if address < section_base or address >= section_end:
            print 'continuued'
            continue
        print 'not continuued'
        print 'Section name = ', section.section_name
        return section
    raise NotImplementedError()


这是日志

address = 0x4013f8

section_base= 0x401000  section_end = 0x5574e5
VirtualAdderss = 0x1000 Misc_virtualSize = 0x1564e5
not continuued
Section name =  text

address = 0x4013f8

section_base= 0x401000  section_end = 0x5574e5
VirtualAdderss = 0x1000 Misc_virtualSize = 0x1564e5
not continuued
Section name =  text

address = 0x55869c
section_base= 0x401000  section_end = 0x5574e5
VirtualAdderss = 0x1000 Misc_virtualSize = 0x1564e5
continuued

section_base= 0x558000  section_end = 0x5818ac
VirtualAdderss = 0x158000 Misc_virtualSize = 0x298ac
not continuued
Section name =  rdata


正如你所看到的那样,它仅在第3次继续播放时没有继续2次,我无法弄清楚为什么它不能从第一次起作用?

1 个答案:

答案 0 :(得分:1)

前两次,if条件未得到满足;因此continue语句未执行。