美文网首页
2019-08-20

2019-08-20

作者: 木马音响积木 | 来源:发表于2019-08-23 11:15 被阅读0次

暑假第二期,第7部分,编程三问题

编程,三问.png

思维导图,帮我们迅速看到骨架,并提示出关键路径,
一个小秘密告诉你,某些公安局都开始用思维导图啦。

以下这些文字,是为了让你了解编程三问,这个思维导图。

一、程序是如何被计算机执行的?

1,需要知道2进制,需要知道信息是如何用1 和 0 表示的
2,需要UTF -8 编码,有了这大约14万个编码,对应编码不同的字,转换为不同的一长串010101010110011100110 , 上下7000年,人类的文字,都可以装入计算机。
3,要了解冯诺依曼架构,计算机不过是输入,处理,输出了,和我们那台压面机,一样的;
4,了解硬件和软件的区别,硬件看得见摸得着,软件是010101010 ,可能是长长的一大串,这里面,有些表示指令,有些表示数据,仅此而已。
5,所有的程序,结构都是一样的,只有三种,顺序,分支,循环;而分支和循环,在底层是通过跳转实现的,跳转,向前跳,还是向后跳。

二、如何编写程序?

1,了解机器语言,汇编语言 和高级语言的区别,高级语言更适合我们
2,高级语言会变成机器语言去执行,要靠编译器和解释器,当然还有操作系统的帮助;
3,选用哪种高级语言?500多种,我们选python,入门简单,功能强大,进化速度快,人工智能强;
4,用python ,和用英语一样,需要了解一些语法规则,规定真不多;
5,懂了规矩,终于可以写代码了,这个代码也叫做源码,随便找个工具,就开始写么?当然不是,给你个筷子,给我切个土豆丝,难;好在,一堆公司给我们提供好工具,但目前,我们暂时认为 Jupyter Lab 这个软件最好,暂时,暂时,且这是个人观点。
其实,你也可以不安装,直接 搜索,在线 jupyter ,打开网站直接写代码。好的工具,是成功的一半。如果给你个机器猫,作业还头痛么?

三、面对题目时,没有思路,如何写代码?

想象我们现在就是在爬山,遇到一个小水坑,我们不想把鞋弄湿,我们就捡起几个石头或者沙土,填满它;遇到陡峭的地方,就从背包里拿出绳索,先上去的同学拉我们一把。
这里的背包,就是老师,让你们背下来的6种数据类型。把它们装入脑袋里,就相当于你的背包里有了6个工具。
我们下面通过拆解几道题,来看看如何使用它们
1、计算44个同学的平均分
分析,
a ,同学们的成绩有考一样的,比如98 ,所以,不要用集合
b ,这些都是数字,不是字符串
c ,在计算的过程中,最好不要修改了数字,用元组比较好
设置变量 tongxue44=(98,97,98,........)
leijiahe= sum(tongxue44)
pingjun=leijiahe/44.0 ,可能的平均分是82.3
-----想想可以用什么,不要用什么,就可以了
2、找出从2到100之间的素数,并把它们放到一个变量里
分析,
找到一个,放进变量里,找到一个放进变量里;
是不是很推着购物车,在超市里,看见一个商品,放进去,再继续,购物车的东西数量,不断变化。
是不是应该用列表? list.append() 没忘记吧。

3、约瑟夫下船问题,
分析,
这里的动脑比较多,如果船长一次一次来回从队伍的头部走到尾部,很麻烦;换做船长不动,让队头的人,走到队尾,数到9时,站在队头的人,就去一个list 里面站着,是不是就简单了?
而这就是队列这个数据结构,而队头的一个人,走到队尾,竟然有专门的函数,rotate (-1),如此简单。

好了,时刻记住,数据结构就像一个一个箱子,也叫容器,

做题需要处理的数据,我们打个比方:
你给我牛奶,我们找个有刻度的,有盖的;
你给我一条鱼,我用竹篓,
不过如此,当然,这里的数据结构,是广义的,包含字符串,数字,元组,列表,字典,集合,还包括,队列,栈,链表等。

now,开始做题啦。
1,先读题,一定要读懂了题目,再开始
我说,“去山上抓个老虎仔,玩玩”,结果你听成了,去抓个老虎玩玩,你认为我疯了;可是你读题,丢三落四,不也像疯了。

2、分析问题,
实在不会,也不急
草纸上
a 写,基线,,想如果数据规模变小,我会不会?这一步对树立信心很重要。千鸡千钱不会,百鸡百钱会不?还不会,鸡兔同笼会不会?
b 写 字符串,数字,元组,列表,字典,集合,还包括,队列,栈,链表。看看,自己的背包,这些数据结构,一个一个过。
c 数据间,是否有关系,有序,就用元组或者列表,无序,可能使用字典和集合。
而后,开始想程序的三个结构,顺序,分支,循环。
if elif else ,for ,while 。
看看用哪个结构。

   还是不会写,想一想,有没有见过类似的题,有写出代码的大框;如果,没有,写如下代码
#输入部分,定义用到的变量,初始化,赋值
# 说明每个变量的意思
cc=2
dd=3

#具体处理部分
def doit(a,b):
    s=a+b
    return s

x=doit(cc,dd) #调用函数,x=5

#输出部分
print(x)

至于选择什么数据结构和算法,还需要进一步学习。
学会了,无非是往你的背包里,再加了几个好用的工具。
喝下吧,还有三杯,...

分享一个秘密,三分钟能学会的东西,带来的满足感一定不会太高。

相关文章

网友评论

      本文标题:2019-08-20

      本文链接:https://www.haomeiwen.com/subject/pcxpsctx.html