運算符與分支結構 運算符 賦值運算符 用'='表示,左邊只能是變數 算術運算符 +、-、*:加、減、乘 /:除法運算,結果是浮點型 //:除法運算,結果是整型 %:求餘 **:求冪 複合運算符 +=、-=、*=、/=、//=、%=、**= 示例:a = a+b 等價於 a += b 關係運算符 >、 ...
運算符
-
賦值運算符
-
用'='表示,左邊只能是變數
-
-
算術運算符
-
+、-、*:加、減、乘
-
/:除法運算,結果是浮點型
-
//:除法運算,結果是整型
-
%:求餘
-
**:求冪
-
-
複合運算符
-
+=、-=、*=、/=、//=、%=、**=
-
示例:
a = a+b 等價於 a += b
-
-
關係運算符
-
>、<、==、>=、<=、!=
-
表達式:由操作數和運算符構成的式子
-
關係表達式:由操作數和關係運算符構成的式子
-
關係表達式是有值的:符合數學邏輯值為真(True),不符合數學邏輯值為假(False)
-
-
邏輯運算符
-
與(and):兩邊的表達式同時為真,結果才為真
a = 20 print(a >= 0 and a <= 100) # python特有的寫法 print(0 <= a <= 100) b = 10 print(b%3==0 and b%5==0)
-
或(or):兩邊的表達式一個為真,結果就為真
# 判斷閏年 year = int(input('請輸入一個年份:')) print((year%4==0 and year%100!=0) or (year%400==0))
-
非(not):用於取反表達式,真變假,假變真
-
邏輯非經常伴隨著隱式類型轉換
-
很多時候是為簡化表達式的書寫
-
-
-
成員運算符
-
in、not in:判斷一個變數是否在/不在另一個變數中
-
一般用在字元串、列表、元組、集合、字典等成員的判斷
-
示例:
lt = [1, 2, 3] print('in:', 8 in lt) print('not in:', 8 not in lt) d = {'name': 'xiaoming', 'age': 20} # 字典:判斷鍵是否存在 print('name' in d)
-
-
位運算符(瞭解)
-
&:按位與,對應的數據位同時為1,結果才為1
0b1010 0b1100 & ----------- 0b1000
-
|:按位或,對應的數據位一個為1,結果就為1
-
^:按位異或,對應的數據位相同時值為0,不同時值為1
-
~:按位取反,對應的數據位,1變0,0變1
-
<<:按位左移,左移一位相當於乘2
-
》:按位右移,右移一位相當於除2
-
-
優先順序與結合性
-
python語法中沒有明確規定運算符的優先順序與結合性,即使提供了明確說明你也不一定能記住
-
建議:使用時不用刻意記錄運算符的優先順序與結合性問題,實在不行添加()即可解決
-
流程式控制制
-
說明:
-
按照程式的執行流程,程式可以分為三種結構:順序結構、分支結構、迴圈結構
-
順序結構:就是代碼按照從上到下的順序依次執行,沒有語法要求
-
代碼層次:python中代碼塊不適於大括弧區分,而是使用縮進來完成
-
-
分支結構(if-else)
-
格式1:適合於選擇執行的情況
if 表達式: 語句塊
執行流程:當程式執行到if語句時,首先判斷表達式的真假。若表達式的值為真,則執行對應的語句塊;若表達式的值為假,則跳過語句塊,之後後面的內容
-
格式2:適合於解決生活中非此即彼的問題
if 表達式: 語句塊1 else: 語句塊2
執行流程:當程式執行到if-else語句時,首先判斷表達式的真假。若表達式的值為,則執行語句塊1;若表達式的值為假,則執行else後面的語句塊(語句塊2)。
-
格式3:適合於解決生活中多種選擇的問題
if 表達式1: 語句塊1 elif 表達式2: 語句塊2 。。。 else: 語句塊
-
elif的個數沒有限制
-
else可以省略不寫
-
每一部分的語句塊都不可能同時執行,最多執行一個
-
數據類型
-
字元串
s = 'hello' # 字元串的重疊 s = 'hello' * 2 # 字元串的拼接 s = 'hello' + 'world' print(s) # 統計字元個數 print(len(s)) # 提取單個字元,通過下表提取 # 從開頭提取,下表從0開始 print(s[0]) # 從結尾提取,下表從-1開始 print(s[-1]) # 切片:s[開始:結束:步進] s = 'abcdefg' # 包括起始下表,不包括結束下表,預設的步進值為1 print(s[0:3]) print(s[2:4]) # 當一邊沒有指定就提取到該邊的邊界 print(s[:4]) print(s[3:]) print(s[1:-2]) print(s[-4:]) print(s[:]) print(s[::2]) # 倒序提取 print(s[::])-1 # 格式化 # %s:字元串 # %d:整數 # %f:小數 # %c:單個字元 print('俺叫%s,暗戀%s,她今年%d歲了' % (name, like, age)) print('我是{},今年{},暗戀{}'.format(name, age, like)) print('我是{2},今年{1},暗戀{0}'.format(name, age, like)) print('我是{nm},今年{a},暗戀{l}'.format(nm=name, a=age, l=like))
-
列表
lt = [1, 2, 3, 4, 5] print(lt[0]) print(lt[-1]) print(lt[1:4]) print(len(lt)) # 修改 lt[0] = 100 # 添加的對象在列表是一個元素 lt.append(250) # lt.append(['hello', 'world']) # 將可迭代對象的每個元素挨個添加 lt.extend(['hello', 'world']) # 在指定位置插入元素 lt.insert(3, 'good') # 根據下表刪除元素 del lt[0] # 根據值刪除元素 lt.remove(250) # 刪除並返回指定下表的元素,預設最後一個元素 last = lt.pop(4) print(last) # 查詢索引號 lt = [1, 2, 3, 1, 1] print(lt.index(1)) # 逆序 # lt.reverse() # 統計指定對象出現的次數 print(lt.count(1)) lt = [1, 5, 7, 3] # 排序,預設升序排序,可以通過reverse指定是否倒序排序 lt.sort(reverse=True) print(lt)
ASCII
-
說明:美國信息交換標準代碼,其實就是給每個字元使用一個整數表示
-
函數:
-
ord:根據字元獲取ASCII碼
-
chr:根據ASCII碼轉換成字元
-
練習
-
從終端輸入一個表示年份的整數,判斷是否是閏年,是就列印xxx年是閏年,不是列印xxx年不是閏年
-
輸入兩個整數,列印較大值
-
輸入三個整數,按照從小到大的順序列印
-
輸入一個三位整數,順序列印個位、十位、百位上的數
-
輸入一個整數,判斷其是否既是3的倍數,又是5的倍數
-