【教老婆学Python】Python基础01

(点击上方公众号,可快速关注)

我老婆要学Python了!而我正好从事计算机这一行业,在2010年也学过半年的Python,所以免费做起了老婆的Python老师,最最兴奋的是:我由衷得感到家庭地位提高了。后续这一系列文章会按照学习进度记录所学的内容。

下面是一些必要的说明事项:

  • 关于学习用的书籍

采用的是《Python编程快速上手》,这本书最大的优点是浅显易懂,特别适合初学者。相对地,有些用词可能不是特别准确,后续我会在文章中做进一步说明。所涉及到的知识点不限于这本书,如有必要,也会涉及到其他书籍及其他编程语言的内容,尽量做到能把一些知识点讲透。

  • 关于Python的版本

推荐选用Python 3,因为Python 2已经基本上被Python 3替代了。简单说一下,Python 3Python 2的升级版,两个版本是不兼容的。

目前Python 3的最新版本是3.8.2,到官网(https://www.python.org/)下载即可。应该大部分的用户都是Windows用户,下载完安装包按照步骤一步一步安装即可,这里不详述;如果是Linux或其他系统的用户,按照自己系统的说明安装即可。注意,因为现在的操作系统普遍是64位的,最好选择64位的安装包,安装包名一般带有x86-64amd64的字样。

下面进入正文:

交互式环境

Python的安装包自带一个IDLE的简单的开发环境,启动打开之后,界面如下:

会弹出一个窗口,这个窗口首行包含了当前Python解释器的版本,编译时间等信息,第二行是一些其他帮助信息。第三行包含>>>提示符,这个提示符后等待用户的输入,这个就是交互式环境。此时你就可以输入一些表达式了。如,输入

>>>  2 + 2
4

交互式环境会把表达式的结果返回给用户。那么,表达式是什么,有哪些常见的表达式呢,这是下节要讲的内容。

表达式

表达式是编程语言中最基本的编程结构。表达式通常包含“”(例如 2) 和“操作符”(例如+),并且总是可以求值(也就是归约) 为单个值。单个值也是表达式。如,2+22都是表达式。

我们在日常生活中接触最多的表达式是数学表达式,除了我们熟悉的加减乘除外,Python还提供了整除(//)、取模(%)、指数(**)等操作符:

>>> 2 ** 3
8
>>> 22 % 8
6
>>> 22 // 8
2

有两点需要注意:

  • 乘法和除法操作符跟数学中的符号是不同的,因为某些数学符号在键盘上是不容易打出的,所以为了输入简便,编程语言通常会选择形状类似的符号加以替代。

# 乘法
>>> 3 * 5
15
# 除法
>>> 22 / 8
2.75

有其他语言背景的同学,可能注意到了:在一些语言中,比如C/C++中,除法的规则是不同的。在C/C++中,只有一种除法(/):当操作数都为整数时,执行的实际上是Python中的整除操作;其他类型时,执行的是Python中的除法操作。而Python中通过运算符明确将两类操作区分开了,这样可读性更强。

  • 以上介绍的数学符号不仅能应用于整数,也能应用于小数,如:

>>> 4 ** 0.5
2.0
>>> 2.2 // 0.2
11.0
>>> 2.2 % 0.2
5.551115123125783e-17

上面第三个例子理论上结果应该是0.0,但Python计算的结果是5.551115123125783e-17,为什么会得到这么小的小数而不是0,会在后面的浮点类型一节进行说明。

运算符的优先级

Python中有很多运算符,不同运算符的优先级可能是不同的。比如,我们从小学就知道的“先乘除后加减”就是在说数学运算符的优先级。

到现在,只学习了7个数学运算符,后续将会学习更多的运算符。这个7个数学运算符的优先级从高到低依次为:

  1. 乘方(**)

  2. 乘法(*)、除法(/)、整除(//)、取模(%)

  3. 加法(+)、减法(-)

也就是说,当表达式内包含多个运算时,按照优先级列表先计算优先级高的运算,然后是次优先级的,按照优先级顺序依次往下计算。

举例如下:

>>> 2 + 3 * 4
14
>>> 2 * 2 ** 3
16

数学式子常会用到括号,主要作用是为了指定计算的优先级,因为在数学中并没有哪个标准严格定义数学符号的优先级,所以当计算引起混淆时,常使用各种括号(圆括号、中括号、大括号等)加以明确。编程语言也类似,编程语言使用括号改变运算的优先级,但有两点不同:

  1. 每种编程语言都精确定义了运算符的优先级,理论上是可以不需要括号的。但使用括号在某些情况下可以提高表达式的可读性,如上面的2 * 2 ** 3,如果不熟悉乘方符号,第一眼可能不知道要先计算哪个式子,但使用括号2 * (2 ** 3)就会非常明确。若式子变得很复杂,括号经常是很有必要的。

  2. 几乎所有编程语言中的括号只有圆括号,Python也是。后面你会遇到“中括号”,Python只是借用了数学符号本身,意义上已经发生改变,实际上已经不是括号了。

运算符的结合性

当一个表达式中出现多个优先级相同的运算符时,用运算符的优先级的规则已经不能决定先计算哪一个了,这时就得求助于运算符的结合性。

结合性分为三类

  1. 无结合

    Python中只有一个运算符没有结合性,就是括号。

  2. 左结合

    顾名思义,就是遇到左结合的运算符,要从左到右计算。上面介绍的7种数学运算符都是左结合的。

    >>> 3 - 4 + 2
    1

    上面的例子,加减运算的优先级一样,而且两个运算符是左结合的,所以要先计算减法,再计算加法,等同于(3 - 4) + 2

  3. 右结合

    顾名思义,就是遇到右结合的运算符,从右到左计算。目前为止,还没学习到右结合的运算符,在此不展开。

喜欢我的文章,请关注我的公众号。

封面图片使用 Icon Designer 的作品。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值