当前位置:网站首页 > 小编推荐 > 正文

最易懂的Python新手教程:从根底语法到代码详解

admin 0

导读:本文安身基础,解说Python和PyCharm的装置,及Python最简略的语法基础和爬虫技能中所需的Python语法。

作者:罗攀 蒋仟

如需转载请联络篇章科技

本文触及的首要常识点如下:

  • Python和PyCharm的装置:学会Python和PyCharm的装置办法
  • 变量和字符串:学会运用变量和字符串的根本用法
  • 函数与操控句子:学会Python循环、判别句子、循环句子和函数的运用
  • Python数据结构:了解和运用列表、字典、元组和调集
  • Python文件操作:学习运用Python树立文件并写入数据
  • Python面向目标:了解Python中类的界说和运用办法

01 Python与PyCharm装置

“工欲善其事,必先利其器”,本节介绍Python环境的装置和Python的集成开发环境(IDE)PyCharm的装置。

1. Python装置(Windows、Mac和Linux)

当时干流的Python版别为2.x和3.x。因为Python 2第三方库更多(许多库没有向Python 3搬运),企业遍及运用Python 2。假如作为学习和研讨的话,主张运用Python 3,因为它是未来的发展方向。所以本教程挑选Python 3的环境。

1.1 Windows中装置Python 3

在Windows体系中装置Python 3,请参照下面的进程进行。

  1. 翻开浏览器,拜访Python官网(https://www.python.org/)。
  2. 光标移动至Downloads链接,单击Windows链接。
  3. 依据自己的Windows版别(32位或64位),下载相应的Python 3.5版别,如为Windows 32位体系,应下载Windows x86 executable i闺情李端nstaller,假如为Windows 64位体系,应下载Windows x86-64 executable installer。
  4. 单击运转文件,勾选Add Python 3.5 to PATH,然后单击Install Now按钮即可完结装置。

在核算机中翻开指令提示符(cmd)窗口,输入python,如图1.1所示,阐明Python环境装置成功。

▲图1.1 运转Python环境

当界面呈现提示符>>>时,就标明进入了Python交互式环境,输入代码后按Enter键即可运转Python代码,经过输入exit()并按Enter键,就能够退出Python交互式环境。

留意:假如呈现过错,或许是因为装置时未勾选Add Python3.5 to PATH选项,此刻卸载Python后重新安耍牛氓串串香装时勾选Add Python3.5 to PATH选项即可。

1.2 Mac中装置Python3

Mac体系中自带了Python 2.7,需到Python官网上下载并装置Python 3.5。Mac体系中的装置比Windows更为简略,一向单击“下一步”按钮即可完结。装置完后,翻开终端并输入python3,即可进入Mac的Python 3的交互式环境。

1.3 Linux中装置Python 3

大部分Linux体系内置了Python 2和Python 3,经过在终端输入python –version,能够检查当时Python 3的版别。假如需求安悚然候选者装某个特定版别的Python,能够在终端中输入:

sudo apt-get install python3.5

2. PyCharm装置

装置好Pyt地球的位面私运商人hon环境后,还需求装置一个集成开发环境(IDE),IDE集成了代码编写功用、剖析功用、编译功用和调试功用。在这儿向读者引荐一个最智能、好用的Python IDE,叫做PyCharm。进入PyCharm的官网,下载社区版即可:

http://www.69xxjetbrains.com/pycharm/

因为PyCharm上手极为简略,因而就不具体解说PyCharm的贺卫方最新状况运用办法了。以下解说怎样运用PyCharm相关Python解说器,让PyCharm能够运转Python代码。

  1. 翻开PyCharm,在菜单栏中挑选File ∣ Defalut Settings指令。
  2. 在弹出的对话框中挑选Project Interpreter,然后在右边挑选Python环境,这儿挑选Python 3.5,单击OK按钮,即可相关Python解说器药香如蝶,如图1.2所示。

▲图1.2 相关Python解说器

02 变量和字符串

本节首要介绍Python变量的概念、字符串的根本运用办法、字符串的切片和索引,以及字符串的几种常用办法。

1. 变量

Python中的变量很好了解,例如:

a = 1

这种操作称为赋值,意思为将数值1赋给了变量a。

留意:Python中句子完毕不需求以分号完毕,变量不需求提早界说。

现在有变量a和变量b,能够经过下面代码进行变量a、b值的对换。

a = 4
b = 5
t = a #把a值赋给t变量
a = b #把b值赋给a变量
b = t #把t值赋给b变量
print(a,b最易懂的Python新手教程:从基础语法到代码详解)
# result 5 4

这种办法相似于将两个杯子中的饮料对换,只需求多加一个杯子,即可完结饮料的对换作业。

2. 字符串的“加法”和“乘法”

因为Python爬虫的目标大部分为文本,所以字符串的用法尤为重要。在Python中,字符串由双引号或单引号和引号中的字符组成。首要,经过下面代码看看字符串的“加法”:

a = 'I'
b = ' love'
c = ' Python'
print(a + b + c) #字符串相加
# result I love Python

在爬虫代码中,会常常结构URL,例如,在爬取一个网页链接时,只要一部分/u/9104ebf5e177,这部分链接是无法拜访的,还需求http://www.jianshu.com,这时能够经过字符串的“加法”进行兼并。

留意:此网站为笔者的简书主页。

Python的字符串不只能够相加,也能够乘以一个数字:

a = 'word'
print(a*3) #字符串乘法
#result wordwordword

字符串乘以一个数字,意思便是将字符串仿制兼职按摩这个数字的份数。

3. 字符串的切片和索引

字符串的切片和索引便是经过string[x],获取字符串的一部分信息:

a = 'I love python'
print(a[0]) #取字符串第一个元素
#result I
print(a[0:5]) #取字符串第一个到第五个元素
#result I lov
print(a[-1]) #取字符串最终一个元素
#result n

经过图1.3就能清楚地了解字符串的切片和索引。

▲图1.3 字符串切片和索引

留意:a[0:5]中的第5个是不会挑选的。

在爬虫实战中,常常会经过字符串的切片和索引,提取需求的部分,除掉一些不需求的部分。

4. 字符串办法

Python作为面向目标的言语,每个目标都有相应的办法,字符串也相同,具有多种办法,在这儿介绍爬虫技能中常用的几种办法。

4.1 split()办法

a = 'www.baidu.com'
print(a.split('.'))
# result ['www', 'baidu', 'com']

字符串的split()办法便是经过给定的分隔符(在这儿为‘.’),将一个字符串分割为一个列表(后边将具体解说列表)。

留意:假如没有供给任何分隔符,程序会把一切的空格作为分隔符(空格、制表、换行等)。

4.2 repalce()办法

a = 'There is apples'
b = a.replace('is','最易懂的Python新手教程:从基础语法到代码详解are')
print(b)
# result There are apples

这种办法相似文本中的“查找和替换”功用。

4.3 strip()办法

a = ' python is cool '
print(a.strip())
# result python is cool

strip()办法回来去除两边(不包含内部)空格的字符串,也能够指定需求去除的字符,将它们列为参数中即可。

a = '***python *is *good***'
print(a.strip('*!'))
# result python *is *good

这个办法只能去除两边的字符,在爬虫得到的文本中,文本两边常会有剩余的空格,只需运用字符串的strip()办法即可去除剩余的空格部分。

4.4 format()办法

最终,再解说下好用的字符串格局化符,首要看以下代码:

a = '{} is my love'.format('Python')
print(a)
# result Python is my love

字符串格局化符就像是做挑选题,留了空给做题者挑选。在爬虫进程中,有些网页链接的部分参数是可变的,这时运用字符串格局化符能够削减代码的运用量。

例如,Pexels素材网(https://www.pexels.com/),当查找图片时,网页链接也会发生变化,如在查找栏中输入book,网页跳转为https://www.pexels.com/search/book/,能够规划如下代码,笔者只需输入查找内容,便可回来网页链接。

content = input('请输入查找内容:')
url_path = 'https://www.pexels.com/search/{}/'.format(content)
print(url_path)

运转程序并输入book,便可回来网页链接,单击网页链接便可拜访网页了,如图1.4所示。

▲图1.4 字符串格局化符演示

03 函数与操控句子

本节首要介绍Python()函数的界说与运用办法,介绍Python的判别和循环两种爬虫技能中常用的操控句子。

1. 函数

“脏活累活交给函数来做”,首要,看看Python中界说函数的办法。

def 函数名(参数1,参数2...):
return '成果'

制造一个输入直角边就能核算出直角三角形的面积函数:

def function(a,b):
return '1/2*a*b'
#也能够这样写
def function(a,b):
print( 1/2*a*b)

留意:读者不需求太纠结二者的差异,用return是回来一个值,而第二个是调用函数履行打印功用。

经过输入function(姬银龙为什么恨杨晓琼2,3),便能够调用函数,核算直角边为2和3的直角三角形的面积。现leisimao在来做一个归纳操练:读者都知道网上发布的电话号码,如156****9354,中心的数值用其他符号替代了,而用户输入手机号时却是完整地输入,下面就经过Python()函数来完结这种转化功用。

def change_number(number):
hiding_number = number.replace(number[3:7],'*'*4)
print(hiding_number)
change_number('15648929最易懂的Python新手教程:从基础语法到代码详解354')
# result 156****9354

留意:这儿的手机号码是随意输入的,不是实在的号码。

代码阐明如下:

  1. 界说了一个名为change_number的函数。
  2. 对输入的参数进行切片,把参数的[3:7]部分替换为‘*’号,并打印出来。
  3. 调用函数。

2. 判别句子

在爬虫实战中也会常常运用判别句子,Python的判别句子格局如下:

if condition:
do
else:
do
# 留意:冒号和缩进不要忘记了
# 再看一下多重条件的格局
if condition:
do
elif condition:
do
else:
do

在平常运用暗码时,输入的暗码正确即可登录,暗码过错时就需求再次输入暗码。

def count_login(): 
password = input('password:')
if password == '12345':
print('输入成功!')
else:
print('过错,再输入')
count_login()
count_login()

程序阐明如下:

  1. 运转程序,输入暗码后按Enter键。
  2. 假如输入的字符串为12345,则打印“输入成功!”,程序完毕。
  3. 假如输入的字符串不是12345,则打印“过错,再输入”,持续运转程序,直到输入正确停止。

读者也能够将程序规划得更为风趣,例如,“3次输入失利后,退最易懂的Python新手教程:从基础语法到代码详解出程序”等。

3. 循环句子

Python的循环句子包含for循环和while循环,代码如下:

#for循环
for item in iterable:
do
#item表明元素,iterable是调集
for i in range(1,11):
print(i)
#其成果为顺次输出1到10,紧记11是不输出的,range为Python内置函数
#while循环
while condition:
do

例如,规划一个小程序,核算1~100的和:

i = 0
sum = 0
while i < 100:
i = i + 1
sum = sum + i
print(sum)
# result 5050

04祁大鹏新浪博客 Python数据结构

数据结构是寄存数据的容器,本节首要解说Python的4种根本数据结构,即列表、字典、元组和调集。

1. 列表

在爬虫实战中,运用最多的便是列表数据结构,不论是结构出的多个URL,仍是爬取到的数据,大多数都为列表数据结构。下面首要介绍列表最明显的特征:

  1. 列表中的每一个元素都是可变的。
  2. 列表的元素都是有序的,也便是说每个元素都有对应的方位(相似字符串的切片和索引)。
  3. 列表能够包容一切的目标。

列表中的每个元素都是可变的,这意味着能够对列表进行增、删、改操作,这些操作在爬虫中很少运用,因而这儿不再给读者增加常识担负。

列表的每个元素都有对应的方位,这种用法与字符串的切片和索引很相似。

list = ['peter', 'lilei', 'wangwu', 'xiaoming']
print(list[0])
print(list[2:])
# result
peter
['wangwu', 'xiaoming']

假如为切片,回来的也是列表的数据结构。

列表能够包容一切的目标:

list 最易懂的Python新手教程:从基础语法到代码详解= [
1,
1.1,
'string',
print(1),
True,
[1, 2],
(1, 2),
{'key', 'value'}
]

列表中会常常用到多重循环,因而读者有必要去了解和运用多重循环。现在,摆在读者面前有两个列表,分别是名字和年纪的列表:

names = ['xiaoming','wangwu','peter']
ag学生搞基es = [23,15,58]

这时能够经过多重循环让name和age一起打印在屏幕上:

names = ['xiaoming','wangwu','peter']
ages = [23,15,58]
for name, age in zip(names, ages):
print(name,age)
# result
xiaoming 23
wangwu 15
peter 58

留意:多重循环前后变量要共同。

在爬虫中,常常恳求多个网页,通常状况下会把网页存到列表中,然后循环顺次取出并拜访爬取数据。这些网页都有必定的规则,假如是手动将这些网页URL存入到列表中,不只花费太多时刻,也会形成代码冗余。这时可经过列表推导式,结构出这样的列表,例如某个网站每页的URL是这样的(总共13页):

http://bj.xiaozhu.com/search-duanzufang-p1-0/

http://bj.xiaozhu.com/search-duanzufang-p2-0/

http://bj.xiaozhu.com/search-duanzufang-p3-0/

http://bj.xiaozhu.com/search-duanzufang-p4-0/

……

经过以下代码即可结构出13页URL的列表数据:

urls = ['http://bj.xiaozhu.com/search-duanzufang-p{}-0/'.format(number) for number in range(1,14)]
for url in urls:
print(url)

经过一行代码即可结构出来,经过for循环打印出每个URL,如图1.5所示。


▲图1.5 列表推导式结构URL列表

留意:本网站为小猪短租网。

2. 字典

Python的字典数据结构与实际中的字典相似,以键值对('key'-'value')的办法表现出来。本文中只解说字典的发明,字典的操作在后边会具体介绍。字典的格局如下:

user_info = {
'name':'xiaoming',
'age':'23',
'sex':'man'
}

留意:刺进MongoDB数据库需用字典结构。

3. 元组和调集

在爬虫中,元组和调集很少用到,因而这儿只做简略介绍。元组相似于列表,可是元组的元素不能修正只能检查,元组的格局如下:

tuple = (1,2,3)

调集的概念相似数学中的调集。每个调集中的元素是无序的,不能够有重复的目标,因而能够经过调集把重复的数据去除。

list = ['xiaoming','zhangyun','xiaoming']
set = set(list)
print(set)
# result {'zhangyun', 'xiaoming'}

留意:调集是用大括号构建的。

05 Python文件操作

在爬虫初期的作业中,常常会把数据存储到文件中。本节首要解说Python怎样翻开文件和读写数据。

1. 翻开文件

Pyt最易懂的Python新手教程:从基础语法到代码详解hon中经过open()函数翻开文件,语法如下:

open(name[, mode[, buffering]])

open()函数运用文件名作为仅有的强制参数,然后回来一个文件目标。形式(mode)和缓冲(buffering)是可选参数。在Python的文件操作中,mode参数的输入是有必要的,而buffering运用较少。

假如在本机上有名为file.txt的文件(读者能够在本机中新建一个文本文件),其存储途径为C:\Users\Administrator\Desktop,那么能够经过下面代码翻开文件:

f = open('C:/Users/Administrator/Desktop/file.txt')

留意:此代码为Windows体系下的途径写法。

假如文件不存在,则会呈现如图1.6所示的过错。

▲图1.6 文件不存在报错信息

假如open()函数仅仅参加文件的途径这一个参数,则只能翻开文件并读取文件的相关内容。假如要向文件中写入内容,则有必要参加形式这个参数了。下面首要来看看open()函数中形式参数的常用值,如表1.1所示。


▲表1.1 open()函数中形式参数的常用值

2. 读写文件

上一节中有了名为f的类文件目标,那么就能够经过f.write()办法和f.read()办法写入和读取数据了。

f = open('C:/Users/Administrator/Deskt郑现清op/file.txt','w+')
f.write('hello world')

这时,在本机上翻开file.txt文最易懂的Python新手教程:从基础语法到代码详解件,能够看到如图1.7所示的成果。

▲图1.7 Python写文件

留意:假如没有树立文件,运转上面代码也能够成功。

假如再次运转程序,txt文件中的内容不会持续增加,能够修正形式参数为'r+',便可一向写入文件。

Python读取文件经过read()办法,下面测验把f的类文件目标写入的数据读取出来,运用如下代码即可完结操作:

f = open('C:/Users/Administrator/Desktop/file.txt','r')
content = f.read()
print(content)
# result hello world

3. 封闭文件

当完结读写作业天鹅公主的隐秘城堡后,应该紧记运用close()办法封闭文件。这样能够确保Python进行缓冲的整理(出于功率考虑而把数据暂时存储在内存中)和文件的安全性。经过下面代码即可封闭文件。

f = open('C:/Users/Administrator/Desktop/file.txt','r')
content = f.read()
print(co闻檀的作品集ntent)
f.close()

06 Python面向目标

Python作为一个面向目标的言语,很简单创立一个类和目标。本节首要解说类的界说及其相关运用办法。

1. 界说类

类是用来描绘具有相同特点和办法的目标调集。人能够经过不同的肤色划分为不同的种族,食物也有不同的品种,产品也是五花八门。但划分为同一类的物体,必定具有相似的特征和行为办法。

关于同一款自行车而言,它们的组成结构都是相同的,如车架、车轮和脚踏板等。经过Python能够界说这个自行车的类:

class Bike:
compose = ['frame','wheel','pedal']

经过运用class界说一个自行车的类,类中的变量compose称为类的变量,专业术语为类的特点。这样,顾客购买的自行车组成结构便是相同的了。

my_bike = Bike()
you_bike = Bike()
print(my_bike.compose)
print(you_bike.compose) #类的特点都是相同的

成果如图1.8所示。

▲图1.8 类特点引证

在左面写上变量名,右边写上类的称号,这个进程称之为类的实例化,而my_bike便是类的实例。经过“.”加上类的特点,便是类特点的引证。类的特点会被类的实例同享,所以成果都是相同的。

2. 实例特点

关于同一款自行车来说,有些顾客买回去后会改造下,如加一个车筐能够放东西等。

cwpdwplass Bike:
compose = ['frame','wheel','pedal']
my_bike = Bike()
my_bike.other = 'basket'
print(my_bike.other) #实例特点

成果如图1.9所示。

▲图1.9 实例特点

阐明:经过给类的实例特点进行赋值,也便是实例特点。compose特点归于一切的该款自行车,而other特点只归于my_bike这个类的实例。

3. 实例办法

读者是否还记得字符串的format()办法。办法便是函数,办法是对实例进行运用的,所以又名实例办法。关于自行车而言,它的办法便是骑行。

class Bike:
compose = ['frame','wheel','pedal']
def use(self):
print('you are riding')
my_bike = Bike()
my_bike.use()

成果如图1.10所示。

▲图1.10 实例办法

留意:这儿的self参数便是实例自身。

和函数相同,实例办法也是能够有参数的。

class Bike:
compose = ['frame','wheel','pedal']
def use(self,time):
print('you ride {}m'.format(time*100))
my_bik怎样交配e = Bike()
my_bike.use(10)

成果如图1.11所示。

▲图1.11 实例办法多参数

Python的类中有一些“马伦威斯魔法办法”,_init_()办法便是其中之一。在咱们发明实例的时分,不需求引证该办法也会被主动履行。

class Bike:
compose = ['frame','wheel','pedal']
def __init__(self):
self.other = 'basket'
def use(self,time):
print('you ride {}m'.format(time*100))
my_bike = Bike()
print(my_bike.other)

成果如图1.12所示。

▲图1.12 戏法办法

4. 类的承继

同享单车的呈现,方便了人们的出行。同享单车和本来的自行车组成结构相似,但多了付费的功用。

class Bike:
compose = ['frame','wheel','pedal']
def __init__(self):
self.other = 'basket' #界说实例的特点
def use(self,time):
print('you ride {}m'.format(time*10星际精灵蓝多多全集爱奇艺0))
class Share_bike(Bike):
def cost(self,hour):
print('you spent {}'.format(hour*2))
bike = Share_bike()
print(bike.other)
bike.cost(2)

成果如图1.13所示。

▲图1.13 类的承继

在新的类Share_bike后边的括号中参加Bike,表明Share_bike承继了Bike父类。父类中的变量和办法能够彻底被子类承继,在特别状况下,也能够对其掩盖。

关于作者:罗攀,闻名论坛Python爬虫专题管理员。拿手Python爬虫技能,并对Python数据剖析与发掘也有研讨。曾经在CSDN等多个闻名博客网站宣布多篇技能文章,深受读者的喜欢。现在从事线上Python网络爬虫的训练作业。蒋仟,喜欢并拿手Python编程,并将Python作为学术研讨手法。在数据收集、数据剖析等方面均有较为深化的研讨。对Python网络爬虫技能使用也颇有心得。现在从事林业遥感技能的研讨,并使用业余时刻兼职从事Python训练方面的作业。

本文摘编自《从零开始学Python网络爬虫》,经出书方授权发布。

延伸阅览《从零开始学Python网络爬虫》

引荐语:爬虫热销书,上市1年热销万余册!带小白一周把握Python网络爬虫。包括爬虫的3大办法/爬取数据的4大存储办法/22个实战事例/30个网站信息提取/64个避坑技巧/2500行代码详解/源代码/PPT。