標示符就是程序員定義的 變量名、函數名python
名字 須要有 見名知義 的效果,見下圖:程序員
思考:下面的標示符哪些是正確的,哪些不正確爲何?web
fromNo12 from#12 my_Boolean my-Boolean Obj2 2ndObj myInt My_tExt _test test!32 haha(da)tt jack_rose jack&rose GUI G.U.I
Python
內部已經使用的標識符經過如下命令能夠查看 Python
中的關鍵字app
In [1]: import keyword In [2]: print(keyword.kwlist)
提示:關鍵字的學習及使用,會在後面的課程中不斷介紹dom
import
關鍵字 能夠導入一個 「工具包」svg在
Python
中不一樣的工具包,提供有不一樣的工具函數
命名規則 能夠被視爲一種 慣例,並沒有絕對與強制
目的是爲了 增長代碼的識別和可讀性工具
注意 Python
中的 標識符 是 區分大小寫的學習
=
的左右應該各保留一個空格Python
中,若是 變量名 須要由 二個 或 多個單詞 組成時,能夠按照如下方式命名
_
下劃線 鏈接first_name
、last_name
、qq_number
、qq_password
firstName
、lastName
FirstName
、LastName
、CamelCase
生活中的判斷幾乎是無所不在的,咱們天天都在作各類各樣的選擇,若是這樣?若是那樣?……ui
if 今天發工資: 先還信用卡的錢 if 有剩餘: 又能夠happy了,O(∩_∩)O哈哈~ else: 噢,no。。。還的等30天 else: 盼着發工資
正是由於有了判斷,才使得程序世界豐富多彩,充滿變化!
判斷語句 又被稱爲 「分支語句」,正是由於有了判斷,才讓程序有了不少的分支
在 Python
中,if 語句 就是用來進行判斷的,格式以下:
if 要判斷的條件: 條件成立時,要作的事情 ……
注意:代碼的縮進爲一個
tab
鍵,或者 4 個空格 —— 建議使用空格
- 在 Python 開發中,Tab 和空格不要混用!
咱們能夠把整個 if 語句當作一個完整的代碼塊
需求
# 1. 定義年齡變量 age = 18 # 2. 判斷是否滿 18 歲 # if 語句以及縮進部分的代碼是一個完整的代碼塊 if age >= 18: print("能夠進網吧嗨皮……") # 3. 思考!- 不管條件是否知足都會執行 print("這句代碼何時執行?")
注意:
if
語句以及縮進部分是一個 完整的代碼塊思考
在使用 if
判斷時,只能作到知足條件時要作的事情。那若是須要在 不知足條件的時候,作某些事情,該如何作呢?
答案
else
,格式以下:
if 要判斷的條件: 條件成立時,要作的事情 …… else: 條件不成立時,要作的事情 ……
注意:
if
和 else
語句以及各自的縮進部分共同是一個 完整的代碼塊需求
# 1. 輸入用戶年齡 age = int(input("今年多大了?")) # 2. 判斷是否滿 18 歲 # if 語句以及縮進部分的代碼是一個完整的語法塊 if age >= 18: print("能夠進網吧嗨皮……") else: print("你還沒長大,應該回家寫做業!") # 3. 思考!- 不管條件是否知足都會執行 print("這句代碼何時執行?")
and
條件1 and 條件2
True
False
條件 1 | 條件 2 | 結果 |
---|---|---|
成立 | 成立 | 成立 |
成立 | 不成立 | 不成立 |
不成立 | 成立 | 不成立 |
不成立 | 不成立 | 不成立 |
or
條件1 or 條件2
True
False
條件 1 | 條件 2 | 結果 |
---|---|---|
成立 | 成立 | 成立 |
成立 | 不成立 | 成立 |
不成立 | 成立 | 成立 |
不成立 | 不成立 | 不成立 |
not
not 條件
條件 | 結果 |
---|---|
成立 | 不成立 |
不成立 | 成立 |
age
,編寫代碼判斷年齡是否正確
python_score
、c_score
,編寫代碼判斷成績
is_employee
,編寫代碼判斷是不是本公司員工
答案 1:
# 練習1: 定義一個整數變量 age,編寫代碼判斷年齡是否正確 age = 100 # 要求人的年齡在 0-120 之間 if age >= 0 and age <= 120: print("年齡正確") else: print("年齡不正確")
答案 2:
# 練習2: 定義兩個整數變量 python_score、c_score,編寫代碼判斷成績 python_score = 50 c_score = 50 # 要求只要有一門成績 > 60 分就算合格 if python_score > 60 or c_score > 60: print("考試經過") else: print("再接再礪!")
答案 3:
# 練習3: 定義一個布爾型變量 `is_employee`,編寫代碼判斷是不是本公司員工 is_employee = True # 若是不是提示不容許入內 if not is_employee: print("非公勿內")
elif
if
能夠 判斷條件else
能夠處理 條件不成立 的狀況elif
if 條件1: 條件1知足執行的代碼 …… elif 條件2: 條件2知足時,執行的代碼 …… elif 條件3: 條件3知足時,執行的代碼 …… else: 以上條件都不知足時,執行的代碼 ……
if 條件1 and 條件2: 條件1知足 而且 條件2知足 執行的代碼 ……
注意
elif
和 else
都必須和 if
聯合使用,而不能單獨使用if
、elif
和 else
以及各自縮進的代碼,當作一個 完整的代碼塊需求
holiday_name
字符串變量記錄節日名稱holiday_name = "平安夜" if holiday_name == "情人節": print("買玫瑰") print("看電影") elif holiday_name == "平安夜": print("買蘋果") print("吃大餐") elif holiday_name == "生日": print("買蛋糕") else: print("天天都是節日啊……")
if
的嵌套elif 的應用場景是:同時 判斷 多個條件,全部的條件是 平級 的
if
進行條件判斷,若是但願 在條件成立的執行語句中 再 增長條件判斷,就可使用 if 的嵌套if 條件 1: 條件 1 知足執行的代碼 …… if 條件 1 基礎上的條件 2: 條件 2 知足時,執行的代碼 …… # 條件 2 不知足的處理 else: 條件 2 不知足時,執行的代碼 # 條件 1 不知足的處理 else: 條件1 不知足時,執行的代碼 ……
需求
has_ticket
表示是否有車票knife_length
表示刀的長度,單位:釐米# 定義布爾型變量 has_ticket 表示是否有車票 has_ticket = True # 定義整數型變量 knife_length 表示刀的長度,單位:釐米 knife_length = 20 # 首先檢查是否有車票,若是有,才容許進行 安檢 if has_ticket: print("有車票,能夠開始安檢...") # 安檢時,須要檢查刀的長度,判斷是否超過 20 釐米 # 若是超過 20 釐米,提示刀的長度,不容許上車 if knife_length >= 20: print("不容許攜帶 %d 釐米長的刀上車" % knife_length) # 若是不超過 20 釐米,安檢經過 else: print("安檢經過,祝您旅途愉快……") # 若是沒有車票,不容許進門 else: print("大哥,您要先買票啊")
目標
import
導入模塊(「工具包」)的使用需求
序號 | 規則 |
---|---|
1 | 石頭 勝 剪刀 |
2 | 剪刀 勝 布 |
3 | 布 勝 石頭 |
# 從控制檯輸入要出的拳 —— 石頭(1)/剪刀(2)/布(3) player = int(input("請出拳 石頭(1)/剪刀(2)/布(3):")) # 電腦 隨機 出拳 - 假定電腦永遠出石頭 computer = 1 # 比較勝負 # 若是條件判斷的內容太長,能夠在最外側的條件增長一對大括號 # 再在每個條件之間,使用回車,PyCharm 能夠自動增長 8 個空格 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("不行,我要和你決戰到天亮!")
Python
中,要使用隨機數,首先須要導入 隨機數 的 模塊 —— 「工具包」import random
導入模塊後,能夠直接在 模塊名稱 後面敲一個 .
而後按 Tab
鍵,會提示該模塊中包含的全部函數
random.randint(a, b)
,返回 [a, b]
之間的整數,包含 a
和 b
例如:
random.randint(12, 20) # 生成的隨機數n: 12 <= n <= 20 random.randint(20, 20) # 結果永遠是 20 random.randint(20, 10) # 該語句是錯誤的,下限必須小於上限
數學符號表連接:https://zh.wikipedia.org/wiki/數學符號表
運算符 | 描述 | 實例 |
---|---|---|
+ | 加 | 10 + 20 = 30 |
- | 減 | 10 - 20 = -10 |
* | 乘 | 10 * 20 = 200 |
/ | 除 | 10 / 20 = 0.5 |
// | 取整除 | 返回除法的整數部分(商) 9 // 2 輸出結果 4 |
% | 取餘數 | 返回除法的餘數 9 % 2 = 1 |
** | 冪 | 又稱次方、乘方,2 ** 3 = 8 |
*
運算符還能夠用於字符串,計算結果就是字符串重複指定次數的結果In [1]: "-" * 50 Out[1]: '----------------------------------------'
運算符 | 描述 |
---|---|
== | 檢查兩個操做數的值是否 相等,若是是,則條件成立,返回 True |
!= | 檢查兩個操做數的值是否 不相等,若是是,則條件成立,返回 True |
> | 檢查左操做數的值是否 大於 右操做數的值,若是是,則條件成立,返回 True |
< | 檢查左操做數的值是否 小於 右操做數的值,若是是,則條件成立,返回 True |
>= | 檢查左操做數的值是否 大於或等於 右操做數的值,若是是,則條件成立,返回 True |
<= | 檢查左操做數的值是否 小於或等於 右操做數的值,若是是,則條件成立,返回 True |
Python 2.x 中判斷 不等於 還可使用
<>
運算符
!=
在 Python 2.x 中一樣能夠用來判斷 不等於
運算符 | 邏輯表達式 | 描述 |
---|---|---|
and | x and y | 只有 x 和 y 的值都爲 True,纔會返回 True 不然只要 x 或者 y 有一個值爲 False,就返回 False |
or | x or y | 只要 x 或者 y 有一個值爲 True,就返回 True 只有 x 和 y 的值都爲 False,纔會返回 False |
not | not x | 若是 x 爲 True,返回 False 若是 x 爲 False,返回 True |
=
能夠給變量賦值Python
還提供了一系列的 與 算術運算符 對應的 賦值運算符運算符 | 描述 | 實例 |
---|---|---|
= | 簡單的賦值運算符 | c = a + b 將 a + b 的運算結果賦值爲 c |
+= | 加法賦值運算符 | c += a 等效於 c = c + a |
-= | 減法賦值運算符 | c -= a 等效於 c = c - a |
*= | 乘法賦值運算符 | c *= a 等效於 c = c * a |
/= | 除法賦值運算符 | c /= a 等效於 c = c / a |
//= | 取整除賦值運算符 | c //= a 等效於 c = c // a |
%= | 取 模 (餘數)賦值運算符 | c %= a 等效於 c = c % a |
**= | 冪賦值運算符 | c **= a 等效於 c = c ** a |
運算符 | 描述 |
---|---|
** | 冪 (最高優先級) |
* / % // | 乘、除、取餘數、取整除 |
+ - | 加法、減法 |
<= < > >= | 比較運算符 |
== != | 等於運算符 |
= %= /= //= -= += *= **= | 賦值運算符 |
not or and | 邏輯運算符 |
在程序開發中,一共有三種流程方式:
while
循環基本使用循環的做用就是讓 指定的代碼 重複的執行
while
循環最經常使用的應用場景就是 讓執行的代碼 按照 指定的次數 重複 執行
需求 —— 打印 5 遍 Hello Python
思考 —— 若是要求打印 100 遍怎麼辦?
while
語句基本語法初始條件設置 —— 一般是重複執行的 計數器 while 條件(判斷 計數器 是否達到 目標次數): 條件知足時,作的事情1 條件知足時,作的事情2 條件知足時,作的事情3 ...(省略)... 處理條件(計數器 + 1)
注意:
while
語句以及縮進部分是一個 完整的代碼塊需求
# 1. 定義重複次數計數器 i = 1 # 2. 使用 while 判斷條件 while i <= 5: # 要重複執行的代碼 print("Hello Python") # 處理計數器 i i = i + 1 print("循環結束後的 i = %d" % i)
注意:循環結束後,以前定義的計數器條件的數值是依舊存在的
因爲程序員的緣由,忘記 在循環內部 修改循環的判斷條件,致使循環持續執行,程序沒法終止!
=
能夠給變量賦值Python
還提供了一系列的 與 算術運算符 對應的 賦值運算符運算符 | 描述 | 實例 |
---|---|---|
= | 簡單的賦值運算符 | c = a + b 將 a + b 的運算結果賦值爲 c |
+= | 加法賦值運算符 | c += a 等效於 c = c + a |
-= | 減法賦值運算符 | c -= a 等效於 c = c - a |
*= | 乘法賦值運算符 | c *= a 等效於 c = c * a |
/= | 除法賦值運算符 | c /= a 等效於 c = c / a |
//= | 取整除賦值運算符 | c //= a 等效於 c = c // a |
%= | 取 模 (餘數)賦值運算符 | c %= a 等效於 c = c % a |
**= | 冪賦值運算符 | c **= a 等效於 c = c ** a |
常見的計數方法有兩種,能夠分別稱爲:
1
開始)—— 更符合人類的習慣0
開始)—— 幾乎全部的程序語言都選擇從 0 開始計數所以,你們在編寫程序時,應該儘可能養成習慣:除非需求的特殊要求,不然 循環 的計數都從 0 開始
在程序開發中,一般會遇到 利用循環 重複計算 的需求
遇到這種需求,能夠:
while
上方定義一個變量,用於 存放最終計算結果需求
# 計算 0 ~ 100 之間全部數字的累計求和結果 # 0. 定義最終結果的變量 result = 0 # 1. 定義一個整數的變量記錄循環的次數 i = 0 # 2. 開始循環 while i <= 100: print(i) # 每一次循環,都讓 result 這個變量和 i 這個計數器相加 result += i # 處理計數器 i += 1 print("0~100之間的數字求和結果 = %d" % result)
開發步驟
# 0. 最終結果 result = 0 # 1. 計數器 i = 0 # 2. 開始循環 while i <= 100: # 判斷偶數 if i % 2 == 0: print(i) result += i # 處理計數器 i += 1 print("0~100之間偶數求和結果 = %d" % result)
break
和continue
是專門在循環中使用的關鍵字
break
某一條件知足時,退出循環,再也不執行後續重複的代碼continue
某一條件知足時,不執行後續重複的代碼
break
和continue
只針對 當前所在循環 有效
break
退出循環i = 0 while i < 10: # break 某一條件知足時,退出循環,再也不執行後續重複的代碼 # i == 3 if i == 3: break print(i) i += 1 print("over")
break
只針對當前所在循環有效
continue
i = 0 while i < 10: # 當 i == 7 時,不但願執行須要重複執行的代碼 if i == 7: # 在使用 continue 以前,一樣應該修改計數器 # 不然會出現死循環 i += 1 continue # 重複執行的代碼 print(i) i += 1
continue
時,條件處理部分的代碼,須要特別注意,不當心會出現 死循環
continue
只針對當前所在循環有效
while
循環嵌套while
嵌套就是:while
裏面還有 while
while 條件 1: 條件知足時,作的事情1 條件知足時,作的事情2 條件知足時,作的事情3 ...(省略)... while 條件 2: 條件知足時,作的事情1 條件知足時,作的事情2 條件知足時,作的事情3 ...(省略)... 處理條件 2 處理條件 1
需求
*
,每一行星號的數量依次遞增* ** *** **** *****
# 1. 定義一個計數器變量,從數字1開始,循環會比較方便 row = 1 while row <= 5: print("*" * row) row += 1
知識點 對 print
函數的使用作一個加強
在默認狀況下,print
函數輸出內容以後,會自動在內容末尾增長換行
若是不但願末尾增長換行,能夠在 print
函數輸出內容的後面增長 , end=""
其中 ""
中間能夠指定 print
函數輸出內容以後,繼續但願顯示的內容
語法格式以下:
# 向控制檯輸出內容結束以後,不會換行 print("*", end="") # 單純的換行 print("")
end=""
表示向控制檯輸出內容結束以後,不會換行
假設 Python
沒有提供 字符串的 *
操做 拼接字符串
需求
*
,每一行星號的數量依次遞增* ** *** **** *****
開發步驟
*
應該如何處理?
列
的星星顯示row = 1 while row <= 5: # 假設 python 沒有提供字符串 * 操做 # 在循環內部,再增長一個循環,實現每一行的 星星 打印 col = 1 while col <= row: print("*", end="") col += 1 # 每一行星號輸出完成後,再增長一個換行 print("") row += 1
需求 輸出 九九乘法表,格式以下:
1 * 1 = 1 1 * 2 = 2 2 * 2 = 4 1 * 3 = 3 2 * 3 = 6 3 * 3 = 9 1 * 4 = 4 2 * 4 = 8 3 * 4 = 12 4 * 4 = 16 1 * 5 = 5 2 * 5 = 10 3 * 5 = 15 4 * 5 = 20 5 * 5 = 25 1 * 6 = 6 2 * 6 = 12 3 * 6 = 18 4 * 6 = 24 5 * 6 = 30 6 * 6 = 36 1 * 7 = 7 2 * 7 = 14 3 * 7 = 21 4 * 7 = 28 5 * 7 = 35 6 * 7 = 42 7 * 7 = 49 1 * 8 = 8 2 * 8 = 16 3 * 8 = 24 4 * 8 = 32 5 * 8 = 40 6 * 8 = 48 7 * 8 = 56 8 * 8 = 64 1 * 9 = 9 2 * 9 = 18 3 * 9 = 27 4 * 9 = 36 5 * 9 = 45 6 * 9 = 54 7 * 9 = 63 8 * 9 = 72 9 * 9 = 81
開發步驟
* ** *** **** ***** ****** ******* ******** *********
*
替換成對應的行與列相乘# 定義起始行 row = 1 # 最大打印 9 行 while row <= 9: # 定義起始列 col = 1 # 最大打印 row 列 while col <= row: # end = "",表示輸出結束後,不換行 # "\t" 能夠在控制檯輸出一個製表符,協助在輸出文本時對齊 print("%d * %d = %d" % (col, row, row * col), end="\t") # 列數 + 1 col += 1 # 一行打印完成的換行 print("") # 行數 + 1 row += 1
字符串中的轉義字符
\t
在控制檯輸出一個 製表符,協助在輸出文本時 垂直方向 保持對齊\n
在控制檯輸出一個 換行符製表符 的功能是在不使用表格的狀況下在 垂直方向 按列對齊文本
轉義字符 | 描述 |
---|---|
\\ | 反斜槓符號 |
\’ | 單引號 |
\" | 雙引號 |
\n | 換行 |
\t | 橫向製表符 |
\r | 回車 |