暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

【Python小白】入门第一课之理解框架

学之初 学之时 2021-03-17
688

入门第一课
理解框架



小提示


全文约为2200字

包含文字版本

个人观点

入门第一课课程来源:edX Programming for Everybody—Getting Started with Python, Python Data Structures

Python入门第一课总体学习计划



序言

今天的分享,让我们一起理解上一篇提到的框架,具体有什么运用。


今天分享的重点内容包括:


  • 基本内容提炼
  • Building functions
  • Conditional模式的4大典例
  • For loops
  • 寻找最小值


基本内容提炼

部分内容会在后面进一步解释,放在这里是为了产生印象,有助于后面的理解。


需首要掌握的英文词汇


code代码
function函数
variable变量
build-in functions内置函数
store and resuse 储存和再利用
argument实际参数
parameter形式参数
conditional条件式
repeated重复式
loop循环

iteration迭代


运算优先规则

先计算括号内的运算

图1

加号含义

图2

Type conversions 数据类型转换


int() 整数
float() 浮点数

str() 字符串


图3


variable 变量解释


图4

#

注释符号,自行添加想要注释的内容,方便理解code。


input()
作为输入的存在,字面上来讲就是引入数据,待后面使用。


try/except
二选一


break
出loop,不返回。


continue
从loop跳出来,返回至开头继续执行。


return
停止,同时输出function产生的结果。


def
Building function时需要用到的一个重要指示词。不表示输出,需要「invoke/call/resue」来输出。


if...else
TRUE or FALSE


Store and resuse模式:building functions


Python里,functions有两种,一种是自带的基本functions,被称为「build-in functions」;另一种是自己建立,自己命名的functions,称作「building functions」。(build-in functions会在每次的Python学习分享中陆续提到


Building functions属于四大基本编码模式中的「store and resuse」。


function和variable相似,不同点是function包含code,或者说储存的是code。


Building functions需要用到一个重要指示词def


先举个简单例子

图5


图5的例子中,something()是自己命名的function。冒号后print的内容,就是我所建立的这个function内包含的code。也就是说,我建立的这个function,它的功能,或者说要做的事情是print打出hello和everyone这两个词。


但前面提到了,def不表示输出,所以如果要得到「所创建的这个function」具体带来的输出,就必须要「invoke/call/resue」。那在编程语言中,常说“call the function”就代表invoke的意思,图5例子code结尾的something()就是invoke.


还有一个需要提的重点是,图5的例子def something()括号里的内容是空的,例子很简单,但在实际情况中,这个括号里可以包含了「parameters形式参数」。


什么是parameters?


Parameter是一个variable,帮助访问argument,argument是一个存在于parameter中的值。


Building functions这一块的内容,还涉及到一个重点是「return图6


图6


图6包含了parameters 「a,b」,arguments「3, 5」以及一个「return」。


那么return有什么作用呢?return其实帮助结束一个function执行,同时将function的输出结果返回。以图6为例,如果没有return added这一步,我们无法得到“8”这个输出结果。


有这样的说法,一个新建function要是没有return value,那就是个无效的function,使用return的重要性不言而喻。
Conditional模式  


入门第一课之认识框架分享了conditional模式的四种表现形式,分别有one-way decision, nested-decision, two-way decisions 和multi-way。


现在我们来分别举例说明。


One-way decision:包含if和一系列连续执行,适用于确切情况 (图7)。

图7


Nested-decisionif里包含另一个if,比较所带来的两个结果都会进行,并输出(图8)。


图8


Two-way decisions:if...else语法,比较只争对一个结果。如果if成立(TRUE),就执行if部分的code并输出结果。如果if不成立(FALSE),else成立(TRUE),则执行else部分的code并输出结果。这一点和nested-decision输出所有执行结果不同,正好不同(图9)。

图9


Multi-way:if...elif...else语法,也可添加使用多个elif。和two-way decisions类似(图10)。

图10


因为multi-way相对更复杂,引入了「try/except」语法(图11),来避免coding做无用功。


try/except表示的意思是:


如果try内的code行得通,那么except部分跳过;反之,如果try内的code行不通,跳至except部分开始执行。


图11


Repeated模式


while loops/infinite loops


会用到breakcontinuewhile loops这部分的内容,会在后面融合其它知识一起讲


for loops/definite loops图12


for loops十分强大,但如果简单来说,可以用在以下情况(关于for loops的具体使用例子,也是会融合到后面的学习,再来讲):


  • 找出最大值、最小值
  • 数数count
  • 计算总值sum up
  • 计算平均值average
  • 过滤filter
  • 使用Boolean variable确切值

图12


在这里,举出一个找出最小值的例子(图13),因为我当时学这部分内容的时候,领会到这个最难理解清楚。

图13


图13里的None」(N必须大写被称为flag value,代表空值,没有值,在数据类型中被称为none type,而None是这个数据类型的唯一值。


理解到上面这一点,那么这个coding的部分就容易多了。首先,在coding开始我们给smallest赋值为None,这点可以理解为smallest这个variable里啥也没有,是空的。


if smallest is None」指第一次,我们再来看第一个数值9,这时smallest不再是None而是数值9了,也可以理解为把79放进了smallest这个variable里面,所以不再是None了。从这一刻开始,if smallest is None」这个statement成为了FALSE,转而后面都将运行elif这部分的code(前面讲的multi-way)。


OK,到这里我们就一起学完入门第一课上半部分的内容。上半部分的内容比较杂,比较零碎,没有形成系统性。但通过与下半部分的融合,我想会更加体现知识的关联性,也就加深了印象。



现在,我们来总结一下,都学了哪些知识点呢?


(一)理解编程里我带领大家走进编程世界,从联想思维的角度认识了何为编程以及为什么编程。
(二)认识框架里我介绍了开始编程前,需要掌握的基本building blocks和4种基本编码模式。
(三)理解框架,也就是本次学习分享中,我进一步谈了4中基本编码模式的运用,包括什么情况用和怎么用。


还有一个小提醒就是:在ifelseeliffor等等语法后面,一定不要忘记加「」。


我认为学好编程,靠不断积累,也就是要做到常练习和反复理解,最难却又是成为高手的最重要的一点就是——建立联系和框架思维了。


这大概就是你一直做程序员,还是有一天成为Programmer architect程序员建筑师。毋庸置疑,到建筑师这一个level,大局观肯定是具备的能力,看的比普通程序广博和深入吧。


最后,一起加油!



扫码关注我吧

学之初 学之时
我努力前行,想在停下来的时候,把人生分享给您


文章转载自学之初 学之时,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论