因为你两个代码的print位置不同。第一个print与for是同一级,因此是for结束后才执行print,打印循环结束后的i值为3
第二个print与循环体一级,因此是在for循环内执行,输出每次循环计算结果,所有分别输出1和2
两个print所在位置类似于C语言的if..else..外和else内,由于python严格按照语句的位置来划分区域,第一个print相当于和for循环一个等级,第二个print相当于在for循环内部的else内
这就有关于python语言格式的问题了,python语言格式是按照每行前面有没有空格定义是不是一块,如你的代码:for和print,第一段代码中for和print前面没有空格所以for和print是属于两段并列的代码,所以print输出是for循环后i的值,第二段代码因为print前面有空格,所以 print作为for循环的语句,所以输出每次循环的值,我估计你对python的基础还不理解,你在网上任意查找,所以你提出的问题有点不理解,你快点在网上查找一下python编程的基础视频看一下