3. 運算符python
3.1 算數運算符程序員
是完成基本的算術運算使用的符號,用來處理四則運算,而「+」和「*」還能夠用來處理字符串。面試
3.2 比較(關係)運算符算法
3.3 賦值運算符編程
3.4 身份運算符數組
身份運算符比較兩個對象的內存位置。經常使用的有兩個身份運算符,以下所述:安全
辨析dom
3.5 成員運算符python2.7
Python成員運算符測試給定值是否爲序列中的成員。 有兩個成員運算符,以下所述:編程語言
3.6 邏輯運算符
3.7 運算符優先級
Python 的解釋器有多大?
# 1. 確認解釋器所在位置 $ which python # 2. 查看 python 文件大小(只是一個軟連接) $ ls -lh /usr/bin/python # 3. 查看具體文件大小 $ ls -lh /usr/bin/python2.7
4. 變量
4.1 變量定義
變量名 = 值
使用交互式方式,若是要查看變量內容,直接輸入變量名便可,不須要使用 print 函數
使用解釋器執行,若是要輸出變量的內容,必需要要使用 print 函數
4.2 變量的類型
提示:在 Python 2.x 中,整數 根據保存數值的長度還分爲:
In [1]: type(name)
<補>不一樣類型變量之間的計算
<補>從鍵盤獲取輸入信息:input
字符串變量 = input("提示信息:")
<補>類型轉換函數
price = float(input("請輸入價格:"))
<補>格式化輸出:print
print("格式化字符串" % 變量1) print("格式化字符串" % (變量1, 變量2...))
4.3 變量的命名
4.3.1 標識符和關鍵字
標示符就是程序員定義的 變量名、函數名
關鍵字 就是在 Python 內部已經使用的標識符
In [1]: import keyword In [2]: print(keyword.kwlist)
4.3.2 變量的命名規則
命名規則 能夠被視爲一種 慣例,並沒有絕對與強制
目的是爲了 增長代碼的識別和可讀性
注意 Python 中的 標識符 是 區分大小寫的
固然,還有駝峯命名法:
小駝峯式命名法:第一個單詞以小寫字母開始,後續單詞的首字母大寫,例如:firstName、lastName。
大駝峯式命名法,每個單詞的首字母都採用大寫字母,例如:FirstName、LastName、CamelCase 。
4.4 高級變量類型
在 Python 中,全部 非數字型變量 都支持如下特色:
1. 都是一個 序列 sequence,也能夠理解爲 容器
2. 取值 []
3. 遍歷 for in
4. 計算長度len、最大/最小值max/min、比較、刪除del
5. 連接 + 和 重複 *
6. 切片
4.4.1 列表(list)
索引 就是數據在 列表 中的位置編號,索引 又能夠被稱爲 下標
注意:從列表中取值時,若是 超出索引範圍,程序會報錯
name_list = ["zhangsan", "lisi", "wangwu"]
<補>del 關鍵字
In [1]: l = [1,2,3,4] In [2]: del l[1] In [3]: l[1] Out[3]: 3
在平常開發中,要從列表刪除數據,建議 使用列表提供的方法
<補>函數與方法
函數名(參數)
函數須要死記硬背
對象.方法名(參數)
在變量後面輸入 .,而後選擇針對這個變量要執行的操做,記憶起來比函數要簡單不少
<補>循環遍歷
# for 循環內部使用的變量 in 列表 for name in name_list: 循環內部針對列表元素進行操做 print(name)
for-in循環流程圖
4.4.2 元組(tuple)
info_tuple = ("zhangsan", 18, 1.75)
建立空元組:
info_tuple = ()
元組中 只包含一個元素 時,須要 在元素後面添加逗號:
info_tuple = (50, )
元組示意圖
<補>元組和列表之間的轉換
list(元組)
tuple(列表)
4.4.3 字典(dict)
dict(字典) 是 除列表之外 Python 之中 最靈活 的數據類型。
字典一樣能夠用來 存儲多個數據,一般用於存儲 描述一個 物體 的相關信息
xiaoming = {"name": "小明", "age": 18, "gender": True, "height": 1.75}
# for 循環內部使用的 `key 的變量` in 字典 for k in xiaoming: print("%s: %s" % (k, xiaoming[k]))
提示:在實際開發中,因爲字典中每個鍵值對保存數據的類型是不一樣的,因此針對字典的循環遍歷需求並非不少
card_list = [{"name": "張三",
"qq": "12345",
"phone": "110"},
{"name": "李四",
"qq": "54321",
"phone": "10086"}
]
4.4.4 字符串(str)
大多數編程語言都是用 " 來定義字符串
string = "Hello Python" for c in string: print(c)
提示:在 python 中對字符串操做,內置提供的方法足夠多,使得在開發時,可以針對字符串進行更加靈活的操做!應對更多的開發需求!
1) 判斷類型 - 9
2) 查找和替換 - 7
3) 大小寫轉換 - 5
4) 文本對齊 - 3
5) 去除空白字符 - 3
6) 拆分和鏈接 - 5
<補>字符串的切片
字符串[開始索引:結束索引:步長]
注意:
<補>索引的順序和倒序
num_str = "0123456789" # 1. 截取從 2 ~ 5 位置 的字符串 print(num_str[2:6]) # 2. 截取從 2 ~ `末尾` 的字符串 print(num_str[2:]) # 3. 截取從 `開始` ~ 5 位置 的字符串 print(num_str[:6]) # 4. 截取完整的字符串 print(num_str[:]) # 5. 從開始位置,每隔一個字符截取字符串 print(num_str[::2]) # 6. 從索引 1 開始,每隔一個取一個 print(num_str[1::2]) # 倒序切片 # -1 表示倒數第一個字符 print(num_str[-1]) # 7. 截取從 2 ~ `末尾 - 1` 的字符串 print(num_str[2:-1]) # 8. 截取字符串末尾兩個字符 print(num_str[-2:]) # 9. 字符串的逆序(面試題) print(num_str[::-1])
4.4.5 公共方法和變量的高級應用
4.4.5.1 內置函數
Python 包含了如下內置函數:
注意:字符串 比較符合如下規則: "0" < "A" < "a"。
4.4.5.2 切片
4.4.5.3 運算符
注意
4.4.5.4 內置函數完整的 for 循環語法
for 變量 in 集合: 循環體代碼 else: 沒有經過 break 退出循環,循環結束後,會執行的代碼
應用場景:
4.4.5.5 變量的引用
在 Python 中:變量 和 數據 是分開存儲的,數據 保存在內存中的一個位置,變量 中保存着數據在內存中的地址,就叫作 引用,使用 id() 函數能夠查看變量中保存數據所在的 內存地址。
注意:若是變量已經被定義,當給一個變量賦值的時候,本質上是 修改了數據的引用
在 Python 中,變量的名字相似於 便籤紙 貼在 數據 上:
在 Python 中,函數的 實參/返回值 都是是靠 引用 來傳遞來的
結果
結果
4.4.5.6 可變和不可變類型
注意:字典的 key 只能使用不可變類型的數據
注意
<補>哈希 (hash)
4.4.5.7 局部變量和全局變量
提示:在其餘的開發語言中,大多 不推薦使用全局變量 —— 可變範圍太大,致使程序很差維護!
注意:函數執行時,須要處理變量時 會:
注意:函數不能直接修改全局變量的引用,若是要修改,必需要用global聲明該變量是全局變量。
注意:爲了不局部變量和全局變量出現混淆,在定義全局變量時,有些公司會有一些開發要求,例如:全局變量名前應該增長 g_ 或者 gl_ 的前綴。
5. 判斷(分支)
5.1 if 語句語法
一、if 判斷語句基本語法:
if 要判斷的條件: 條件成立時,要作的事情 ……
注意:代碼的縮進爲一個 tab 鍵,或者 4 個空格 —— 建議使用空格
二、若是須要在 不知足條件的時候,作某些事情,該如何作呢?
if 要判斷的條件: 條件成立時,要作的事情 …… else: 條件不成立時,要作的事情 ……
條件1 and 條件2 :兩個條件同時知足,返回 True 條件1 or 條件2:兩個條件只要有一個知足,返回 True not 條件:非,不是
三、若是但願 再增長一些條件,條件不一樣,須要執行的代碼也不一樣 時,就可使用 elif :
if 條件1: 條件1知足執行的代碼 …… elif 條件2: 條件2知足時,執行的代碼 …… elif 條件3: 條件3知足時,執行的代碼 …… else: 以上條件都不知足時,執行的代碼 ……
注意
四、在開發中,使用 if 進行條件判斷,若是但願 在條件成立的執行語句中 再 增長條件判斷,就可使用 if 的嵌套:
if 條件 1: 條件 1 知足執行的代碼 …… if 條件 1 基礎上的條件 2: 條件 2 知足時,執行的代碼 …… # 條件 2 不知足的處理 else: 條件 2 不知足時,執行的代碼 # 條件 1 不知足的處理 else: 條件1 不知足時,執行的代碼 ……
5.2 if語句的應用
5.2.1 隨機數的處理
import random
random.randint(12, 20) # 生成的隨機數n: 12 <= n <= 20 random.randint(20, 20) # 結果永遠是 20 random.randint(20, 10) # 該語句是錯誤的,下限必須小於上限
5.2.2 石頭剪刀布
# 導入隨機工具包 # 注意:在導入工具包的時候,應該將導入的語句,放在文件的頂部 # 由於,這樣能夠方便下方的代碼,在任何須要的時候,使用工具包中的工具 import random # 從控制檯輸入要出的拳 —— 石頭(1)/剪刀(2)/布(3) player = int(input("請輸入您要出的拳 石頭(1)/剪刀(2)/布(3):")) # 電腦 隨機 出拳 —— 先假定電腦只會出石頭,完成總體代碼功能 computer = random.randint(1, 3) print("玩家選擇的拳頭是 %d - 電腦出的拳是 %d" % (player, computer)) # 比較勝負 # 1 石頭 勝 剪刀 # 2 剪刀 勝 布 # 3 布 勝 石頭 # if (() # or () # or ()): if ((player == 1 and computer == 2) or (player == 2 and computer == 3) or (player == 3 and computer == 1)): print("歐耶,電腦弱爆了!") # 平局 elif player == computer: print("真是心有靈犀啊,再來一盤") # 其餘的狀況就是電腦獲勝 else: print("不服氣,咱們決戰到天明!")
我剛整理了一套2018最新的0基礎入門和進階教程,無私分享,加Python學習qun :227-435-450便可獲取,內附:開發工具和安裝包,以及系統學習路線圖
6. 循環
6.1 程序執行的三大流程
在程序開發中,一共有三種流程方式:
程序執行的三大流程
6.2 while 循環基本使用
while 語句基本語法:
初始條件設置 —— 一般是重複執行的 計數器 while 條件(判斷 計數器 是否達到 目標次數): 條件知足時,作的事情1 條件知足時,作的事情2 條件知足時,作的事情3 ...(省略)... 處理條件(計數器 + 1)
因爲程序員的緣由,忘記 在循環內部 修改循環的判斷條件,致使循環持續執行,程序將陷入死循環而沒法終止!
計數器 +1 :能夠經過賦值運算符簡化代碼的編寫。
常見的計數方法有兩種,能夠分別稱爲:
所以,你們在編寫程序時,應該儘可能養成習慣:除非需求的特殊要求,不然 循環 的計數都從 0 開始
6.3 break 和 continue
break 和 continue 是專門在循環中使用的關鍵字
6.4 while 循環嵌套
while 條件 1: 條件知足時,作的事情1 條件知足時,作的事情2 條件知足時,作的事情3 ...(省略)... while 條件 2: 條件知足時,作的事情1 條件知足時,作的事情2 條件知足時,作的事情3 ...(省略)... 處理條件 2 處理條件 1
示例:
""" 打印 9 行小星星: * ** *** **** ***** ****** ******* ******** ********* """ # 定義起始行 row = 1 # 最大打印 9 行 while row <= 9: # 定義起始列 col = 1 # 最大打印 row 列 while col <= row: # end = "",表示輸出結束後,不換行 # " " 能夠在控制檯輸出一個製表符,協助在輸出文本時對齊 print("%d * %d = %d" % (col, row, row * col), end=" ") # 列數 + 1 col += 1 # 一行打印完成的換行 print("") # 行數 + 1 row += 1
<補>字符串中的轉義字符
製表符 的功能是在不使用表格的狀況下在 垂直方向 按列對齊文本