欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

跟老齊學(xué)Python之眼花繚亂的運算符

 更新時間:2014年09月14日 15:34:41   投稿:hebedich  
在python里,可能大家已從運算表里找到了,即 (“+”),但是與PHP不同的是兩個對象相加,兩個對象必須是同類型的,不同類型的兩個對象是不能相加的.要實現(xiàn)像上面PHP代碼里的運算,必須保證兩對象類型一致。

在計算機(jī)高級中語言,運算符是比較多樣化的。其實,也都源于我們?nèi)粘5男枰?/p>

算術(shù)運算符

前面已經(jīng)講過了四則運算,其中涉及到一些運算符:加減乘除,對應(yīng)的符號分別是:+ - * /,此外,還有求余數(shù)的:%。這些都是算術(shù)運算符。其實,算術(shù)運算符不止這些。根據(jù)中學(xué)數(shù)學(xué)的知識,看官也應(yīng)該想到,還應(yīng)該有乘方、開方之類的。

下面列出一個表格,將所有的運算符表現(xiàn)出來。不用記,但是要認(rèn)真地看一看,知道有那些,如果以后用到,但是不自信能夠記住,可以來查。

運算符 描述 實例
+ 加 - 兩個對象相加 10+20 輸出結(jié)果 30
- 減 - 得到負(fù)數(shù)或是一個數(shù)減去另一個數(shù) 10-20 輸出結(jié)果 -10
* 乘 - 兩個數(shù)相乘或是返回一個被重復(fù)若干次的字符串 10 * 20 輸出結(jié)果 200
/ 除 - x除以y 20/10 輸出結(jié)果 2
% 取余 - 返回除法的余數(shù) 20%10 輸出結(jié)果 0
** 冪 - 返回x的y次冪 10**2 輸出結(jié)果 100
// 取整除 - 返回商的整數(shù)部分 9//2 輸出結(jié)果 4 , 9.0//2.0 輸出結(jié)果 4.0

是不是看著并不陌生呀。這里有一個建議給看官,請打開你的IDLE,依次將上面的運算符實驗一下。

列為看官可以根據(jù)中學(xué)數(shù)學(xué)的知識,想想上面的運算符在混合運算中,應(yīng)該按照什么順序計算。并且親自試試,是否與中學(xué)數(shù)學(xué)中的規(guī)律一致。(應(yīng)該是一致的,計算機(jī)科學(xué)家不會另外搞一套讓我們和他們一塊受罪。)

比較運算符

所謂比較,就是比一比兩個東西。這在某國是最常見的了,做家長的經(jīng)常把自己的孩子跟別人的孩子比較,唯恐自己孩子在某方面差了;官員經(jīng)常把自己的工資和銀行比較,總覺得少了。

在計算機(jī)高級語言編程中,任何兩個同一類型的量的都可以比較,比如兩個數(shù)字可以比較,兩個字符串可以比較。注意,是兩個同一類型的。不同類型的量可以比較嗎?首先這種比較沒有意義。就好比二兩肉和三尺布進(jìn)行比較,它們誰大呢?這種比較無意義。所以,在真正的編程中,我們要謹(jǐn)慎對待這種不同類型量的比較。

但是,在某些語言中,允許這種無意思的比較。因為它在比較的時候,都是將非數(shù)值的轉(zhuǎn)化為了數(shù)值類型比較。這個后面我們會做個實驗。

對于比較運算符,在小學(xué)數(shù)學(xué)中就學(xué)習(xí)了一些:大于、小于、等于、不等于。沒有陌生的東西,python里面也是如此。且看下表:

以下假設(shè)變量a為10,變量b為20:

運算符 描述 實例
== 等于 - 比較對象是否相等 (a == b) 返回 False。
!= 不等于 - 比較兩個對象是否不相等 (a != b) 返回 true.
> 大于 - 返回x是否大于y (a > b) 返回 False。
< 小于 - 返回x是否小于y (a < b) 返回 true。
>= 大于等于 - 返回x是否大于等于y。 (a >= b) 返回 False。
<= 小于等于 - 返回x是否小于等于y。 (a <= b) 返回 true。

上面的表格實例中,顯示比較的結(jié)果就是返回一個true或者false,這是什么意思呢。就是在告訴你,這個比較如果成立,就是為真,返回True,否則返回False,說明比較不成立。

請按照下面方式進(jìn)行比較操作,然后再根據(jù)自己的想象,把比較操作熟練熟練。

>>> a=10
>>> b=20
>>> a>b
False
>>> a<b
True
>>> a==b
False
>>> a!=b
True
>>> a>=b
False
>>> a<=b
True
>>> c="5"  #a、c是兩個不同類型的量,能比較,但是不提倡這么做。
>>> a>c
False
>>> a<c
True

邏輯運算符

首先談?wù)勈裁词沁壿嫞n寒先生對邏輯有一個分類:

邏輯分兩種,一種是邏輯,另一種是中國人的邏輯。————韓寒

這種分類的確非常精準(zhǔn)。在很多情況下,中國人是有很奇葩的邏輯的。但是,在python中,講的是邏輯,不是中國人的邏輯。

邏輯(logic),又稱理則、論理、推理、推論,是有效推論的哲學(xué)研究。邏輯被使用在大部份的智能活動中,但主要在哲學(xué)、數(shù)學(xué)、語義學(xué)和計算機(jī)科學(xué)等領(lǐng)域內(nèi)被視為一門學(xué)科。在數(shù)學(xué)里,邏輯是指研究某個形式語言的有效推論。

關(guān)于邏輯問題,看官如有興趣,可以聽一聽《國立臺灣大學(xué)公開課:邏輯》

下面簡單理解一下邏輯問題。

布爾類型的變量

在所有的高級語言中,都有這么一類變量,被稱之為布爾型。從這個名稱,看官就知道了,這是用一個人的名字來命名的。

喬治·布爾(George Boole,1815年11月-1864年,),英格蘭數(shù)學(xué)家、哲學(xué)家。

喬治·布爾是一個皮匠的兒子,生于英格蘭的林肯。由于家境貧寒,布爾不得不在協(xié)助養(yǎng)家的同時為自己能受教育而奮斗,不管怎么說,他成了19世紀(jì)最重要的數(shù)學(xué)家之一。盡管他考慮過以牧師為業(yè),但最終還是決定從教,而且不久就開辦了自己的學(xué)校。

在備課的時候,布爾不滿意當(dāng)時的數(shù)學(xué)課本,便決定閱讀偉大數(shù)學(xué)家的論文。在閱讀偉大的法國數(shù)學(xué)家拉格朗日的論文時,布爾有了變分法方面的新發(fā)現(xiàn)。變分法是數(shù)學(xué)分析的分支,它處理的是尋求優(yōu)化某些參數(shù)的曲線和曲面。

1848年,布爾出版了《The Mathematical Analysis of Logic》,這是他對符號邏輯諸多貢獻(xiàn)中的第一次。

1849年,他被任命位于愛爾蘭科克的皇后學(xué)院(今科克大學(xué)或UCC)的數(shù)學(xué)教授。1854年,他出版了《The Laws of Thought》,這是他最著名的著作。在這本書中布爾介紹了現(xiàn)在以他的名字命名的布爾代數(shù)。布爾撰寫了微分方程和差分方程的課本,這些課本在英國一直使用到19世紀(jì)末。
由于其在符號邏輯運算中的特殊貢獻(xiàn),很多計算機(jī)語言中將邏輯運算稱為布爾運算,將其結(jié)果稱為布爾值。

請看官認(rèn)真閱讀布爾的生平,立志呀。

布爾所創(chuàng)立的這套邏輯被稱之為“布爾代數(shù)”。其中規(guī)定只有兩種值,True和False,正好對應(yīng)這計算機(jī)上二進(jìn)制數(shù)的1和0。所以,布爾代數(shù)和計算機(jī)是天然吻合的。

所謂布爾類型,就是返回結(jié)果為1(True)、0(False)的數(shù)據(jù)變量。

在python中(其它高級語言也類似,其實就是布爾代數(shù)的運算法則),有三種運算符,可以實現(xiàn)布爾類型的變量間的運算。

布爾運算

看下面的表格,對這種邏輯運算符比較容易理解:

(假設(shè)變量a為10,變量b為20)

運算符 描述 實例
and 布爾"與" - 如果x為False,x and y返回False,否則它返回y的計算值。 (a and b) 返回 true。
or 布爾"或" - 如果x是True,它返回True,否則它返回y的計算值。 (a or b) 返回 true。
not 布爾"非" - 如果x為True,返回False。如果x為False,它返回True。 not(a and b) 返回 false。

and

and,翻譯為“與”運算,但事實上,這種翻譯容易引起望文生義的理解。先說一下正確的理解。A and B,含義是:首先運算A,如果A的值是true,就計算B,并將B的結(jié)果返回做為最終結(jié)果,如果B是False,那么A and B的最終結(jié)果就是False,如果B的結(jié)果是True,那么A and B的結(jié)果就是True;如果A的值是False ,就不計算B了,直接返回A and B的結(jié)果為False.

比如:

4>3 and 4<9,首先看4>3的值,這個值是True,再看4<9的值,是True,那么最終這個表達(dá)式的結(jié)果為True.

>>> 4>3 and 4<9
True

4>3 and 4<2,先看4>3,返回True,再看4<2,返回的是False,那么最終結(jié)果是False.

>>> 4>3 and 4<2
False

4<3 and 4<9,先看4<3,返回為False,就不看后面的了,直接返回這個結(jié)果做為最終結(jié)果。

>>> 4<3 and 4<2
False

前面說容易引起望文生義的理解,就是有相當(dāng)不少的人認(rèn)為無論什么時候都看and兩邊的值,都是true返回true,有一個是false就返回false。根據(jù)這種理解得到的結(jié)果,與前述理解得到的結(jié)果一樣,但是,運算量不一樣哦。

or

or,翻譯為“或”運算。在A and B中,它是這么運算的:

if A==True:
  return True
else:
  if B==True:
    return True
  else if B==False:
    return False

上面這段算是偽代碼啦。所謂偽代碼,就是不是真正的代碼,無法運行。但是,偽代碼也有用途,就是能夠以類似代碼的方式表達(dá)一種計算過程。

看官是不是能夠看懂上面的偽代碼呢?下面再增加上每行的注釋。這個偽代碼跟自然的英語差不多呀。

if A==True:     #如果A的值是True
  return True   #返回True,表達(dá)式最終結(jié)果是True
else:        #否則,也就是A的值不是True
  if B==True:   #看B的值,然后就返回B的值做為最終結(jié)果。
    return True
  else if B==False:
    return False
舉例,根據(jù)上面的運算過程,分析一下下面的例子,是不是與運算結(jié)果一致?
>>> 4<3 or 4<9
True
>>> 4<3 or 4>9
False
>>> 4>3 or 4>9
True
not

not,翻譯成“非”,竊以為非常好,不論面對什么,就是要否定它。

>>> not(4>3)
False
>>> not(4<3)
True

關(guān)于運算符問題,其實不止上面這些,還有呢,比如成員運算符in,在后面的學(xué)習(xí)中會逐漸遇到。

相關(guān)文章

  • ?Python?中?logging?模塊使用詳情

    ?Python?中?logging?模塊使用詳情

    這篇文章主要介紹了?Python?中?logging?模塊使用,在我們寫程序時,可以借助?logging?模塊的輸出信息來調(diào)試代碼,下文章關(guān)于?logging?模塊的使用相關(guān)內(nèi)容,需要的小伙伴可以參考一下
    2022-03-03
  • python zip()函數(shù)使用方法解析

    python zip()函數(shù)使用方法解析

    這篇文章主要介紹了python zip()函數(shù)使用方法解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-10-10
  • 使用Python處理json字符串中的非法雙引號問題

    使用Python處理json字符串中的非法雙引號問題

    這篇文章主要介紹了使用Python處理json字符串中的非法雙引號問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • 詳解python中[-1]、[:-1]、[::-1]、[n::-1]使用方法

    詳解python中[-1]、[:-1]、[::-1]、[n::-1]使用方法

    這篇文章主要介紹了詳解python中[-1]、[:-1]、[::-1]、[n::-1]使用方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • 用python爬取豆瓣前一百電影

    用python爬取豆瓣前一百電影

    大家好,本篇文章主要講的是用python爬取豆瓣前一百電影,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-01-01
  • 8行代碼實現(xiàn)Python文件去重

    8行代碼實現(xiàn)Python文件去重

    本文主要介紹了Python文件去重,所以就想使用Python自動化解決,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • Python堆棧的具體使用

    Python堆棧的具體使用

    本文主要介紹了Python堆棧的具體使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-11-11
  • python貪吃蛇游戲代碼

    python貪吃蛇游戲代碼

    這篇文章主要為大家詳細(xì)介紹了python貪吃蛇游戲代碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • Python GUI編程 文本彈窗的實例

    Python GUI編程 文本彈窗的實例

    今天小編就為大家分享一篇Python GUI編程 文本彈窗的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-06-06
  • django實現(xiàn)HttpResponse返回json數(shù)據(jù)為中文

    django實現(xiàn)HttpResponse返回json數(shù)據(jù)為中文

    這篇文章主要介紹了django實現(xiàn)HttpResponse返回json數(shù)據(jù)為中文,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-03-03

最新評論