Python基础入门:从变量到异常处理-阿里云天池

上一篇文章知识点太多,我需要一一查看理解。

在运算符 ➡ 算数运算符 ➡ 操作符 ➡ // 整除(地板除) 3//4

为什么叫地板除?

来自知乎友人 @陈沛鑫 的解答:为什么地板除会被称为地板除?

向下取整除,就是地板除 floor division
向上取整除,就是天花板除,ceil division

然而,我更蒙了,还有天花板除是什么,难道一个除法计算,还能盖房子吗?

还好找到文章:《“地板除”还是“取整除”?—论程序员是如何被翻译误导的》[1]简单总结下:

1.地板除“floor division”的根源追溯:

在Lear Python APP中




python 天花板 地板函数 python天花板除_python 天花板 地板函数


1.“//” 操作符:

这个符号跟“+”、“-”一样,都叫做“操作符”(Operator)。

这个操作符由两个向右的斜线(forward slash)组成,对应英文是 “floor division”。

2.英文解释:

If you imagine a room where 3 is on the ceiling and 2 is on the floor. 2.5 would fit in the middle. Floor division means the "//" will always take the floor or the lower number.[2]

假想一个房间,数字“3”在屋顶上,数字“2”在地板上,数字“2.5”处于中间。“floor division”的意思是:“//”这个运算符会得到地板上的数字或者较小的那个数字。

如图:


python 天花板 地板函数 python天花板除_double取整数部分_02

地板除和天花板除


根源于:

数学家高斯在1808年为“floor 函数”引入了[x]这个记号。1962年计算机科学家肯尼斯·艾佛森在他的书中引入了“floor”和“ceiling”这两个记号。

“floor 函数”也被称为“最大整数函数”(greatest integer)或“整数函数”(entier function),该函数获得的值是一个变量“x”的整数部分。

整除 or 地板除,一词两译哪个才是正确的?

“取整除”也是很对的,“取整除”运算取的就是除法结果的整数部分。

在中文中,“除法结果”有一个专门的术语,叫“商”。

  • 关于“商”:在英文中对应的说法叫做“quotient”。

The word quotient is from the Latin 'quotiens', which means 'how many times'. A quotient is the answer to a division problem. A division problem describes 'how many times' a number will go into another. The first known usage of the word in mathematics is found around 1400-1500 AD in England.

除法问题描述的是:一个数字能“进入”到另一个数字的次数。这里“进入”应该翻译成“除”。

英文中一般这样描述:

Three goes into fifteen five times.

3除15得5。

16//3

This code shows that 3 goes into 16 five times:


python 天花板 地板函数 python天花板除_java整除向上取整_03


To determine the quotient and remainder of a division, use the floor division and modulo operators, respectively.

“若要通过除法运算得到商和余数,可以分别使用‘取整除’(地板除)运算符和‘取模’运算符(取余运算符)。”


python 天花板 地板函数 python天花板除_python 天花板 地板函数_04


从编程学习者的角度来看,当了解了“floor”的来历后,“地板除”是一个非常形象易懂的翻译方法,求“地板上的数字”。而“ceiling division”,就是求“天花板上的数字”。

国内有一种译法,

就将“floor”对应的取整翻译成“向下取整”,把“ceiling”对应的取整翻译成“向上取整”。

终于深刻明白知友回答的意思了。


python 天花板 地板函数 python天花板除_double取整数部分_02


参考

  1. ^“地板除”还是“取整除”?: https://mp.weixin.qq.com/s/aoRKUtx9fOmTjCn_Kzun0A
  2. ^“floor division”的英文解释: https://www.codecademy.com/forum_questions/5384587e52f863dcb8001c82?__cf_chl_captcha_tk__=49370967ba71e33b1f86254d9c9a28f1aab10fd3-1599443174-0-AUQaTKuAewzJeqJ1yQuVrOHZVmZN22nIdgw-F9t9Kxw1L0Jpm84HycUOwi8_mEt8gnkub_YowydLjae-MQdEruqkr72eJzhviy44ILu3huzFqewmix-NRBHcfCz6kazWPXBx2pEuCr2QZ5O2lIhbTafl_e_Yn3gWJZGa51fztki6kHyjoJnJUKH5FYXegOjk_ovsnMZICHvP4sQCYVWlsmQwCVrVW-LLR837uE4mUYj9ijBxWHjMdGlCM_Hd66NYCI7lxFMimarpjrlD-IX4qvP6Hqqi1aqrlcjwOcqN_b0Wbl-iC8KxpUl6l-kgpeQPzrpvnTCepjl4xj-OHSV0hUQHm_D2Wid4rm4fyhrvZcwHcTcrsJL83dEHi5TLWmVp5Y6Q1MEvfcvbHpsDyPuEtaoaS6OymCtfzDiKc-LUEIpsoBOYAUIA6Ovv_-OBvTeDvkW5kV44cy4CaLbMcLNPFnVZOlIW3vgChGYXQIPdZQljTO3k__ekt8Ri-Dstvf9A9pLimgQvZsgQNCLhPfCqKg8SOm64Pk2ItxRDw5JORF1Lw94DJ1DopCwgJf4ccrYuf1w5UYZQLtxpbncAaU-ioLYpgXy4DYYfMCMADDYrZnmi