2016-03-08 16 views
-3

什麼時候應該使用符號'==',何時只有符號'='就夠了? Python中的符號'=='是什麼意思?python中的符號「=」和「==」是什麼意思?

我在2周前開始編寫python代碼,這兩個符號有時會讓我困惑。有幾次,當我使用'='時,我會收到一條錯誤消息。在我將其更改爲'=='後,再沒有錯誤消息。看起來'=='可以用於'='工作的任何情況。這是真的嗎?你們中的任何一個人能解釋使用這兩個符號的原理嗎?

非常感謝您的幫助!

+4

「=」是一個賦值操作符「==」是比較運算符。 – MarkyPython

+1

你的課本/教程應該涵蓋這個非常重要的信息。你正在使用哪本書或教程? –

+1

這個基本問題更適合語言教程。你不應該問這些基本的問題。 –

回答

0

不同的是,name = value告訴的Python是name現在等於value。另一方面,name == value詢問 Python是否name等於value。有些地方你不能告訴 Python什麼name等於,但你可以問。例如,如果你想打印:

>>> x = 4 
>>> print x = 4 
    File "<stdin>", line 1 
    print x = 4 
     ^
SyntaxError: invalid syntax 

那是因爲我們打印的東西,但x = 4沒有價值。這是有價值的x,所以我們想知道x是否等於4;我們不想告訴Python它是。在這種情況下,你需要雙=

>>> x = 4 
>>> print x == 4 
True 

在,你可以使用=任何地方,你可以使用==;但它會有不同的含義。例如:

>>> x = 4 
>>> print x 
4 
>>> x == 4 
True 

x = 4告訴Python x等於4。沒有其他顯示,因爲它只是一個命令。 x == 4另一方面是詢問如果x等於4。當我們問一個問題時,Python shell會告訴我們答案,所以它打印True

0

正如MarkyPython所說的那樣。分配意味着您使用=將右側的值分配給左側的變量aa=10表示a從此處等於10

表達式a==10測試變量a是否等於10.此類測試的結果爲布爾值(True或False)。這些測試通常用於if...then的決定。

a=10   # a is assigned the value of 10, and per duck-typing the type integer 
print a   # --> 10 
print type(a) # --> int 

print a==10  # --> True 
print a==11  # --> False 

if a==10:   # if the condition is True 
    do something 
else: 
    do something else 
1

簡單的答案是=是賦值運算符,==是一個比較操作。你說錯了==可以在=工作的任何情況下使用。例如,如果我想創建變量my_string並將其設置爲"something",我將使用=運算符。

my_string = "something" 

使用操作者分配變量的一個對象。

如果我想比較兩個字符串(或其他數據類型)是這樣的:

if "something" == "nothing": 
    #perform a function 

比較兩個字符串。

但是,如果我嘗試分配一個變量與==運算符爲變量的初始分配它將無法正常工作。如果它已經被分配了,它將會起作用,但它不會達到你期望的。例如:

my_string == "something" 

將引發錯誤名稱錯誤。

同樣,如果你試圖比較兩個字符串(或其它數據類型)與=操作是這樣的:

if "something" = "nothing": 
    #perform a function 

這將引發一個語法錯誤。

我希望這可以幫助你理解這個概念。快樂編程!

+0

my_string ==「something」'does * not * throw an error。你測試過了嗎? – zondo

+0

是的,它確實會拋出一個錯誤。 – MarkyPython

+0

在什麼代碼?我還沒有找到任何事情。 – zondo

1

=分配運營商,它是用來分配東西給一個變量:

A = 67 #this is called assignment. With this, A has a value of 67 

==比較運營商,它是用來比較一個項目到另一個項目看看他們是否平等。它導致真正

A == 65 #Is A equal to 65? This does NOT assign A to 65. If A was previously assigned as 67, it still retains its 67 value 
1

==是一個比較運算,同時將=值賦給所述可變。

您可以使用==,看看是否有兩個項目,只要它們是相同的類型是相同的:

if a == 2: # Compares whether a is equal to 2 
    print a 

現在,這裏的東西。如果你是比較任意兩個項目,如這些,一個錯誤會彈出:

  • 字符串整數

  • 整數與字符串

  • 字符串和浮

  • float和string

浮筒和我nteger可以比較,因爲它們是數字,但通常不相等,除非float基本上是整數,但.0添加到結尾。當使用==時,如果兩個項目相同,則返回True。否則,它將返回False

您可以使用=爲變量賦值。使用==將不執行任何操作或拋出錯誤(如果該變量未定義)。例如,你想要的變量hi擁有的2的值。然後使用=

hi = 2 

現在hi等於2.您可以用操作組合=+-假設變量是一個整數或浮動:

hi += 1 
hi -= 1 

現在通過使用+=-=像上面,變量必須已經被定義爲這些運營商將直接改變變量的值。基本上,他們是這樣的:

hi += 1 # is the same as hi = hi + 1 
hi -= 1 # is the same as hi = hi - 1 

所以在最後,它們是不同的:

  • ==是一個比較操作符:返回True是兩個項相等,則返回False如果沒有,拋出錯誤,如果用於定義之前分配變量,如果兩個項目不兼容

  • =是一個賦值運算符:將分配值,如字符串或數字s變量。當變量的值是一個數字並且已經定義時,可以用於+=等形式。

它們可以使用相同的時間的唯一方法是,它們可以在字符串中使用:

"hi = hello" 
"2 == 3 probably returns False don't you think?"