大牛级别程序员带小白轻松入门Python

Python作为人工智能首选编程语言,也是最近大家知道比较火的编程语言,Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是很容易的。下面有大牛级别程序员带小白入门Python,花7天整理最全面向对象教程!供参考学习!

面向对象三大特性:

多态: 可对不同类的对象使用同样的操作。

封装:对外部世界隐藏对象的工作细节。

继承:以普通的类为基础建立专门的类对象。

多态

面向对象程序设计最有趣的特性是多太,它是是让大多数人犯晕的特性。所以,先来介绍这个。

多态意思是“有多种形式”。多态意味着就算不知道变量所引用的对象类是什么,还是能对它进行操作,而它也会根据对象(或类)类型的不同而表现出不同的行为。

从最简单的开始

任何不知道对象到底是什么类型,但是又要对对象“做点什么”的时候,都会用到多态。这不仅限于方法----很多内建运算符和函数都有多态的性质,考虑下面这个例子:

封装

封装是对全局作用域中其它区域隐藏多余信息的原则。

封装听起来有些像多态,因为他们都是 抽象的原则---他们都会帮助处理程序组件而不用过多关心多余细节,就像函数做的一样。

但是封装并不等同于多态。多态的可以让用户对于不知道是什么类(或对象类型)的对象进行方法调用,而封装是可以不用关心对象是如何构建的而直接进行使用。

创建一个有对象(通过像调用函数一样调用类)后,将变量c绑定到该对象上。可以使用setName 和 getName 方法(假设已经有)

继承

我们不想把同一段代码写好几,之前使用的函数避免了这种情况。但现在又有个更微妙的问题。如果已经有了一个类,又想建立一个非常类似的类,只是添加几个方法。

比如有动物类,我们又想在动物类的基础上建立鸟类、鱼类,哺乳动物类。

类和对象是面向对象编程的两个主要方面。类创建一个新类型,而对象是这个类的实例。这类似于你有一个int类型的变量,这存储整数的变量是int类的实例(对象)。

类和对象变量

我们已经讨论了类与对象的功能部分,现在我们来看一下它的数据部分。事实上,它们只是与类和对象的名称空间绑定的普通变量,即这些名称只在这些类与对象的前提下有效。

有两种类型的域——类的变量和对象的变量,它们根据是类还是对象拥有这个变量而区分。

类的变量由一个类的所有对象(实例)共享使用。只有一个类变量的拷贝,所以当某个对象对类的变量做了改动的时候,这个改动会反映到所有其他的实例上。

对象的变量由类的每个对象/实例拥有。因此每个对象有自己对这个域的一份拷贝,即它们不是共享的,在同一个类的不同实例中,虽然对象的变量有相同的名称,但是是互不相关的。通过一个例子会使这个易于理解。

如何工作:

这是一个很长的例子,但有助于说明类和对象变量的本质。这儿,population属于Robot类,因此是一个类变量。name变量属于对象(用self给其赋值),因此是一个对象变量。

因此,我们使用Robot.population来引用population类变量,而不是用self.population来引用。我们在该对象的方法中用self.name来引用对象变量name。记住类和对象变量之间这个简单的差别。也要注意一个与类变量有相同名字的对象变量会隐藏类变量!

IT相关编程越来越在互联网中占据重要的位置,而在其中又属AI正当热门时刻。如果你想要在这个行业发展,那么就先从Python编程语言的学习开始!Python是一门通用的编程语言,在过去十年中被数据科学领域广泛使用。目前Python在编程语言超过java语言,编程语言排行排名第一,成为全球最受欢迎的编程语言!

下面分享给python小白入门教程及学习路线那么让我们现在从Python安装开始吧。

配置数据科学所需的Python环境

无论你使用的电脑是Mac还是Windows,我都建议你下载一个免费的能够让你轻松访问尽可能多的有用模块的Python发行版本。

我试用了一些Python的发行版本,在这里,我推荐大家使用Continuum Analytics提供的Anaconda。这个Python发行版本包含200多个工具库。要理解Python中包、模块和库的差异,请查阅这篇文章。

在你下载Anaconda的时候,你需要选择下载Python 2版本还是Python 3版本。我强烈建议你使用Python 2.17.12版本。截止到2016年底,绝大多数的非计算机科学的Python用户都使用了这个Python版本。它能够出色地完成数据科学任务,比Python 3更容易学习,而且像GitHub这样的网站中有数百万的Python脚本和代码片段,可供大家参考,生活会变得更加容易。

Anaconda也附带了Ipython编程环境,建议大家使用。安装Anaconda后,只需要导航到Jupyter笔记本并开启程序,就可以在Web浏览器中打开IPython。Jupyter笔记本的程序会自动启动Web浏览器中的应用程序。

你可以参考这篇文章了解如何在Ipython笔记本中更改路径。

基础知识学习

在你深入了解Python的数据科学库之前,你首先需要学习一些Python的基础知识。Python是一门面向对象的编程语言。在Python中,对象既可以赋值给一个变量,也可以作为参数传递给一个函数。以下都是Python中的对象:数字、字符串、列表、元组、集合、字典、函数以及类。

Python中的函数与普通数学中的函数基本上是一致的——它接收输入数据,对数据进行处理并输出结果。输出的结果完全取决于函数是如何被设计的。另一方面,Python中的类是被设计为输出其他对象的对象的原型。

如果你的目标是编写快速、可复用、易于修改的Python代码,那么你必须使用函数和类。使用函数和类有助于保证代码的高效与整洁。

现在,让我们看看Python中有哪些可用的数据科学工具库。

科学计算:Numpy与Scipy

Numpy是一个主要用于处理n维数组对象的Python工具包,而Scipy则提供了许多数学算法与复杂函数的实现,可用来扩展Numpy库的功能。Scipy库为Python添加了一些专门的科学函数,以应对数据科学中的一些特定任务。

为了在Python中使用Numpy(或其他任何Python库),你必须首先导入对应的工具库。

np.array(scores) 将一个列表转换成一个数组。

当你使用普通的Python程序时——未使用任何外部扩展(例如工具库)的Python程序——你只能受限地使用一维列表来存储数据。但是,如果你使用Numpy库来扩展Python,你可以直接使用n维数组。(如果你想知道的话,n维数组是包含一个或多个维度的数组。)

下面小编给大家分享一个问卷星刷票项目实例,下面是项目代码实现:

#python3

# -*- coding: utf-8 -*-

#code like shit,just testing and personal use

__author__ = 'Taerg'

import requests

header = {

'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:37.0) Gecko/20100101 Firefox/37.0',

'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',

'Accept-Language': 'zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3,',

'Accept-Encoding': 'gzip, deflate',

'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',

'Content-Length': '149',

'Cookie': '.ASPXANONYMOUS=Lyje67TM0AEkAAAAZmUxZjg2ZDktMGQxMy00N2FkLTk5MTktMTgzZTczMzI1MmQ4vetgQ0kJRBRF_ryF5iUJakL6RC01; ASP.NET_SessionId=ezddzrjpltnx1via0l2gdjz4; CNZZDATA4478442=cnzz_eid%3D601949447-1432471183-%26ntime%3D1432471183; LastActivityJoin=5083814,204649401; bdshare_firstime=1432473304766',

'X-Forwarded-For': '8.8.8.8',

'Connection': 'keep-alive',

'Pragma': 'no-cache',

'Cache-Control': 'no-cache'

}

header2 = {

'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:37.0) Gecko/20100101 Firefox/37.0',

'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',

'Accept-Language': 'zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3',

'Accept-Encoding': 'gzip, deflate',

'Cookie': '.ASPXANONYMOUS=Lyje67TM0AEkAAAAZmUxZjg2ZDktMGQxMy00N2FkLTk5MTktMTgzZTczMzI1MmQ4vetgQ0kJRBRF_ryF5iUJakL6RC01; ASP.NET_SessionId=ezddzrjpltnx1via0l2gdjz4; CNZZDATA4478442=cnzz_eid%3D601949447-1432471183-%26ntime%3D1432471183; LastActivityJoin=5083814,204649401; bdshare_firstime=1432473304766',

'X-Forwarded-For': '8.8.8.8',

'Connection': 'keep-alive'

}

thedata = {'submitdata': '1$1}2$3}3$1}4$2}5$4}6$4}7$1|2|3|4}8$3}9$3}10$1|3|4|6}11$3}12$3}13$3}14$4'}

for no in range(1,1000):

url = 'http://www.sojump.com/handler/processjq.ashx?submittype=1&curID=5083814&t=1432473130531&starttime=2015/5/24 21:11:01&rn=138341469'

r2 = requests.get(url2, headers = header2)

r = requests.post(url, headers = header,data = thedata)

print(r.text)

print(r2.text)

其实python精简了很多不必要的分号和括号,非常容易阅读理解。编程简单直接,更适合初学编程者,让其专注于编程逻辑,而不是困惑于晦涩的语法细节上,比起JAVA、C#和C/C++这些编程语言相对容易很多。即使是非计算机专业或者没有基础的小白,也快速入门。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180303A19RHC00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励