2016年11月21日 21:58:29
初衷:最近发现自己学习的东西总是不能及时的回顾,学习的效率非常低,于是现在就想把所学的做个记录,以增强记忆与理解,虽然这样做效率低了非常多,但是总归能够增强一点成就感。所以我还是决定要坚持把这件事做下去。
对Python类的思考:
python的类让我很头疼,显然不是因为它表述的极其精简的语法。我一度不知道怎样去与它相处,即使现在它仍然对我若即若离,这让我很苦恼,我担心是不是又要止步不前,信心倍受打击。但是放弃我不想再放弃,我已经放弃了太多。不想再这样”与世无争“,我得去争取了。现在我能做的只有坚持和不断的看书与实践(这似乎是废话)。
廖雪峰老师的网站内容还是非常全面简洁的,但是仍然不能解决我的困惑,我在想如果我不去寻找答案,会不会有一天我能自己领悟(这当然是我在做梦)。我查看了类(CLASS)在许多书中的定义,其定义形式比较统一:
class name():
方法一:
anything
方法二:
anything
这个倒是很简单,感觉记住就好啦,但是在实例化的时候,我被一些概念弄混淆了,甚至到了烦的地步,这也成了一大障碍。
其中最让我困惑的是实例和对象的区别,我纠结了很长时间,最后百度了一下,一小哥说实例就是对象,还有一个小哥认为实例再进一步就是对象。我在想为什么这些东西让我这么纠结,是只可意会,不可言传吗?真是烦人。要是有段代码加个注释不就好啦。不过不好找。。。。。。。。。。。。。。。。。。。。。。
姑且做个梳理:
self.name :其中name是对象的变量。在类的定义中可以借self关键词来定义。
只能使用self变量来参考同一个对象的变量和方法。这被称为 属性参考 。
继承:
面向对象的编程带来的主要好处之一是代码的重用
继承完全可以理解成类之间的 类型和子类型 关系
为什么要用继承:
假设你想要写一个程序来记录学校之中的教师和学生情况。他们有一些共同属性,比如姓名、
年龄和地址。他们也有专有的属性,比如教师的薪水、课程和假期,学生的成绩和学费。
你可以为教师和学生建立两个独立的类来处理它们,但是这样做的话,如果要增加一个新的共
有属性,就意味着要在这两个独立的类中都增加这个属性。这很快就会显得不实用。
不好意思
2016年11月21日 21:49:46
今天了解到python的列表生成器,这让我非常的振奋,因为这样我省去了好多的循环,我感觉这种表示是如此的和谐,以至于我不需要有意识的去记忆它的语法。
如此简单而不平凡。
如果我要得到100以内的偶数序列,那真的轻松,不是吗?
[x for x in range(1,101) if x%2==0]
只要这一行就能表达其它高级语言复杂的循环,复杂的判断。突然觉得编码真的是一项有光明钱景而又充满乐趣的事业。
也许我应该多写几个例子:
字符串似乎是相当的另类,但是python竟然能够将它与整型一样进行列表的生成,这不得不让我惊呼(或许这只是因为我只有狭隘的C的基础,其它语言可能同样有这样的优势吧,但我只是一只小小鸟,我就这么认为啦。)
[c + b for c in 'abc' for b in 'def']
这会发生什么???????
天知道,这么复杂的语句想要干什么
['ad', 'ae', 'af', 'bd', 'be', 'bf', 'cd', 'ce', 'cf']
以上就是结果,怎么可以达到如此的复杂而简单呢??
(我知道这东西能够干嘛呢????不知道啊,汗!!!!!)
那么哪些才是能够这么干的呢?
tips:也许你想要拿到当前目录下所有文件的文件名。
试试这个吧!
import os
[d for d in os.listdir('.')]
感觉相当的不错呢,竟然拿到啦。是不是很开森(俺家老婆总是这么说,俺也学上啦。)
学完列表生成器后,感觉整个人生都明朗起来啦。但是似乎高兴的太早啦。完全是井底可爱的小青蛙呀。在数字信号处理的应用中似乎million级别的运算量并不是很大哟。可以说是非常的常见噢,总是整个100,0000个元素的列表在那,计算机的硬盘能没有什么想法嘛,总是占100,0000个坑,偶尔拉那个什么几下,这叫什么事情嘛。
高手来啦。”生成器(generator)“(到底是“列表生成器”的儿子还是爹呢,你猜看看??嘻嘻)
感觉高大上有木有。这是人类迈出的一大步呀。到底怎么实现呢?看招:
[]—() K.O 结束啦。什么?没有看懂,就是把普通列表的中括号变成小括号啦。是不是感觉变耍啦?咯咯。。。。。。。。。
实战下吧:
g=(x*x for x in range(10))
/*>>>g 回车过后竟然是这个东西,这是什么呀!无语啦,还让人学习不?
<generator object <genexpr> at 0x01FCA600>
我是不知道这是啥,估计是什么起始地址之类的吧。这并不重要generator只是记住算法,然后通过next()函数去计算啦。、
好像手动输入100,0000次next(g)次数也”不多“,不过还是学习用for 循环吧,这才是方法,哈哈哈哈。你要知道你要挣的钱不止
100,0000。 和next(g) say goodbye吧。
tips:计算一个斐波拉契数列吧:
def fib(max):
n,a,b=0,0,1
while n<max:
print(b)
a,b=b,a+b
n=n+1
return ending
就说酷还是不酷。
2016年11月27日
好几天没有学习新的东西了,感觉整人都废啦,因为一个小小的感冒。这不得不让我重视一下我的身体。从来都没有真正的去坚持一件事情,这是我来到这个世界24年来心里最大的缺憾。
昨天晚上还是看了一些廖雪峰老师的python教程。尤其是关于正则表达式。这部分内容现在想想并没有什么难以理解的地方,只是需要记忆罢了。那么在学习新知识的时候有必要去纠结语言本身的一些的过于细化的部分吗????????
让我百度一下。。。。。。。。。。