2017-07-30 117 views
-11

的問題是計算在給定的句子元音數量之間的差異..蟒蛇:是什麼+ = 1 = + 1

這是我的代碼:

sentence = input("enter sentence: ") 
count =0 
for i in sentence: 
    if i in "aeiouAEIOU": 
     count +=1 
print(count) 

我輸入的是:阿努拉格
輸出爲:3(這是正確答案)

但在下面的代碼我提出像 「計數= + 1」 .. 見下面的代碼:

sentence = input("enter sentence: ") 
count =0 
for i in sentence: 
    if i in "aeiouAEIOU": 
     count =+1 
print(count) 

所以,在這裏我 輸入:阿努拉格
輸出爲:1

請讓我知道它爲什麼要來這個樣子。

+3

爲什麼你期望他們是一樣的嗎? '+ = 1'表示**遞增**,而'= + 1'等於'= + 1',所以你給它分配'1'。 –

+1

很確定有這樣的地方有一個愚蠢的地方。 –

+3

這個問題是否真的需要4個答案? – pingul

回答

0

count += 1基本上是指count = count + 1。因爲在你的第一段代碼有兩個i的,添加一個到,你會得到3。因此,+= 1count = count + 1較短:

count += 1  # Same thing! 
count = count + 1 

count =+1字面意思count = +1這基本上是count = 1。這是因爲count =+ 1只是分配+1來計數,而不是增加它。

count =+ 1  # Same thing but different from above 
count = +1 
count = 1 
+0

謝謝,明白了.. – anurag

2

以下

count += 1 

相當於

count = count + 1 

或換句話說由1遞增變量count在另一方面,下面的

count =+ 1 

可以rewri tten as

count = +1 

並且僅僅是對變量count的正值1的賦值。因此,在代碼的第二版本結束時,count始終爲1,因爲每次到達該語句時,它總是會進行相同的分配。

0

運營商x += y可以被解釋爲等於x = x + y但賦值運算符時將其交換到x =+ y你確實有2個運營商:分配和一元加這等於x = (+y)這是一樣的x = y

概括起來:

  • x += y等於x = x + y+=一個運營商
  • x =+ y等於x = (+y)等於x = y=+兩地分居運營商