python round()_05.总是套路得人心,数学和Python示爱的套路!

fd85e0ec290a0a97e8bba23eb186b92d.png

心里随便想一个数a,计算 ( ( a + 52.8 ) * 5 - 3.9343 ) * 2 - 10a

( ( a + 52.8 ) * 5 - 3.9343 ) * 2 - 10a

= (5a + 624 - 3.9343 ) * 2 - 10a

= (5a +260.0657 ) * 2 - 10a

= 10a + 520.1314 - 10a

= 520.1314

原来,无论a是多少,它都不会参与最终的运算。正所谓:自古深情留不住,总是套路得人心。

1fcd98ece188fe0efb6361a1a7cf1f80.png

再来两个套路

其中一个来自于大名鼎鼎的科学家,笛卡尔。

a6a2f5aae642b71ab5c4e0e94326ec9d.png

话说笛卡尔一直没娶老婆,50多岁时,受邀来到瑞典一个小公国,担任18岁的小公主克里斯娜的数学老师。两人竟然日久生情,彼此产生了爱慕之心。

恋情被国王知道后,国王暴跳如雷,本来是要处死笛卡尔的,在小公主的苦苦哀求下,才只是将笛卡尔驱逐回了法国。(笛卡尔这糟老头子坏滴很,比小公主大30多岁,我要是小公主她爹,我也不同意把宝贝女儿嫁给他!)

33fbd019e245d4191cec59db34362706.gif

回到法国的笛卡尔对“小公举”日思夜想,写了很多情书,但都石沉大海。聪明的笛卡尔知道,信一定是被“恶毒”的国王拦截了。于是,他写了一封特殊的信,信里没有任何文字,只有一个数学公式

r=a(1-sinθ)

果然,“不学无术”的国王没有阻拦这封信,小公主拿到信之后,用笛卡尔教她的坐标系的知识,顺利画出了图形。这就是数学史上著名的“心形线” 。

bc0238cfa8a39404ec60845e206ae83e.png

所以说,做父亲真难!不仅要防着小鲜肉,还得努力学习,防着像笛卡尔这样的“老坏蛋”用学识拐骗了宝贝女儿!

不过故事的结局并不是有情人终成眷属,小公主收到情书后不久,笛卡尔就病逝了。两人最终还是没能在一起。

这个爱情故事在世界各地的广为流传,曾经有一个铺天盖地的矿泉水广告,据说创意就来自这个故事。但是据历史学家严格考证,这个故事压根就是后人杜撰的。笛卡尔去瑞典的时候,小公主早就当上女王了。而笛卡尔也是因为受不了瑞典的严寒天气,才染病去世的。

8558fddc75d18bd3abc4e8baa769013a.png

笛卡尔的套路有些含蓄,并且还需要用到极坐标这样有点难度的数学知识。下面这个套路则简单直接得多。

8d64f654d60cff56f3a510731e2690e9.gif

更多的套路,特别是数学结合上python之后更酷炫的套路,后面会通过“扩展篇”的方式做一些介绍。


python浮点运算误差

回到python。

当我们用python去计算 ( ( a + 52.8 ) * 5 - 3.9343 ) * 2 - 10a 时,却得到了一个意想不到的结果。

如下图,后面跟了一个长长的尾巴。

06ab8041bdecc3b78a7dd2aa104e0953.png

我们再看一个更简单的运算, 2.2 * 3 的结果也不是 6.6,后面也有长尾巴。

06ab8041bdecc3b78a7dd2aa104e0953.png

这还是因为二进制在作怪,所以在进行浮点运算的时候,注意要指定精度,用我们上一篇学过的round()函数就可以,虽然round()是四舍五入法,但因为尾巴的值非常小,所以一般不会造成错误的进位。

a = 423294324
print( round( ((a + 52.8) * 5 - 3.9343) * 2 - 10* a,4) )
print(round(2.2 * 3 , 1))

比较运算符

在数学里,常常需要比较多个数字,或者多个代数式之间的大小。如 1/3 和 1.4哪个更大?1/x 什么情况下比 x大?

在python里,有一类专门的运算符,用来比较两个数字,或者两个运算式之间的大小,称为比较运算符

比较运算符的返回结果只有2种:True(真) 或者 False(假)。

如下图, 3>2 的结果是 True, 2>3 的结果是False。

b818fc9a7d6223d555a584505b0ffe62.png

python里所有的比较运算符如下表格。

5f485dfcef1fb02ff6be6dba15c96001.png

稍微注意一下的“等于”,它由2个等号组成,作用是判断符号左右两边是否相等,如果相等,返回 True,如果不相等,返回 False。

在前面,我们经常用到的是一个等号,在python里,“=”称为 赋值运算符。作用是把右边的实例赋值给左边的变量名。或者说,让左边的变量名指向右边的实例。

a = 6

赋值运算符

在python里。除了 “=” 这个最简单的赋值运算符之外,还有一些别的赋值运算符。

比如 “+=”。如下图片 a += 3 相当于 a = a+3。

7ef2818f4f056b3ad238258a5d3687f4.png

其实每一个算术运算符都可以在后面加上“=”,变成赋值运算符。如下表格所示。

d738629f0e95bb147a88d9fd7d80c5cd.png

总结

到目前为止,我们已经把python里第一个最重要的类:数字类,以及数字类相关的一些基础知识都介绍完了。

3个类: 整型,浮点型,复数

3种运算符: 算术运算符,比较运算符,赋值运算符

6个内置函数: print(),int(),float(),round(),min(),max()

2个模块: math,random

3个非内置函数: math.ceil(),math.floor(),random.random()

如果有不清楚的地方,建议再复习之前的文章。

接下来的内容,将慢慢更有难度和挑战,做好准备哦!


程序员买西瓜

在程序员圈里,有这么一个段子。我们用它来引出接下来要介绍的内容。

程序员小A下班回家,老婆打来电话

“家里来客人了,去菜市场买个西瓜。如果有西红柿的话,买两个。”

请问,小A最后买了多少个西瓜,多少个西红柿回家?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值