寫到這個主題,我就不得不提我所遇到最震撼的一件事情:Python的運算方式,就先回朔到昨天的鐵人挑戰文章內容,我在內容中有提到「Python的參數存放不用宣告存放內容的種類」,可是,就是因為這個點,導致運算的時候會需要更多的設定才能達到自己所想要的架構。
先設定一個情境好了,假若我要做一個簡單的加法運算,就以3+5
來做實驗,下面就直接用Java來示範:
public class Addition_one{
public static void main(String args[]){
System.out.print(3+5);
}
}
而照著上面的程式碼,輸出的結果便是8
,那如果是Python呢?就來實做看看吧:
print(3 + 5)
輸出的結果也會是8
,那這時候就不禁會讓人懷疑「為什麼我會需要這樣說明呢?」,這個時候就會需要用另一個情境來做說明了,這個時候就需要用兩個參數各自設定一個值,然後再用另一個參數來存放前面兩個參數值相加之後的結果,那就讓我們來看一下在Java的狀況吧:
public class Addition_two{
public static void main(String args[]){
int value_1 = 3;
int value_2 = 5;
int result_value = value_1 + value_2;
System.out.print(result_value);
}
}
此刻,輸出的結果也同樣會是8
,那這個時候若直接將寫Java的想法直接平移到Python上面會不會也符合預期呢:
value_1 = 3
value_2 = 5
result_value = value_1 + value_2
print(result_value)
雖然這樣子的輸出結果也一樣符合預期是8
,但是這個結果是在Python 3的時候會有這樣的反應,那如果說轉變到Python 2的時候,一切又變得不一樣了:
value_1 = 3
value_2 = 5
result_value = value_1 + value_2
print(result_value)
此刻,他的輸出結果會變成是純粹的將上方程式碼中的value_1
與value_2
的字串進行串接,變成是35
,而要達到3+5=8
的目的,就必須要像下方的程式碼這樣做:
value_1 = 3
value_2 = 5
result_value = int(value_1) + int(value_2)
print(result_value)
如此一來,結果也就一樣是符合事實也符合預期的8
了。