我想问一下在下面的情况下如何将i2插入到i1中。 它可以从 0 到 A 按顺序打印数字。但是我遇到了一些问题,即它只重复打印数字 A 的问题。有没有什么办法解决这一问题? 图片:
左:我想要的结果。
右:我得到的结果。
for i2 in range(record_len_id+1): #0 ~ A
name = i2
print(name)
for i1 in range(num_records): ##0 ~ B
name1 = i1
this_record = read_data(binary_data, record_len, data_start_point + i1 * record_len)
MergeFull = ""
if read_int(this_record, 0) == 417:
MergeFull = "======\n{}\n".format(i2) #Condition Here!!!!!!
MergeFull += "Debug2: {} | ".format(read_int(this_record, 4))
output_file.write(str(MergeFull)+"\n")
当变量在 for 循环顶部声明时,它在 for 循环完成后仍保留在作用域中。
当进入第二个 for 循环时,变量
i2
存在,但其值不变(等于开始时 record_len_id
的值)。
就像 DiggusBickus 建议的那样,
i2
不应在 for 循环中声明,而应在每次使用后更新。
i2 = 0 # initial value here
for i1 in range(num_records):
name1 = i1
this_record = read_data(binary_data, record_len, data_start_point + i1 * record_len)
output_line = ""
if read_int(this_record, 0) == 417:
output_line = "======\n{}\n".format(i2)
i2 += 1 # incremented after use in string
output_line += "Debug2: {} | ".format(read_int(this_record, 4))
output_file.write(str(output_line)+"\n")
for 循环中声明的变量的范围因语言而异: