相信大多人在学习Python之前 肯定都自己了解过这门语言,也知道Python有很多的学习方向,比如说数据采集方向(爬虫),或者Web开发方向,也可能是最近特别火热的人工智能方向。每个方向所需要的技术都是不尽相同的,所以在我们学习完成Python的基础语法之后,一定要慎重选择自己之后的进阶方向。
就像学习其他编程语言或者是学习一门外语一样 ,我们应该从Python的基础语法开始学习 ,了解什么是Python的变量 什么是循环 什么是函数,什么是模块。类等等。总之,基础是学习以后高级开发的基石。
学习完基础之后,我们肯定要进行一些简单的联系。文件的操作是我们不二的选择,因为无论是文本文件。XML格式的文件还是Office办公系列的文件。我们统称之为文件操作。
我们在学习文件操作的时候,要学习文件的写入和读取 以及了解各种文件之间的读写不同知识点。相信在学习完成之后,对于文件的操作 大家一定会得心应手。
选择操作系统
学习任何一门语言,选择操作系统,搭建开发环境是必不可少的。学习Python,这里推荐Linux系统,在Linux平台一般都是配置好Python开发平台,安装好系统就可以写程序。如果你选择windows,就要自己下载并配置好Python开发环境。【开发环境的选择】
选择一门重视大脑学习的书籍,在这里推荐《Head First Python》,这是我看过最注重大脑学习的书籍,对于新手入门极有好处。【书籍】
仔细阅读有关Python的书籍,好记心不如烂不同,一定要做笔记,过后回顾笔记。书上给出的练习,一定要做,并且争取全部弄懂。书上有的练习代码,一定要自己调试一遍,知其所以然。【看书练习】
每天的编码必不可少,既然选择学习编程,学习Python,坚持编码应该是必须做到的。没有代码积累,要写出高质量的代码,几乎不可能。【坚持编码】
在写过不少基础代码之后,可以去各大Python相关的网站阅读别人的代码,多阅读别人的也是提高自己的编码水平的很好途径,同时,有把自己的代码分享给别人阅读,一边互相交流促进。【阅读代码分享代码】
明确学习目标
最重要的是明白学python的目的是什么,是数据挖掘还是想刷个火车票啥的,是机器学习还是搞个小脚本装下,是想成为厉害的harker还是强大的web开发者。只有明白了目的,才有学下去的动力。
环境搭建。下载并安装好python及IDE,你需要明白什么是IDE,什么是命令行等,并配置好路径及环境变量。在这里推荐大家找下免费的pycharm,风格比较舒服,但是会比较慢。
基础练习。没有编程基础的可以先过一下基础,可以找本书练,也可以在网上寻找视频练习。现在网络这么发达,应该加强在网上找答案的能力。
根据自己的目标去深耕。知识的学习都是由浅入深的,先掌握基础,再根据自己的目标去练习,才会有效果。不要三心二意,今天学十分钟爬虫,明天学5钟机器学习什么的。
不断练习,不断练习。量变到质变的过程。只有在敲代码的过程中才会遇到自己的问题,解决了就提升了。
__str__()方法
如果要把一个类的实例变成 str,就需要实现特殊方法__str__()。
Python 定义了__str__()和__repr__()两种方法,__str__()用于显示给用户,而__repr__()用于显示给开发人员。一般定义__repr__()的快捷办法是直接:
__repr__ = __str__
那么怎么定义__str__()呢?
Class Person(Object):
def __init__(self,name,gender):
self.name = name
self.gender = gender
def __str__(self):
return '(Person: %s, %s)' % (self.name, self.gender)
__repr__ = __str__
__cmp__()方法:
对 int、str 等内置数据类型排序时,Python的 sorted() 按照默认的比较函数 cmp 排序,但是,如果对一组 Student 类的实例排序时,就必须提供我们自己的特殊方法 __cmp__()。__cmp__用实例自身self和传入的实例进行比较,如果实例自身self 应该排在前面,就返回 -1,如果传入的实例应该排在前面,就返回1,如果两者相当,返回 0。
举例:
Class Student(Object):
def __init__(self,name,gender,score):
self.name = name
self.gender = gender
def __str__(self):
return '(Student: %s, %s, %s)' % (self.name, self.gender, self.score)
__repr__ = __str__
def __cmp__(self, s):
if self.name < s.name:
return -1
elif self.name > s.name:
return 1
else:
return 0
L = [Student('Tim', 99), Student('Bob', 88), Student('Alice', 77)]
print sorted(L)
注意:上面粗体部分也可以直接使用简写方式:
return cmp(self.name, s.name)
__len__()方法:
如果一个类表现得像一个list,要获取有多少个元素,就得用 len() 函数。
def __len__(self):
return len(self.names)