日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python中正负号怎么表示_[转载]python中整数除法的正负号

發布時間:2023/12/8 python 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python中正负号怎么表示_[转载]python中整数除法的正负号 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

先看下面幾個小題目:其中符號“//”表示除法結果的整數部分(即3/2=1.5,但3//2=1),“%”表示取余數。

(1)7//3 和 7%3 的結果是什么?

(2)7//-3 和 7%-3 的結果是什么?

(3)-7//3 和 -7%3的結果是什么?

(4)-7//-3 和 -7%-3 的結果是什么?

來看一下運算結果:

(1)7//3 = 2, ?7%3 = 1

這個沒什么好說的,會做除法的都知道。

(2)7//-3 = -3, ?7%-3 = -2

疑問:為什么不是這樣的結果:7//-3 = -2, 7%-3 = 1

(C語言里面是這個結果)

(3)-7//3 = -3, ?-7%3 = 2

疑問:為什么不是這樣的結果:-7//3 = -2, ?-7%3

= -1 (C語言里面是這個結果)

(4)-7//-3 = 2, -7%-3 = -1

這個也沒什么太大問題,而且C語言里面也是這樣的。

現在問題出來了,如果除數和被除數同為正數或者同為負數,結果沒有什么爭議(最起碼我這沒有)。但是如果除數和被除數正負號不同,那么python和c里面的計算結果就出現差異了,怎么理解呢?

我個人更喜歡python的計算結果(好吧,我不知道有沒有什么標準來規定這個,但是就目前來說,我還是更喜歡python的結果,因為我理解起來更容易一些)。下面是我的一點想法:

這樣來看,a 除以 b (我一向分不清除以、除、被除數、除數神馬的,反正我這說的就等于C里面的a/b):

這個題目的意義就是,計算數字a里面包含有多少個b,我覺得這就是除法的意義。

那么余數的概念就可以引申出來了,如果a并不是b的整數倍,那么除法之后肯定會有剩余的,也就是余數。

假設a有這么大:

a:

|-----------------------------------------------------------------------------------|

然后b有這么大:

b: ?|-----------------------|

我們把b多copy幾份,然后跟a比比:

a:

|-----------------------------------------------------------------------------------|

3b: |-----------------------|-----------------------|-----------------------|

余數 ?|-----------|

看上面的圖,a里面能包含3個b,所以3就是除法結果,剩下的那一塊,就是余數。

我是這么理解的,余數,就是范圍在b以內的那一部分,它不夠一個b的大小了。

那么這里就又有問題了,余數的范圍“在b以內”,又是什么意思?

好吧,我喜歡0這個數字(一般我會理解為原點),“在b以內”,那就是在區間(0,

b)內(這里b是正數),當然如果b是負數,那這個范圍就是(b, 0)。

按照這個理解,7除以-3,余數范圍一定是在(-3, 0)內;而-7除以3,余數范圍一定是在(0, 3)內。

就是這個結果:

7除以-3,商為-3,余數為-2;

-7除以3,商為-3,余數為2.

好吧,羅嗦這么多,其實就是為了說明余數的范圍是在(0, b)或者(b, 0)之間,沒有什么特別的意義。

當然如果你就認為余數的范圍更廣,比如 |余數| 在范圍 (0,

|b|)之間,那么我上面說的就都沒有用了,不同的理解方式而已,沒有對與錯的區別。(順便提一句,上面的兩條豎線表示數學中的絕對值)

最后,C語言的那個商和余數的正負號,我還是沒有理解,印象中以前寫過分析的筆記,類似于同號為正,異號為負之類的東西,但是說實話,我記不住那個規律。

最后的最后,我覺得這個東西的爭論是沒有意義的,不同的理解方式,知道分別是怎么回事就行了,至于誰對誰錯嘛,反正把商和余數填進式子里發現結果都是正確的,不是嗎?

————————————————————————————————————————————————

那個啥,我又回來了,因為我發現了一點小問題:

7除以-3,可以(商:-2,余數:1),也可以(商:-3,余數-2)。

在python里面,結果是(商:-3,余數:-2)。也就是說,余數取“0和除數”之間的那個(這里就是0和-3之間的,因此余數選-2,而不是1)。

在C里面,結果是(商:-2,余數:1)。也就是說,余數取“更靠近0”的那個(這里就是1,因為它比-2距離0更近一點)。

再看另外一個:-7除以3,可以是(商:-2,余數:-1),也可以是(商:-3,余數:2)。

在python里面,結果是(商:-3,余數:2)。同樣的,余數又是取的“0和除數”之間的那個(這里就是0和3之間的,因此余數是2,而不是-1)。

在C里面,結果是(商:-2,余數:-1)。再一次看到,余數是“更靠近0”的那個(這里的-1要比2距離0更近一些,不是嗎?)

包含負號的還有另外一個情況,那就是除數和被除數都是負數,我們再來看看這種:

-7除以-3,可以是(商:2,余數:-1),也可以是(商:3,余數:2)

在python里面,結果是(商:2,余數:-1)。再次符合我們的推論,余數取“0和除數”之間的那個(這里就是0和-3之間的,因此是-1,而不是2)。

在C里面,結果是(商:2,余數:-1)。很難得,兩種語言中的計算結果居然是一樣的。仔細看,這也符合我們對C語言中的推論:余數是“更靠近0”的那個,因為這里的-1比2更靠近0.

綜合以上的例子,我做了下面這樣一個推論(至少目前我就這樣來理解C和python中的除法運算結果了):

在python中,如果做除法運算后,余數有多個選擇(一般最多也就兩個),那么余數應該選擇“0和除數”之間的那個。

而在C中,如果做除法運算后,余數有多個選擇(一般最多也就是兩個),那么余數應該選擇“更靠近0”的那個。

而在確定了余數之后,商是什么就已經確定了,因此答案也就知道了。

這次是真的寫完了(一大篇亂七八糟的,其實只看最后的那兩句紅色部分就行了,但是我就是不提前告訴你們,重走一下我走過的彎路吧,挺好的不是嗎?)

PS:

誰能告訴我,為什么我電腦上的google拼音時不時的就調不出來了,切換輸入法之后凋出來的是微軟拼音,怎么搞?

總結

以上是生活随笔為你收集整理的python中正负号怎么表示_[转载]python中整数除法的正负号的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。