int 和 float 資料型別都是在儲存數字資料時使用的,搭配的運算字要特別注意的是除號有分 // 和 /。
例子:
x = 14
y = 3
print(x/y) # 結果會是 4.666666666666667
print(x//y) # 結果會是 4
注: // 會是無條件捨棄小數位的值。
bool 型別的值只有 False, True這兩種值。
注1: 不要跟str的 "False" 和 "True" 搞混。沒有單引號或雙引號包起來的字串值。
注2: int和float的變數值是0的話,就當成是False。非0的話就當成是True。
例子:
a = 0
if a:
print("True")
else:
print("False")
# 結果會是印出False
注3: str的變數值若是空字串 ("") 的話,就當成是False。非空的字串就當成是True。
例子:
txt = ""
if txt:
print("True")
else:
print("False")
# 結果會印出False
基本原則:由 input( ) 函式取得的值一律是str的型別,若要當成是數字型別來操作的話需要以eval( ), int( ), float( )等轉換函式處理過才能當成是數字來處理。
例子:
aa = int(input("please input the price:"))
please input the price:100
bb = aa * 0.6
print(bb) # 結果會印出 60.0
type(aa) # 結果會印出 <class 'int'>
type(bb) # 結果會印出 <class 'float'>
aa = input("please input the price:")
please input the price:100
bb = aa * 0.6 # 結果會印出如下的Error message, 因為str型別無法與float型別作運算
Traceback (most recent call last):
File "<pyshell#33>", line 1, in <module>
bb = aa * 0.6
TypeError: can't multiply sequence by non-int of type 'float'
參考連結: https://docs.python.org/3/reference/expressions.html#operator-precedence
注: 基本上是由左到右的順序來處理, 但是, 需要注要各別運算子在同一行時,有其先後順序,這時候就要先以高優先的運算子先處理。
括號"( ), [ ], { }" > 指數"**" > 正負號 "+, -, ~" > 乘除 "*, /, //, %" > 加減 "+, -" > bit shift " >>, <<" > bit operation " &, |, ^"