循环结构是难掌握的考点,经常被循环的过程搞到晕头转向。这篇文章,先跟着我一起找到破解for循环问题的关键,总结高频考点,再一起尝试掌握经常使用到计数循环的两种算法的核心思维方法—穷举算法和迭代算法。循环就是重复,并且是变化着的重复,有两种形式,一种是知道循环多少次的问题,计数循环(for 循环);一种是知道最终结果,但是不知道需要循环多少次的问题,while循环。
我们先通过一张图覆盖for循环的所有知识点
For 变量 in 序列:
For — 表示循环的开始
变量:每次循环取出序列里的元素存入这个变量
in:固定搭配,代表从序列中逐个取值
序列:字符串、列表、range 范围
看个经典的迭代算法,告诉你怎么搞明白执行过程!!
一句话说清楚迭代:
“平地起高楼”,盖5楼得先盖4楼,盖4楼得先盖3楼,盖3楼得先盖2楼.
不断用上一次的运算结果,代入公式算出下一次结果,一遍一遍重复,直到终止。
假设我们求第6项,在纸上写出迭代过程,一步步推导,观察变化着的重复。重复的是相同运算过程,变化的是每次参加运算的数值不同。
f1, f2 = f2, f1 + f2
精髓:先把右边两个值全部算出来,再同时赋值给左边。记住,赋值语句,先计算赋值符号”=”右边的内容,得到结果以后再赋值给左边,一定一定不是等于的意思!!!
穷举算法结合for循环,高频的考点有列出所有水仙花数,百钱买百鸡问题,孙子算经问题。高频考点主要是考查range()函数的使用,特别是终值的取值,要牢记,终值如果是n,程序执行时只能取到n-1!如水仙花数,要列举所有三位数逐一验证。应该写range(100,1000),生成数字列表[100,101,102,……,999]!上题求fib数列的n 项,第一问应该填n+1。
文中只整理了经典问题对标核心考点,想拓展的朋友欢迎留言交流!