关于Python和c语言的for和while

img

你好,差异可以参考:
a题:
差异主要在于:python中的step是固定的,而c语言的step有可能在循环体中改变
b题:
差异:for i in range(len(L))是i从0到L的长度减1,循环次数是固定的,而i=0; while(i<len(L)): i+=1;是随着i的变化,如果L的长度改变,循环次数也会改变。
c题:
旧列表被遍历,比较像for i in range(len(L)),因为旧列表被遍历长度是没法改变的,而while i<len(L)中的L是新列表的值,万一新列表长度改变,循环就不符合长度不变的要求。

主要你需要理解 python 中的 for 的机制,他是以遍历方式来实现循环的

一个经典的比较例子


for(i=0;i<10;i++){
} // 循环10次

for(i=0;i<10;i++){
  i++
} // 循环5次

c 的循环中,用以判断循环的变量是可参与运算和改变的


for i in range(10):
  print(i)
# 循环10次

for i in range(10):
  i = i+1
  print(i)
# 还是循环10次,因为你所遍历的对象没有被修改,i 仅仅是遍历后得到的内容

在 python 中,for 循环,会将列表或集合单独存放到一个地址中,不被循环内的运算影响,所以答案如 joel 所讲