Python网络基础爬虫-python基本语法

文章目录

逻辑语句

熟悉C/C++语言的人们可能很希望Python提供switch语句,但Python中并没有这个关键词,也没有这个语句结构。但是可以通过if-elif-elif-...这样的结构代替,或者使用字典实现。比如:

这段代码实现的功能是,输入一个运算符,再输入两个数字,返回其计算的结果。比如输入"+12",输出"3"。这里需要说明的是,input()是读取屏幕输入的方法(在python2中常用的raw_input()不是一个好选择),lambda关键字代表了Python中的匿名函数。

if,else,elif

与很多其他语言一样,Python也有自己的条件语句和循环语句。不过Python中的这些表示程序结构的语句并不需要用括(比如"{}")括起来,而是以一个冒号作为结尾,以缩进作为语句块。if,else,elif关键词是条件选择语句的关键:
|

Python中的循环语句主要是两种,一种的标志是关键词for,一种的标志是关键词while。Python中的for接受可迭代对象(例如list或迭代器)作为其参数,每次迭代其中一个元素:

for

【提示】如果想要输出列表中的索引和对应的元素,除了上面这样的方法之外,还有更符合Python风格的用法,如enumerate方法等

while

while循环的形式如下:

语句while_suit_codes会被连续不断地循环执行,直到表达式的值为False,接着Python会执行下一句代码。在for循环和while循环中,我们也会使用到break和continue关键字,分别代表终止循环和跳过当下循环开始下一次循环:

说到循环,就不能不提列表解析(或者翻译为"列表推导"),在形式上,是将循环和条件判断放在了列表的"[]"初始化中。举个例子,构造一个包含10以内所有奇数的列表,使用for循环添加元素:

使用列表解析:

这种"推导"(解析)也适用于字典和集合。这里我们没有说"元组",是因为元组的括号(圆括号)表示推导时会被Python识别为生成器,关于生成器的具体概念,可以见本书6.1.2节。一般如果需要快速构建一个元组,可以选择先进行列表推导,再使用"tuple()"将列表"冻结"为元组:

异常处理

Python中的异常处理也比较简单,核心语句是try...except...结构,可能触发异常产生的代码会放到try语句块里,而处理异常的代码会在except语句块里实现:

异常处理语句也可以写得非常灵活,比如同时处理多个异常:

有时候,在异常处理中我们会使用finally语句,而在finally语句下的代码块不论异常是否触发都将会被执行:

函数与类

def

在Python中,声明和定义函数使用def(代表"define")语句,在缩进块中编写函数体,函数的返回值用return语句返回:

如果没有显式的return语句,函数会自动return None。另外,我们也可以使函数一次返回多个值,实质上是一个元组:

pass

对于我们暂时不想实现的函数,可以使用"pass"作为占位符,否则Python会对缩进的代码块报错:

pass也可用于其他地方,比如if 和 for循环:

在函数中可以设置默认参数:

当有说个默认参数时会自动按照顺序逐个传入,我们也可以在调用时指定参数名:

class

在Python中类使用"class"关键字定义:

定义好类后,就可以根据类创建出一个实例。在类中的函数一般称为方法,简单地说,方法就是与实例绑定的函数,和普通函数不同,方法可以直接访问或操作实例中的数据。【提示】Python中的方法有实例方法、类方法、静态方法之分,这部分是Python面向对象编程中的一个重点概念。但是这里为了简化说明,统一称之为"方法"或者"函数"。

类是Python编程的核心概念之一,这主要是因为"Python中的一切都是对象",一个类可以写的非常复杂,下面的代码就是requests模块中Request类及其__init__()方法(部分代码):

相关推荐
百事老饼干3 分钟前
Java[面试题]-真实面试
java·开发语言·面试
千澜空18 分钟前
celery在django项目中实现并发任务和定时任务
python·django·celery·定时任务·异步任务
斯凯利.瑞恩25 分钟前
Python决策树、随机森林、朴素贝叶斯、KNN(K-最近邻居)分类分析银行拉新活动挖掘潜在贷款客户附数据代码
python·决策树·随机森林
杨荧40 分钟前
【JAVA毕业设计】基于Vue和SpringBoot的服装商城系统学科竞赛管理系统
java·开发语言·vue.js·spring boot·spring cloud·java-ee·kafka
白子寰1 小时前
【C++打怪之路Lv14】- “多态“篇
开发语言·c++
yannan201903131 小时前
【算法】(Python)动态规划
python·算法·动态规划
蒙娜丽宁1 小时前
《Python OpenCV从菜鸟到高手》——零基础进阶,开启图像处理与计算机视觉的大门!
python·opencv·计算机视觉
光芒再现dev1 小时前
已解决,部署GPTSoVITS报错‘AsyncRequest‘ object has no attribute ‘_json_response_data‘
运维·python·gpt·语言模型·自然语言处理
王俊山IT1 小时前
C++学习笔记----10、模块、头文件及各种主题(一)---- 模块(5)
开发语言·c++·笔记·学习
为将者,自当识天晓地。1 小时前
c++多线程
java·开发语言