对于while和for一直混在一起使用。For的使用太多以至于忘记while也很重要。
同样作为循环结构,两者的一个重要区别在于是否确定循环次数。
For循环规定了变量的起始和终止以及变化条件,这意味着我们可以确定循环的次数。例如从1到100进行for循环,每次自加1,那么可以确定循环次数为100次。
While循环只规定终止条件,因此不需要确定循环次数。Leetcode中求最后一个单词长度。我们无法得知最后一个字母会出现在何处,但是我们知道循环结束条件是循环项为空格,因此只能使用while循环。
class Solution:
def lengthOfLastWord(self, s: str) -> int:
index = len(s) - 1
while s[index] == ' ':
index = index - 1
word_len = 0
while index >= 0 and s[index] != ' ':
word_len = word_len + 1
index = index - 1
return word_len
另外一个区别是执行条件的判断方式不同。