關於 / 和 // 以及 :
1 a=input("a=") 2 b=input("b=") 3 print(a//b)
報錯,因為python輸入默認為str,所以要進行簡單的修改:
1 a=int(input("a=")) 2 b=int(input("b=")) 3 print(a//b)
這下就可以運行了,輸入a=12,b=3,輸出結果為4。
a=int(input("a=")) b=int(input("b=")) print(a/b)
輸入a=12,b=3,輸出結果為4.0。
這是因為商運算符 // 產生整數商,而精確除法運算符 / 總是產生浮點數。
當一個操作數是int而另一個是float時會發生什么呢?python如何執行這種話運算呢?
答:在執行運算之前,較不通用的類型(int)會暫時自動轉換為較通用的類型(float)。
舉例:比如我們計算一個圓形的面積
1 radius=input("radius=") 2 print(radius) 3 print(radius**2*3.14)
蕪湖,這樣肯定是報錯的,因為這里radius的類型沒有進行轉換,是個str,接着進行簡單的轉換:
1 radius=int(input("radius=")) 2 print(radius) 3 print(radius**2*3.14) 4 5 結果: 6 radius=3 7 3 8 28.26
答案就出來咯,這樣寫能運行,是因為python在進行混合模式運算時,自動將int轉換float了,更嚴謹些的話,應進行以下的代碼:
1 radius=input("radius=") 2 print(radius) 3 radius=float(radius) 4 print(radius**2*3.14)
這樣就可以啦,結果運算為:
1 radius=3 2 3 3 28.26