1 pets = ['dog','cat','dog','goldfish','cat','rabbit','cat'] 2 print(pets) 3 for pet in pets: 4 print(pet) 5 #------------------------------------------ 6 pets = ['dog','cat','dog','goldfish','cat','rabbit','cat'] 7 print(pets) 8 while pet in pets: 9 print(pet)
上述代码都想打印列表中的所有元素:
1-4行的代码,采用for结构进行打印,无问题
6-9行代码,采用while结构进行打印却会报错。报错的原因是pet未定义
c语言中for循环和while的作用可以完全一样。但在Python中,却不同,第六行代码显示 pet未定义,思考while执行的逻辑,我们可以得出结论:while更强调:while a ,如果a 逻辑正确,则循环执行下列语句,因此,while的核心在于:while a ,其中a=True.则下列语句在a=True的条件下循环执行。
因此,pet是未被定义的“变量",因此无法判断逻辑的正确性。因此while 后面跟的语句,一定是逻辑可判断True或者False的才能执行。