跳到主要内容
Python 安装与语法基础入门教程 | 极客日志
Python AI 算法
Python 安装与语法基础入门教程 Python 安装与语法基础入门教程涵盖 Python 及 PyCharm 环境搭建,变量、字符串、函数、控制语句等基础语法,列表、字典、元组、集合等数据结构,文件读写操作以及面向对象编程中的类定义、实例属性、方法、继承等内容。适合初学者系统学习 Python 编程基础。
忘忧 发布于 2025/2/7 更新于 2026/6/5 27 浏览前言
本文讲解 Python 和 PyCharm 的安装,及 Python 最简单的语法基础和爬虫技术中所需的 Python 语法。
本文涉及的主要知识点如下:
Python 和 PyCharm 的安装
变量和字符串
函数与控制语句
Python 数据结构
Python 文件操作
Python 面向对象
01 Python 与 PyCharm 安装
本节介绍 Python 环境的安装和 Python 的集成开发环境(IDE)PyCharm 的安装。
1. Python 安装(Windows、Mac 和 Linux)
当前主流的 Python 版本为 2.x 和 3.x。由于 Python 2 第三方库更多,企业普遍使用 Python 2。如果作为学习和研究的话,建议使用 Python 3,因为它是未来的发展方向。所以本教程选择 Python 3 的环境。
1.1 Windows 中安装 Python 3
在 Windows 系统中安装 Python 3,请参照下面的步骤进行。
打开浏览器,访问 Python 官网。
光标移动至 Downloads 链接,单击 Windows 链接。
根据自己的 Windows 版本(32 位或 64 位),下载相应的 Python 3.5 版本。如为 Windows 32 位系统,应下载 Windows x86 executable installer;如果为 Windows 64 位系统,应下载 Windows x86-64 executable installer。
单击运行文件,勾选 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 后重新安装时勾选该选项即可。
1.2 Mac 中安装 Python3
Mac 系统中自带了 Python 2.7,需到 Python 官网上下载并安装 Python3.5。Mac 系统中的安装比 Windows 更为简单,一直单击'下一步'按钮即可完成。安装完后,打开终端并输入 Python3,即可进入 Mac 的 Python3 的交互式环境。
1.3 Linux 中安装 Python3
大部分 Linux 系统内置了 Python2 和 Python3,通过在终端输入 python--version,可以查看当前 Python3 的版本。如果需要安装某个特定版本的 Python,可以在终端中输入:
sudo apt-get install python3.5
2. PyCharm 安装
安装好 Python 环境后,还需要安装一个集成开发环境(IDE),IDE 集成了代码编写功能、分析功能、编译功能和调试功能。在这里向读者推荐一个最智能、好用的 Python IDE,叫做 PyCharm。进入 PyCharm 的官网,下载社区版即可。
由于 PyCharm 上手极为简单,因此就不详细讲解 PyCharm 的使用方法了。以下讲解如何使用 PyCharm 关联 Python 解释器,让 PyCharm 可以运行 Python 代码。
打开 PyCharm,在菜单栏中选择 File | Default Settings 命令。
在弹出的对话框中选择 Project Interpreter,然后在右边选择 Python 环境,这里选择 Python 3.5,单击 OK 按钮,即可关联 Python 解释器,如图 1.2 所示。
[图 1.2 关联 Python 解释器]
02 变量和字符串
本节主要介绍 Python 变量的概念、字符串的基本使用方法、字符串的切片和索引,以及字符串的几种常用方法。
1. 变量
Python 中的变量很好理解,例如:
这种操作称为赋值,意思为将数值 1 赋给了变量 a。
注意:Python 中语句结束不需要以分号结束,变量不需要提前定义。
现在有变量 a 和变量 b,可以通过下面代码进行变量 a、b 值的对换。
a = 4
b = 5
t = a
a = b
b = t
print (a, b)
这种方法类似于将两个杯子中的饮料对换,只需要多加一个杯子,即可完成饮料的对换工作。
2. 字符串的'加法'和'乘法' 由于 Python 爬虫的对象大部分为文本,所以字符串的用法尤为重要。在 Python 中,字符串由双引号或单引号和引号中的字符组成。首先,通过下面代码看看字符串的'加法':
a = 'I'
b = ' love'
c = ' Python'
print (a + b + c)
Python 的字符串不仅可以相加,也可以乘以一个数字:
字符串乘以一个数字,意思就是将字符串复制这个数字的份数。
3. 字符串的切片和索引 字符串的切片和索引就是通过 string[x],获取字符串的一部分信息:
a = 'I love python'
print (a[0 ])
print (a[0 :5 ])
print (a[-1 ])
通过图 1.3 就能清楚地理解字符串的切片和索引。
在爬虫实战中,经常会通过字符串的切片和索引,提取需要的部分,剔除一些不需要的部分。
4. 字符串方法 Python 作为面向对象的语言,每个对象都有相应的方法,字符串也一样,拥有多种方法,在这里介绍爬虫技术中常用的几种方法。
4.1 split() 方法 a = 'www.baidu.com'
print (a.split('.' ))
字符串的 split() 方法就是通过给定的分隔符(在这里为'.'),将一个字符串分割为一个列表(后面将详细讲解列表)。
注意:如果没有提供任何分隔符,程序会把所有的空格作为分隔符(空格、制表、换行等)。
4.2 replace() 方法 a = 'There is apples'
b = a.replace('is' , 'are' )
print (b)
4.3 strip() 方法 a = ' python is cool '
print (a.strip())
strip() 方法返回去除两侧(不包括内部)空格的字符串,也可以指定需要去除的字符,将它们列为参数中即可。
a = '**python *is *good**'
print (a.strip('*!' ))
这个方法只能去除两侧的字符,在爬虫得到的文本中,文本两侧常会有多余的空格,只需使用字符串的 strip() 方法即可去除多余的空格部分。
4.4 format() 方法 最后,再讲解下好用的字符串格式化符,首先看以下代码:
a = '{} is my love' .format ('Python' )
print (a)
content = input ('请输入搜索内容:' )
url_path = 'https://www.pexels.com/search/{}/' .format (content)
print (url_path)
运行程序并输入 book,便可返回网页链接,单击网页链接便可访问网页了,如图 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 的直角三角形的面积。现在来做一个综合练习:读者都知道网上公布的电话号码,如 156****9354,中间的数值用其他符号代替了,而用户输入手机号时却是完整地输入,下面就通过 Python 函数来实现这种转换功能。
def change_number (number ):
hiding_number = number.replace(number[3 :7 ], '*' *4 )
print (hiding_number)
change_number('15648929354' )
注意:这里的手机号码是随意输入的,不是真实的号码。
定义了一个名为 change_number 的函数。
对输入的参数进行切片,把参数的 [3:7] 部分替换为'*'号,并打印出来。
调用函数。
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()
运行程序,输入密码后按 Enter 键。
如果输入的字符串为 12345,则打印'输入成功!',程序结束。
如果输入的字符串不是 12345,则打印'错误,再输入',继续运行程序,直到输入正确为止。
读者也可以将程序设计得更为有趣,例如,'3 次输入失败后,退出程序'等。
3. 循环语句 Python 的循环语句包括 for 循环和 while 循环,代码如下:
for item in iterable:
do
for i in range (1 , 11 ):
print (i)
while condition:
do
i = 0
sum = 0
while i < 100 :
i = i + 1
sum = sum + i
print (sum )
04 Python 数据结构 数据结构是存放数据的容器,本节主要讲解 Python 的 4 种基本数据结构,即列表、字典、元组和集合。
1. 列表 在爬虫实战中,使用最多的就是列表数据结构,不论是构造出的多个 URL,还是爬取到的数据,大多数都为列表数据结构。下面首先介绍列表最显著的特征:
列表中的每一个元素都是可变的。
列表的元素都是有序的,也就是说每个元素都有对应的位置(类似字符串的切片和索引)。
列表可以容纳所有的对象。
列表中的每个元素都是可变的,这意味着可以对列表进行增、删、改操作,这些操作在爬虫中很少使用,因此这里不再给读者添加知识负担。
列表的每个元素都有对应的位置,这种用法与字符串的切片和索引很相似。
list = ['peter' , 'lilei' , 'wangwu' , 'xiaoming' ]
print (list [0 ])
print (list [2 :])
如果为切片,返回的也是列表的数据结构。
列表可以容纳所有的对象:
list = [1 , 1.1 , 'string' , True , [1 , 2 ], (1 , 2 ), {'key' , 'value' }]
列表中会经常用到多重循环,因此读者有必要去了解和使用多重循环。现在,摆在读者面前有两个列表,分别是姓名和年龄的列表:
names = ['xiaoming' , 'wangwu' , 'peter' ]
ages = [23 , 15 , 58 ]
这时可以通过多重循环让 name 和 age 同时打印在屏幕上:
names = ['xiaoming' , 'wangwu' , 'peter' ]
ages = [23 , 15 , 58 ]
for name, age in zip (names, ages):
print (name, age)
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 所示。
2. 字典 Python 的字典数据结构与现实中的字典类似,以键值对('key'-'value')的形式表现出来。本文中只讲解字典的创造,字典的操作在后面会详细介绍。字典的格式如下:
user_info = {
'name' : 'xiaoming' ,
'age' : '23' ,
'sex' : 'man'
}
3. 元组和集合 在爬虫中,元组和集合很少用到,因此这里只做简单介绍。元组类似于列表,但是元组的元素不能修改只能查看,元组的格式如下:
集合的概念类似数学中的集合。每个集合中的元素是无序的,不可以有重复的对象,因此可以通过集合把重复的数据去除。
list = ['xiaoming' , 'zhangyun' , 'xiaoming' ]
set = set (list )
print (set )
05 Python 文件操作 在爬虫初期的工作中,常常会把数据存储到文件中。本节主要讲解 Python 如何打开文件和读写数据。
1. 打开文件 Python 中通过 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 所示的错误。
如果 open() 函数只是加入文件的路径这一个参数,则只能打开文件并读取文件的相关内容。如果要向文件中写入内容,则必须加入模式这个参数了。下面首先来看看 open() 函数中模式参数的常用值,如表 1.1 所示。
[表 1.1 open() 函数中模式参数的常用值]
2. 读写文件 上一节中有了名为 f 的类文件对象,那么就可以通过 f.write() 方法和 f.read() 方法写入和读取数据了。
f = open ('C:/Users/Administrator/Desktop/file.txt' , 'w+' )
f.write('hello world' )
这时,在本机上打开 file.txt 文件,可以看到如图 1.7 所示的结果。
注意:如果没有建立文件,运行上面代码也可以成功。
如果再次运行程序,txt 文件中的内容不会继续添加,可以修改模式参数为'r+',便可一直写入文件。
Python 读取文件通过 read() 方法,下面尝试把 f 的类文件对象写入的数据读取出来,使用如下代码即可完成操作:
f = open ('C:/Users/Administrator/Desktop/file.txt' , 'r' )
content = f.read()
print (content)
3. 关闭文件 当完成读写工作后,应该牢记使用 close() 方法关闭文件。这样可以保证 Python 进行缓冲的清理(出于效率考虑而把数据临时存储在内存中)和文件的安全性。通过下面代码即可关闭文件。
f = open ('C:/Users/Administrator/Desktop/file.txt' , 'r' )
content = f.read()
print (content)
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)
在左边写上变量名,右边写上类的名称,这个过程称之为类的实例化,而 my_bike 就是类的实例。通过'.'加上类的属性,就是类属性的引用。类的属性会被类的实例共享,所以结果都是一样的。
2. 实例属性 对于同一款自行车来说,有些顾客买回去后会改造下,如加一个车筐可以放东西等。
class Bike :
compose = ['frame' , 'wheel' , 'pedal' ]
my_bike = Bike()
my_bike.other = 'basket'
print (my_bike.other)
说明:通过给类的实例属性进行赋值,也就是实例属性。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()
class Bike :
compose = ['frame' , 'wheel' , 'pedal' ]
def use (self, time ):
print ('you ride {}m' .format (time * 100 ))
my_bike = Bike()
my_bike.use(10 )
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)
4. 类的继承 共享单车的出现,方便了人们的出行。共享单车和原来的自行车组成结构类似,但多了付费的功能。
class Bike :
compose = ['frame' , 'wheel' , 'pedal' ]
def __init__ (self ):
self .other = 'basket'
def use (self, time ):
print ('you ride {}m' .format (time * 100 ))
class Share_bike (Bike ):
def cost (self, hour ):
print ('you spent {}' .format (hour * 2 ))
bike = Share_bike()
print (bike.other)
bike.cost(2 )
在新的类 Share_bike 后面的括号中加入 Bike,表示 Share_bike 继承了 Bike 父类。父类中的变量和方法可以完全被子类继承,在特殊情况下,也可以对其覆盖。
相关免费在线工具 加密/解密文本 使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online
RSA密钥对生成器 生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
Mermaid 预览与可视化编辑 基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
随机西班牙地址生成器 随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online
Gemini 图片去水印 基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online
curl 转代码 解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online