暑假班第二期,第5部分,第一次试飞
同学们,75%的时间,我们用于讲python 编程规则,有点像读飞机的操作说明书,而后干了很多苦力,也就是修跑道,
今天,终于可以试飞了。
试飞前,老师还要重复昨天的话,嘱咐嘱咐
1.学会了递归,我们会把内存撑爆了;
2.学会了死循环,我们能让计算机永不停歇;
3.学会了往硬盘上写文件,我们能把硬盘撑爆了;
4.学会了操作os库,能把操作系统都搞坏掉。
(徒弟: 菜刀交给你了,可以耍起来了(切菜),不要伤着自己,记住了。) 不可逆,不可逆,不可逆。
在动手写程序前,我还是想把这两个公式给你讲清楚
-
程序 = 指令+数据
这是针对进入内存中的,等待执行的程序来说的。其实我们知道内存里,只有0和1,之所以,在图上给你写出的是汇编语言代码,因为全是二进制的指令和数据,我们根本一点也看不懂呀!
程序 = 数据结构+算法
这是针对,你用高级语言编写程序时,这里的程序还没有写好,你在草稿纸上,画画思路 ,这时要想的是,用什么数据结构比较好,用什么算法比较好,,是这个意思。
什么是数据结构呢?简单的说,队列中的数据,就有先后顺序,还有规矩,出队必须是队头出,入队必须是队尾进;而栈,必须是先进后出,这些数据之间逻辑上的约束,就是说数据之间存在某种结构。
算法,可以认为是,解决某一问题的指令的有限序列;有限,有序
都很重要。
拿我们出的第一道题,来说:
从1,2,3,4,5 这样一直加下去,请问加到多少,第一次超过10000
sum =1+2+3+4+5+6+7+ ... ... +? >10000
解题思路:
分析,需要两个变量,
第一个是 i ,就是已经加到多少了,比如加到100了,当前 i=100
还需要第二个变量,sum,记录当前的总和,是5050
需要if 判断一下,sum 是否大于10000,不大于的话,
1) i 增大1,变为101 ,
2)加到sum 上去,sum变大了;sum当前值5151
而后再判断;sum 是否大于10000,不大于的话,
1) i 增大1,变为102 ,
2)加到sum 上去,sum变大了;
而后再判断;sum 是否大于10000,不大于的话,
1) i 增大1,变为103,
2)加到sum 上去,sum变大了;
发现规律了,重复,就是循环,不定次循环,就用while 。
这就是编程的数据基础,发现规律。
而这里面,遇到一道题,不崩溃,就是基线思维。
一步一步,用手推算,几步之后就发现规律了,所以,
要想,如果题目是sum大于100,这个小规模的,我能做出来吗?
树立信心。
要用while 想到它有四部分组成
- while 前面的变量初始化,
2、while 条件不满足是退出循环
3、while 体内,代码块
4、while 体内,条件中使用的变量,必须变化,这里是sum
写程序
i = 0
sum = 0
while sum < 10000: #冒号 千万别忘记
i = i + 1 #缩进 千万别忘记
print(i) # 这里为了时刻观察变量的变化
sum = sum + i
print(sum) # 这里为了时刻观察变量的变化
print("跳出循环了")
print(i)
print(sum)
结果是 141 , sum =10011
一开始,没有思路,做的题多了,思路就来了,
走过的路,多了,就认路了,不过如此。