这篇博客无论你是否有编程基础,都可以顺利阅读,从数值到模块,一篇博客贯穿 Python 的基础知识
- 如果你是滚雪球第四季看到的这篇博客,那么你可以快速阅读;
- 如果你完全零基础,请提前安装好 python 环境即可阅读。
算术运算符
python 是一种编程语言的同时,自己也是一个程序,我们编写好的 .py 结尾的文件,就是通过 python 解释器翻译成可执行程序。
任何程序都有输入与输出操作,因此程序可以看做是收集数据,加工数据,然后返回结果的一个模型。
从收集数据看,自然界最简单的就是数字,数字就不再特殊说明了,重点看一下 python 常用的算术运算符。
+ :加法;- :减法;* :乘法;/ :除法;% :取余;** :乘方;
算术运算符的顺序与数学中内容保持一致,通过小括号 () ,可以改变运算顺序。
变量
变量是 Python 中最重要的一个概念,它目的是为了将数据放入已经命名好的容器中,从而实现对不同数据的分类,而数学中的等号 = ,在 python 中变成了赋值符,用来连接变量和数据。
变量名 = 变量值(数据)
变量部分初学阶段必记内容,就是命名规范,可以按照下述内容记忆。
字母、数字、下划线,数字不能放开头; 随时注意大小写,谨防保留关键字。
其实中文也可以作为变量名,只是写起来不方便,所以大家不要这么写。
橡皮擦 = 123
print(橡皮擦)
字符串
字符串应该是 python 中出镜率最高的知识点了,没有任何一段程序可以摆脱它。
字符串的声明很简单,通过引号(单双三引号)包裹即可。
学习字符串之后,需要了解 + 除了相加,还具备了连接符的含义,可以连接 2 个字符串。
同时在字符串部分,重点要掌握引号嵌套的问题,稍不注意就会出现 BUG。
字符串连接部分还存在一个知识点,字符串与数值连接,在很多编程语言中,数值会默认转换为字符串,但是 python 不支持此操作,如果你在数值与字符串中使用连接符,会出现类型错误异常 TypeError: can only concatenate str (not "int") to str 。
spam = "abc"
a = spam + 1
print(a)
解决办法非常简单,使用内置的 str 函数,将数字转换为字符串即可。
相应的将字符串转换为数字,也可以通过 int 或 float 等内置函数实现。
万能列表
列表真的是 python 中的一大亮点,在 python 入门阶段如果你掌握了列表,后面学起来就轻松的一匹。
列表是首次接触到的容器型的变量,它里面可以放任意其它类型,定义也是通过 [] 实现的,与一个盒子一样,每个元素之间使用逗号(, )进行分隔。
列表读取通过 列表名[索引] 实现,在这里初次接触索引的概念,需要知道它是从 0 开始计数的。
使用索引可以删除列表中的值,方法如下:
my_list = [1,2,3]
del my_list[0]
使用索引可以替换列表中的值,方法如下:
my_list = [1,2,3]
my_list[0] = 5
列表可以做切片,也是通过索引进行实现。
my_list = [1,2,3]
my_list[1:2]
列表也可以做加法,即使用连接符 + ,与字符串一致,可以将两个列表进行拼接,此时你应该逐渐意识到字符串就是字符列表(在 python 中其实是个元组)。
从列表开始,你接触到的内置函数开始变多,例如 max 、min 、sum 、len 都开始使用。
在列表这里,你也将首次接触到 for 循环语句,而在学习循环语句之前,你必须要知道一个新的概念 序列,它们像列表一样,拥有多个元素,同时序列的英文单词 sequence 要牢牢记在脑中,虽然它不是很多关键字,但是好多地方你都能见到它。
for 语句的写法
for 循环变量 in 序列:
循环内代码,一般操作循环变量
上述代码格式中存在以下几个注意事项:
for 关键词和序列之间的变量叫做循环变量;- 循环变量与序列之间存在一个关键词
in ; - 循环内代码一定要注意缩进,而该缩进值一般为一个
Tab 开始; for 所在行的末尾有个英文分号 : 。
从你这里开始,你要掌握缩进原则,在 python 中就是通过不同缩进来实现代码块。后续的分支,函数,类都将大量使用缩进。
在 for 循环相关知识点的学习过程中,你又将接触一个新的内置函数 range ,该函数用于按照一定规则生成一个序列。
条件分支
在 python 中根据不同情况执行特定逻辑,就是分支语句,其关键字涉及 if 、else 、elif ,最简单的语法格式如下:
if 条件表达式:
满足条件的可执行代码
在学习条件分支之前的 python 程序,都是自上至下运行,通过条件分支可以改变这种流程,相应的概念就叫流程控制。
前文涉及的 for 循环是重复执行特定代码块的流程,而 if 语句则是根据特定条件执行某代码块。
条件分支中涉及 2 个同步知识点,其一叫做条件表达式,其二叫做比较运算符。
常用的比较运算符如下:
== :等于;!= :不等于;> :大于;>= :大于等于;< :小于;<= :小于等于;in :判定元素是否存在一个序列中。
条件表达式 是返回结果为 True 或者 False 的表达式,if 语句根据表达式的结果来判定是否执行代码块。
in 可以检索某个元素是否存在于某个序列中,例如检索字符串。
my_str = "abcdfdhfhaaa"
if "abc" in my_str:
print("检查到相关元素")
如果条件表达式返回的结果为 False,此时执行 else 语句,如果出现多条分支情况,可以使用 elif 语句进行操作。
到此一个完整的条件分支语句如下所示:
if 条件表达式1:
执行代码1
elif 条件表达式2:
执行代码2
elif 条件表达式3:
执行代码3
else:
上述所有条件表达式都不满足,执行代码4
在学习条件表达式时,还会接触到一个概念,叫做逻辑运算符,它可以将多个条件表达式进行拼接。
函数和模块
正式学习 python 没多久就会接触函数,而且一开始使用 print 就是输出函数,函数可以看成对外接收输入,内部进行加工,然后输出结果的一个黑盒子。
函数涉及的概念包括,函数的声明(也叫定义),函数的调用,函数的参数,函数的返回值,函数相关作用域问题。
函数定义的方法:
def 函数名():
函数内部代码
函数命名规则与变量一致,一般情况下大家使用全部小写字母为函数命名,常见的技巧可以采用动宾结构的单词组合,例如 do_something
函数的参数包括普通参数,默认参数,可选参数,关键字参数等内容,这些在学习过程中需要重点学习,不过初期阶段不一定完全掌握。
安装好了 python 环境之后,就默认拥有了很多内置(build in )函数,在前文提及的 int ,str ,max 都属于内置函数。
模块的导入
python 的一个强大之处是提供了非常多的模块,用于扩展 python 功能,模块导入使用关键字 import 实现。
3 中模块导入的方式
import random
import pyquery as pq
from lxml import etree
不建议使用 from 模块名 import * ,该方式产生的副作用比较大。
python 字典,集合,元组
字典较于列表,可以理解为给列表中的每个元素都贴上了专属的标签,因此获取字典中的元素,可以直接通过标签获取。
字典也叫做键值对,定义的方法如下:
my_dict = {键1:值1,键2:值2}
键与值之间用冒号 : 分隔,各个元素之间用逗号 , 分隔。
字典使用键代替索引来管理元素,所以在取值时,直接通过 my_dict[键名] 即可。
在字典中如果使用不存在的键,就会引发异常,但是可以给不存在的键进行赋值,该操作相当于给字典增加元素。
python 中的集合
集合涉及的关键字是 set ,在 python 集合中不存在重复的元素,由于这一点的存在,集合中不能放置列表与字典,因为列表与字典中的元素是会发生变化的,很容易导致出现重复元素,相应的集合本身也不能被放置到集合中。
set 集合不能使用索引获取元素,如果使用会出现如下错误:
TypeError: 'set' object is not subscriptable
集合涉及的运算
| :并集,将两个集合合并到一起,没有重复元素;- :差集,从前集合中删除后集合元素;& :交集,获得两个集合的相同元素;^ :异或,删除两个集合中相同的元素;
python 元组
元组就像是一个特殊化的列表,它不能修改被定义之后的内部元素。
定义元组使用小括号 () ,定义一个只包含一个元素的元组,需要在元素右侧额外增加一个逗号 (1,) 。
元组由于不可变性,故其可应用为字典的键,集合的元素,从而实现很多扩展功能。
while 循环
除了 for 循环外,python 中还存在 while 循环,在 while 循环中不能添加序列,也没有循环变量,仅包含条件表达式。
while 条件表达式:
循环内代码
在 python 中是不存在其它语言 do...while 循环的。
break 与 continue
通过 break 关键字可以终止循环,而使用 continue 关键字可以跳出本次循环,进入下一次的循环中。
循环中使用 else
在 for 与 while 循环语句中,也可以使用 else 语句,该语句表示循环执行结束之后需要执行的代码。
for i in range(1, 100):
print("输出", i)
else:
print("99 次循环,输出完毕")
在循环语句中如果出现 break ,那此时的 else 不会被执行到。
for i in range(1, 100):
print("输出", i)
if i > 50:
break
else:
print("99 次循环,输出完毕")
写在后面
以上内容就是本文的全部内容。
今天是持续写作的第 224 / 365 天。 可以关注,点赞、评论、收藏。
更多精彩
|