![教孩子学Python编程](https://wfqqreader-1252317822.image.myqcloud.com/cover/357/27563357/b_27563357.jpg)
1.5 温习小学数学——使用Python进行运算
![](https://epubservercos.yuewen.com/000679/15825992704146106/epubprivate/OEBPS/Images/Figure-P30_9215.jpg?sign=1738891130-G2IFXG4wn0I8GfUkG3au3Mhy2t8qpZTC-0-d96e4937575eeb0288c203aa005bbcbd)
计算机最初的设计目的是帮助人们进行计算。人脑的优势在于逻辑思维,若让计算机处理复杂的人际逻辑,截至目前,计算机还做不到。但是计算机在运算速度上超越人脑很多个数量级(这里不包括人类中的极少数天才)。对于大量重复的计算,计算机十分在行。下面使用Python帮助我们做一些小学数学题。
1.5.1 数字之间的加、减、乘、除运算
![](https://epubservercos.yuewen.com/000679/15825992704146106/epubprivate/OEBPS/Images/Figure-P31_9416.jpg?sign=1738891130-rhpuQUSEHejEui0EG4sSddkjjzORx5M7-0-83c45ddbdd20446f84039dd6addfb0a7)
Python中的四则运算
加、减、乘、除是基础的四则运算,也是我们开始学习数学时接触的基础运算。在Python中使用符号“+”进行相加运算。例如,在IDLE集成环境中输入5+5之后按回车键,效果如图1-25所示。
![](https://epubservercos.yuewen.com/000679/15825992704146106/epubprivate/OEBPS/Images/Figure-P31_9368.jpg?sign=1738891130-swuHA9Fgd9cYDR0bNpzkJhjHoVwGPvk7-0-6e58418eb59377be6d0764e0db716bab)
图1-25 Python中的加法运算
可以看到,Python十分轻松地帮我们计算出了结果10。在Python中使用符号“-”进行减法运算,如图1-26所示。
![](https://epubservercos.yuewen.com/000679/15825992704146106/epubprivate/OEBPS/Images/Figure-P31_9376.jpg?sign=1738891130-jxDHBhNceUqT2cufNlx7pJglD5Oqmzzo-0-a3f8a4e9ae9b11cb267ab097339664e2)
图1-26 Python中的减法运算
在Python中使用符号“*”进行乘法运算,如图1-27所示。
![](https://epubservercos.yuewen.com/000679/15825992704146106/epubprivate/OEBPS/Images/Figure-P31_9384.jpg?sign=1738891130-hZK7umBlNIaisLqkbs8VhwRfaphtiNHC-0-430eeda993cafe3dc59558818a5841c1)
图1-27 Python中的乘法运算
在Python中使用符号“/”进行除法运算,如图1-28所示。
![](https://epubservercos.yuewen.com/000679/15825992704146106/epubprivate/OEBPS/Images/Figure-P31_9392.jpg?sign=1738891130-ywJ4GRVEKlzfc1xwRXtNF13BwzsT5L3Y-0-cc38ece881e2bcc3a24f47b47c09e10a)
图1-28 Python中的除法运算
当然,你也可以像使用计算器那样让Python做复合的四则运算,如图1-29所示。
![](https://epubservercos.yuewen.com/000679/15825992704146106/epubprivate/OEBPS/Images/Figure-P31_9400.jpg?sign=1738891130-CAbuD6jWibuip55iOce77Um5070ISmh8-0-a96d2dd452b2605d3a554887634edf2e)
图1-29 Python中的四则运算
你是不是有些疑惑,为什么运算的结果不是20,而是37呢?别忘了,在数学运算中是有运算法则的,最熟悉的口号就是“先乘除,后加减”。在Python中也是这样,整体的运算顺序是从左向右,但是如果有乘除运算,就会优先于加减运算进行计算。
帮你解惑
其实,在Python中也可以使用小括号来强制提高加减运算的优先级,除了基础的四则运算外,Python中还提供了丰富的数学运算方法,后面的章节会详细介绍。
1.5.2 浮点数的运算
![](https://epubservercos.yuewen.com/000679/15825992704146106/epubprivate/OEBPS/Images/Figure-P32_9460.jpg?sign=1738891130-m2pgEwpoLuZvi43VqW5OWVqrViQW1rIs-0-72f453a1f7b527364fad5f37c9d650f6)
奇怪的浮点数
浮点数,你可能第一次听说这个名词,它还有一个容易理解的同义词“小数”。在计算机中,处理小数点位置有两种方式,一种是定点;另一种是浮点。所谓定点,就是在计算机存储小数时,小数点永远在固定的位置上。要知道,计算机中数据的存储都是采用二进制,后面会详细解释有关二进制的知识。所谓浮点,即小数点的位置可以浮动,这样设计的优势是增加灵活性,在二进制位数一定的情况下,浮点数表示的范围更宽,精度更准。
在Python中,整数和小数虽然都是数值,数据类型却不同。使用type()函数可以获取某个数据的类型,如图1-30所示。
![](https://epubservercos.yuewen.com/000679/15825992704146106/epubprivate/OEBPS/Images/Figure-P32_9436.jpg?sign=1738891130-ELaOqj3DAopUVmooWeHgA5tnd9WdbPjI-0-21dfac935b8cadb31295402b7e4abe28)
图1-30 获取数据的类型
从图1-30可以看到,分别对数据4和4.5进行类型获取,一个获取了int类型,另一个获取了float类型,int表示的是整型数据,float表示的是浮点型数据。在Python中,当整型数据与浮点型数据进行运算时,结果会被转换成浮点型数据,如图1-31所示。
![](https://epubservercos.yuewen.com/000679/15825992704146106/epubprivate/OEBPS/Images/Figure-P32_9444.jpg?sign=1738891130-5QnEt0cooN3YYd4QZ5FiiXRfU2heBtIV-0-84d7c94105a98324f634a630a7ff0d23)
图1-31 整型数据与浮点型数据混合运算
截至目前,浮点型数据和整型数据除了类型不同外,并没有其他差异。下面我们来看一些Python中的奇葩现象。在集成环境中计算0.1+0.2的值,效果如图1-32所示。
![](https://epubservercos.yuewen.com/000679/15825992704146106/epubprivate/OEBPS/Images/Figure-P32_9452.jpg?sign=1738891130-DOccb7Qmov2Lr9hHVTAPrxgCFaoYBqCL-0-3d23c56b620d481a906e0e937ff5a3af)
图1-32 浮点数运算结果
有些惊讶吧,0.1+0.2这么简单的问题,计算机竟然计算“错了”。其实计算机没有计算错,而是二进制惹的祸。上面使用的无论是整数还是小数,其实都是十进制的,十进制小数并不一定都能转换成精确的二进制小数。例如,0.1转换成二进制后是一个无限循环的小数,计算机只能尽最大努力去保存它,这是一个近似的值,当计算完成再转换十进制时,就会出现如图1-32所示的情况。
其实,你不需要太纠结浮点数,在实际的应用中一般只需要确定7位精确小数位即可。
1.5.3 字符串的运算
![](https://epubservercos.yuewen.com/000679/15825992704146106/epubprivate/OEBPS/Images/Figure-P33_9569.jpg?sign=1738891130-jrlDO4nxiCBdu7Eg1q14V3qX5bIvV7Z4-0-98b73b4651979c4d40696f55921cfdad)
字符串间运算
数值的运算很好理解,在Python中,字符串也是可以进行运算的。使用符号“+”可以将字符串进行拼接,如图1-33所示。
![](https://epubservercos.yuewen.com/000679/15825992704146106/epubprivate/OEBPS/Images/Figure-P33_9479.jpg?sign=1738891130-5XNUoSwhq95EGuIN2QzhgZVazxzMseGX-0-f77fd309b2178f895f633aa305fa73d1)
图1-33 字符串的拼接
在字符串运算中,“加”操作通常被称为字符串的拼接。但是需要注意,正如不是所有的词汇都有反义词,也不是所有的运算都有逆运算。在Python中,字符串之间只能使用“+”进行拼接运算,不能使用“-”进行运算,如图1-34所示。
![](https://epubservercos.yuewen.com/000679/15825992704146106/epubprivate/OEBPS/Images/Figure-P33_9490.jpg?sign=1738891130-yZcrz9Gi17MQlMWzWwM0XHxKBT53UXLt-0-a6e37439040a2681513ffc428a91aeba)
图1-34 字符串之间不能使用“-”运算
帮你解惑
如图1-34所示,在这里又看到了一个新的错误类型“unsupported operand type(s)for-:'str'and'str'”。这个错误的意思是不支持在字符串与字符串之间进行“-”操作。
在数学中,乘法是加法的一种延伸,在Python中也是这样,你可以使用“*”运算符将一个字符串重复多次,如图1-35所示。
![](https://epubservercos.yuewen.com/000679/15825992704146106/epubprivate/OEBPS/Images/Figure-P33_9559.jpg?sign=1738891130-gsAyLnBMKOACXiimCVdPrjEQp9j2L21n-0-36cff4ca964649a458f06cd7815f7c1a)
图1-35 字符串的“*”运算
同样,“/”除法运算在字符串间也是不适用的。
字符串可以直接进行加法和乘法运算是Python语言的一大特点。在Python社区,最流行的口号莫过于“人生苦短,我学Python”,其想表达的就是Python这种简单、快速的特点。