常量和表達式
我們可以使用python來進行一些+ - * / %的一些運算
print(1 + 2 - 3)
print(1 + 2 * 3)
print(1 + 2 / 3)
python中的運算規則與數學當中一致,先乘除后加減,有括號的先計算括號里面的。
形如 1 + 2 - 3 這樣是算式, 在編程語言中稱為 表達式, 算式的運算結果, 稱為 表達式的返回值。
其中 1, 2, 3 這種稱為 字面值常量, + - * / 這種稱為 運算符 或者 操作符。
需要值得注意的是:在python中,2 / 3 == 0.6666....,而不是0,在C/C++,java中,整數除以整數的結果還是整數,并且會把小數部分舍棄。
而可能又有人出現疑問,為什么 1 + 2/3的結果是1.666666...5而不是1.666666....7,是因為在編程運算中,一般沒有“四舍五入”這樣的規則,在IEEE754標準下,在內存中表示浮點數的時候,可能會出現微小的誤差。
變量
變量可以被認為是一塊能夠容納數據的空間。
變量命名規則
1.變量命名必須由數字,字母,下劃線構成,不能包含其他特殊符號
2.數字不能作為開頭
3.變量名不能和Python的‘關鍵字’重復
4.變量名大小寫敏感. num 和 Num 是兩個不同的變量名
非必須規則:變量名使用有描述性的單詞來表示, 盡量表達出變量的作用.
變量的類型
變量里面存儲的不僅僅是數字, 還可以存儲其它種類的數據. 為了區分不同種類的數據, 我們引入了 "類型" 這樣的概念。
python中變量的類型,不需要在定義變量的時候顯式聲明而是依靠初始化語句,根據初始化的值的類型進行確定的。
(1)整數
a = 10
print(type(a))
Python 的 int 類型變量, 表示的數據范圍是沒有上限的. 只要內存足夠 大, 理論上就可以表示無限大小的數據,因此在python中就沒有long這樣的類型了。
(2)浮點數
b = 0.3
print(type(b))
python和 C++ / Java 等語言不同, Python 的小數只有 float 一種類型, 沒有 double 類型. 但是實際上 Python 的 float 就相當于 C++ / Java 的 double, 表示雙精度浮點數。
一個二進制位,稱為一個bit,8個bit放在一起就是一個字節。
(3)字符串
e = 'h'
print(type(e))
c='hell0'
print(type(c))
?
使用 ' ' 或者 " " 引起來的, 稱為 字符串. 可以用來表示文本
Python和C/C++,不同的是,只有字符串類型,因此單個字符,也是字符串類型。
如果字符串里包含了雙引號,我們就用單引號引起來,反之則用雙引號引起來,如果既包含雙引號又包含單引號,就使用三引號'''? ?"""括起來。
(4)布爾
布爾類型是一個特殊的類型, 取值只有兩種, True (真) 和 False (假)。
多類型的意義
(1) 類型決定了數據在內存中占據多大空間
(2) 類型其實約定了能對這個變量做什么樣的操作.
int/float類型能夠進行 + - * /等操作,但不能使用len
str類型能進行+ 操作,但不能進行- * /等,可以使用len
動態類型和靜態類型
動態類型:運行過程中,變量的類型可能會發生改變。
靜態類型:程序運行過程中,變量的類型始終不變。
輸入輸出
num = input("請輸入一個整數:")
print(type(num))
?
值得注意的是:input返回的值是str類型。
如果我們要將得到的input返回值進行運算,就需要將它轉換成int類型。int()。
a = input('請輸入第一個整數: ')
b = input('請輸入第二個整數: ')
a = int(a)
b = int(b)
print(f'a + b = {a + b}')
?
print(f 'a = {a}') ,這個語法叫做格式化字符串,f-string此處的f表示“format”,此時就可以使用{ }這樣的語法,往字符串里嵌入變量或者表達式。
運算符
(1)算術運算符
像 + - * / % ** // 這種進行算術運算的運算符, 稱為算術運算符。
我們重點介紹一下//運算符。
// 地板除法(取整除法),會針對計算的結果進行“向下取整”。
print(7//2)
print(-7//2)
?
(2)關系運算符
像 < >= == != 這一系列的運算符稱為 關系運算符, 它們是在比較操作數之間的關系。
1.關系運算符對應的表達式,值是布爾類型
表達式符合要求,為真
不符合要求,為假
2.關系運算符不光可以針對數字進行比較,還能夠比較“字符串”
字典序!先看首字母,首字母越靠前就越小。小寫字母大于大寫字母。也可以看相關的ASII碼值。a的值為:97,A的值為:65。首字母相等就依次向后比較。
(3)邏輯運算符
and 并且 兩側操作數均為True,最終結果也為True,否則為False。(一假則假)
or 或者 兩側操作數均為False,最終結果為False,否則為True。(一真則真)
not 邏輯取反 操作數本身為False,結果為True。操作數本身為True,結果為False。
短路求值
對于and操作來說,如果左側表達式為False,那么結果也就為False,右側表達式就不必求值。
對于or操作來說,如果左側表達式為True,那么結果也就為True,右側表達式就不必求值。
總結:
在Python中,報錯通常有兩種情況
1.語法錯誤,在程序運行前,Python解釋器,就能把錯誤識別出來。
2.運行錯誤,在程序運行之前,識別不了的代碼,必須要執行到相應代碼,才能發現問題。
如果把布爾類型的值和整數進行算術運算,此時就會把True當作1,False當作0。
在Python中,一個語句寫完了之后,可以加上分號,也可以不加。通常情況下都是不加的。
如果把多個語句寫到了同一行,這個時候語句就要加上分號。
?
?
?