神级程序员大佬分享给python小白入门教程及学习路线,涨知识啦!
IT相关编程越来越在互联网中占据重要的位置,而在其中又属AI正当热门时刻。如果你想要在这个行业发展,那么就先从Python编程语言的学习开始!Python是一门通用的编程语言,在过去十年中被数据科学领域广泛使用。目前Python在编程语言超过java语言,编程语言排行排名第一,成为全球最受欢迎的编程语言!
本篇文章的主要目的在于向大家展示使用Python学习数据科学有多么的容易。你可能以为自己要先成为一名高级Python程序员,然后才能进行通常与数据科学相关的复杂任务,然而事实并非如此。Python附带了很多有用的工具库,它们可以在后台为你提供强大的支持。你甚至不需要知道程序在运行什么,你不必关心这些。唯一你真正需要知道的是,你需要执行一些特定的任务,而Python使这些任务变得相当简单。
下面分享给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 = {
'Host': 'www.sojump.com',
'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',
'Referer': 'http://www.sojump.com/jq/5083814.aspx',
'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 = {
'Host': 'www.sojump.com',
'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',
'Referer': 'http://www.sojump.com/jq/5083814.aspx',
'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/jq/5083814.aspx/handler/processjq.ashx?submittype=1&curID=5083814&t=1432473130531&starttime=2015/5/24 21:11:01&rn=138341469'
url = 'http://www.sojump.com/handler/processjq.ashx?submittype=1&curID=5083814&t=1432473130531&starttime=2015/5/24 21:11:01&rn=138341469'
url2 = 'http://www.sojump.com/jq/5083814.aspx/wjx/join/complete.aspx?q=5083814&JoinID=204649401&s=&ge=1'
#url2 = 'http://www.sojump.com/handler/processjq.ashx?/wjx/join/complete.aspx?q=5083814&JoinID=204649401&s=&ge=1'
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++这些编程语言相对容易很多。即使是非计算机专业或者没有基础的小白,也快速入门。
好了,今天就分享到这里,如果大家在遇到学习python不懂的地方,欢迎跟小编交流和学习!祝大家早日成为python大牛!