大家好呀~
前三周都讲的是第一章(Chapter 1),从第四周起,速度开始变快,一周一章。内容也开始丰富起来。编程这种边学边实践的课程还是很好玩的,能很快把学到的立即用起来。笔记来啦。
Week 4
Chapter 2 Variables, Expressions and Statements
第二章 变量、表达式与语句
听完课程,也看完了书,觉得有太多专业编程语言看起来好绕口,但其实看着操作,觉得意思特别简单直接。所以我就用自己的方式记下我理解的重点,做成自己的笔记如下。欢迎回复交流。
按照老师的PPT,最后总结的这一章的关键词如下。
我依次解释。
Type(类型)
一般分为三种:integer,string和float。
integer--就是整数数字,e.g. 1, 20, 352, ...
string -- 字符串,即文本, e.g. "hello", "56", ...
float --带小数点的数字,e.g. 2.0, 51.23, ...
python里面的值和它的类型是密切相关的。如果你要做加减乘除各种运算,python会先判断其类型,只会做同类型的值的运算,数字(float, integer)和数字(float, integer),文本(string)和文本(string)。举个例子:
x = "hello"
y = "world"
print x+y
得出的结果就是 hello world。当遇到文本相加时,python自动默认为链接起来。但如果你想让数字和文本相加,python就搞不明白了,会让你更改类型。所以如果想通过hello和123,输出“hello123” ,应该怎么办呢?就是把123这个数字加个引号。
不同类型之间可以互换,多写一行代码就行。当然,上面加“”的方法也算把数字变文本的简单方法。等会儿会在类型转换里详细说到。
Integer Divisions (数字之间的除法运算)
刚刚说了,integer就是整数,那么整数相除,得到的也是整数。python采用的不是我们常用的四舍五入方式得到整数值,而是只取整数,舍去小数点后面的数字。举例如下:
9/2=4.5,在python里得到的结果就是4。
99/100=0.99, 在python里得到的结果就是0。
那怎么才能得到0.99这个正确的结果呢?最简单的方式就是将你的99或者100变成99.0 或者100.0,或者都变也行,这样python就知道结果也应该有小数点了,就会得到0.99。
注意:只要你加了小数点即可,不管后面加了几位数,python都会把小数点后面该有的数字都显示出来。
还有一种方式,复习下刚刚的知识点,float就是有小数点的数字。所以如果我们能把其中一个数字的类型从integer转换成float,那结果就也会有小数点了。具体操作见类型转换。
Resereved Words(自用词?)
上一笔记已经提到,这一次老头子又重新强调了下,还是那些词,给自己的变量取名的时候不要用就行了。再把那些词贴在下面,免得再去翻。
Conversion between types (类型转换)
integer 转 float
x = float(20)
print x
20.0
string 转 integer
x = int("10")
print x
10
注意:不能把真正的文本转化为数字,比如,你不能让python把love转化为一个整数,因为它也不知道爱到底值多少。╮(╯▽╰)╭。
还有两种,从float转integer,以及从integer转string,都是一样的方法。要看该值是什么类型,用type执行就行。
x = type("10")
print x
<type"str">
str就是string的简写,你就知道了,哦,“10”是个文本值。
回到上面运算里的遗留问题,如何将99/100得到输出值为0.99?你们思考下,再看答案:
x = float (99)/100
print x
0.99
注意,写这个笔记的时候我用python测验了下,我原本写的是x = float(99/100), 这时输出的结果会是0.0,而不是0.99, 因为python优先计算括号里的值,而99/100的值是integer 0,然后再转换成float,就只会是0.0, 而不是0.99. 感觉真是意外收获,上课没遇到这个问题,写笔记时居然遇到了,增强记忆和复习,另外,学python等编程语言,随时不懂就去软件里编一段验证,真的是最快的自主学习方式。
**
Variables(变量)
上面一直举例用的x,y就是变量。取名规则主要为以下几点:
必须字母或者下划线_开头
必须是由字母、数字或者下划线_组成
会区分大小写
所以,一个好的名字就是name, name_1, _name。不对的就是#name, 3name, var.12, ...
mnemonics(按意思取名)
仔细的朋友应该注意到variables那个词后面,老师加了个括弧写的mnemonics,这个意思就是说变量的取名规则,最好接近你所拟定的变量意思本身来取名,并且不要用reserved words。 如果一直用xyz,一旦变量变多,你就晕了。所以推荐取名方式是mnemonics,比如时间hours,可以写hrs,等等。
User Input(让用户来输入)
这个挺好玩的,就是教了一个代码叫做 raw_input(),加入这个,你就能让你的用户填入他们自己的信息。举例如下:
name = raw_input ( "What's your name?")
print "Hello", name
当你运行这段代码时,就会自动跳出对话框,问“What's your name?"你的名字是什么? 然后你输入了自己的名字(阿卷) 后,它就会弹出 “Hello 阿卷"。
注意:用户输入的值python默认为文本string,所以如果你想用这个值进行计算,必须添加一段改变其类型的代码,使其从string变为integer或者float。
Operator(运算符号)
这个就是加减乘除那些,表格如下。
代表指数。比如4^2,在python里就写42。
%代表余数。所以5%2的输出结果就是1,因为5除2得2余1,结果是余数1。
Operator precedence(Python的运算规则)
在python里面,它的计算先后顺序遵循的规则如下。
最高级--括弧()
然后是--指数
再然后是乘除和余数
最后是加减
老头子的建议是,尽量多加括弧,这样方便自己和他人。:)
此外,我在网上找了图下更详细的一览表,比本课涵盖的稍微多一点,可以作为了解补充学习。
Comment(标记,评论)
如果你在你的代码前加一个#,那么这行代码或者文本自动变为评论,就不会被运行。
评论一般有以下两个作用:
告诉别人或自己,以下这段代码是干嘛用的,方便查询、修改。
隐藏自己还不想运行的代码,或者打个草稿。
最后写个课程中的作业,大家可以自己想想怎么做,最好在python里玩玩,运行一下哦。
Q:让用户输入工作时间(hrs)和每小时的工资(rate),输出总工钱(pay),要求小时必须是35,工资必须是2.75。
当然,以大家的数学技能,当然知道总工钱应该是35*2.75=96.25。所以正确的输出就是96.25。
注意点:怎么让用户来输入数据?怎么使结果输出为有小数点的数字?
从头到尾梳理一遍,没想到居然有这么多,能看到这里,你也是很棒啊。已经完成第四周的课后测试,还看了课后的采访视频,觉得里面有些观点很棒,想作为小彩蛋分享给大家。
这次采访视频采访的是Piazza的创办人Pooja Sankar,Piazza是一个帮助高校教授更好地与学生线上提问交流的平台。创办人Pooja Sankar来自印度,在斯坦福读MBA时创办的这个平台,她创建这个平台是因为她希望通过这个平台,让不管再害羞的学生都能和老师、同学交流问题,并且得到快速的回复,而Piazza也做到了这一点。
我对这个采访视频最感兴趣的一点是,Pooja对于创业过程的分享。她说,她倾向于慢而不是快,作为创业者,应该优先考虑的是你所创造的价值,而不是你所收获的用户那个数字。她分享道,在她刚建立这个平台不到一年的时候,便有杂志想报道她的经历,然而她考虑的是,这会给她还不成熟的Piazza带来巨大的用户量,却没法更好的服务那类人,她希望慢慢来,先将价值带给最先使用的人群,这样她可以对产品进行调整,并让时间来筛选目标用户。
这让我想到现在很多创业不是这样,大笔的投资收获用户,却没有认真思考能给其用户带来什么核心价值,一味地低价竞争收揽客户,却忽略了产品本身的价值构造,只顾着用用户量这个“虚无”的数字来圈投资人的钱。实在是很危险的行为。