python3基礎01
<< python 基礎 >> day01 筆記 python簡介 建立人: Guido Van Rossum(荷蘭人) 時 間: 1989年建立 python
python的應用領域 系統運維 網路程式設計 科學計算 人工智慧,機器人 web開發 雲端計算 大資料及資料庫程式設計 教育 遊戲,影象 其它 python的優缺點: 優點: 面向物件(Java, C++, Python) 免費 可移植 可混合程式設計(C/C++/Java/.net) 簡單易學易用 開發效率高 應用領域廣泛 開源 缺點: 與C/C++相比,執行速度不夠快 不能封閉原始碼
python的官網 https://www.python.org
python的安裝 相容的作業系統 : Windows Linux/ UNIX Mac OS X ...
python的執行: python 的解釋執行器的型別: CPython (C語言開發) Jython (Java開發) IronPython (.net開發) 第一個python程式: 開啟sublime text 3 編寫 hello.py 內容裡寫 : print("hello world!") 執行hello.py # python3 hello.py
常用的程式檔案的字尾: .py python 檔案字尾 .c C語言檔案字尾 .cpp C++語言檔案字尾 .java Java語言檔案字尾
python的互動模式下編寫並執行程式碼: 進入python互動環境 # python3 <回車> 退出 python3互動提示模式 >>> quit() <回車> >>> exit() <回車> 輸入: ctrl + d (輸入檔案結束符) python的註釋 python註釋是以 # 開頭,直至行尾 作用: 讓註釋內容不參加解釋執行 sublime text 3 的註釋快捷鍵 ctrl + / python的程式組成 程式由模組組成 模組由語句,函式,類等組成 語句包含表示式 表示式建立並處理資料物件
python 的核心資料型別 數字(整型,浮點型,複數,布林型) 字串 str 列表 list ...
數字 整型數 int 整型數是不帶有小數部分的資料,包括自然數,0,負數 如: -5, 0, 100等 整型字面值的表示方式 十進位制表示 10 200 -100 999999999999999999999999999999 八進位制方式表示(0o開頭,後跟0~7) 0o11 (9) 0o177 (127) 十六進位制表示(0x開頭,後跟0~9,A-F或 a-f) 注:a表示10, b表示11, ... f表示15 0x11 (17) 0xFF (255) 0x1234abcd 十進位制的表示(ob開頭,後跟0~1) 0b111 (7) 0b1000 (8)
練習: 計算0xFFFF 表示多少? # 65535 計算0xFFFFFFFF 表示多少? # 4294967295 計算 0b1001 表示多少? # 9 計算 0o71 表示多少? # 57
試著把 9轉為 二進位制表示 # 1001 把 64轉為 八進位制表示 # 100 把 18轉為 十六進位制表示 # 12
浮點型數 float 浮點型數是帶有小數部分的數字(小數部分可以是0)
浮點型數的兩種表示方式: 小數形式 3.14 3.1 3.0 3. 0.14 .14 科學計數法 格式: 小數e/E(正負號)指數 如: 6.18E-1 (等同於 0.618) 2.9979e8 # 等同於 299790000.0
複數 complex 分為兩部分: 實部(real) 虛部(image) 注:虛部是以j或J結尾的 複數的字面值表示 1j (2J) 1+1J 1-1j (-100+100J)
布林型數 bool 用來表示真和假兩種狀態的型別 True 表示真(條件滿足可成立) False 表示假(條件不滿足或不成立) 說明: True 的值是1 False 的值是0
空值 None None 是一個表示不存在的特殊物件 作用: 用來佔位 變數解除繫結
表示式和運算子 表示式 expression 由一個數字或數字和運算子組成
作用: 通常讓計算機做一些事情並返回結果 如: 1 + 2 * 3 - 4
算術運算子: + 加法 - 減法 * 乘法 / 除法 // 地板除 floordiv % 求餘 ** 冪運算
/ 除法 除法得到的數是浮點型數,不會丟棄小數部分 1 / 3 得 0.333333333333 8 / 2 得 4.0
// 地板除 除的結果去掉小數部分向下取整 7 / 3 得 2.3333333333 7 // 3 得 2 8 // 3 得 2 3.25 // 1.5 得 2.0
% 求餘 7 % 3 得 1 3.25 % 1.5 得 0.25
** 冪運算 格式: x ** y 意為x的y次方 4 ** 2 得 16 3.0 ** 4.0 得 81.0 5.6 ** 1.418
運算子的優先順序 ** * / // % + -
示例: 1 + 3 * 3 ** 2 + 4 // 2 1 + 3 * 9 + 4 // 2 1 + 27 + 4 // 2 1 + 27 + 2 28 + 2 30
括號分組子表示式 用 () 可以將表示式分組,()內部的表示式先進行計算 (1 + 3) * 3 ** (2 + 4) // 2 4 * 3 ** (2 + 4) // 2 4 * 3 ** 6 // 2 4 * 729 // 2 2916 // 2 1458
練習: 用互動模式計算: 1) 一個商店西瓜7元一個,你帶20元錢能買幾個西瓜,找零多少? 2)一個學生的畢業薪資10000元,每年漲20%,十年後它的薪資是多少?
混合型別自動升級 1 + 2.14 返回型別為浮點型 3.14
基本輸出函式 print 格式: print(要列印的東西)
練習: 1. 已知矩形的長邊長6cm,短邊長4cm,用表示式求周長和麵積 並打印出來
變數 什麼是變數 變數是關聯一個物件的識別符號 變數可以繫結一個物件,並可以通過變數名來使用這個物件
識別符號的命名方法 識別符號必須為字母或下劃線開頭,後跟字母或下劃線或數字 說明 不能使用python的關鍵字作變數名 python變數名區分大小寫 合法的變數名示例 a a1 b bbb _a __ABCD var a1b2 不合法的變數名示例: 1a 123 $ABC +a -b @abc
python 的關鍵字(共33個) True, False, None, is, del, if, elif, else ... 賦值語句 = 語法: 變數名 = 表示式 或 變數名1 = 變數名2 = 變數名3 = 表示式 或 變數名1, 變數名2, 變數名3, ... = 序列 作用: 建立一個變數或修改一個變數的繫結的物件
說明: 當變數不存在時,建立該變數,同時將變數繫結在這個物件上 當變數存在時,改變此變數繫結的物件 一個變數只能繫結一個物件 兩個變數可以同時繫結在同一個物件上 示例: a=10 一個變數只能繫結一個物件 b=20 a=b a繫結在b繫結的物件上 a與10解綁,繫結在20上 a=6 b=4 area=a*b 等同於area=6*4 x=y=z=1000 兩個變數可以同時繫結在同一物件上 x,y=300,400 x繫結300,y繫結400
python 中自動化記憶體管理(重點) a = 10000 b = 20000 a = a + b # 發生了什麼事兒 c = a # a和c同時繫結的3000這個物件上
python中 關聯/繫結/引用的含義 在python中,變數沒有型別 關聯/繫結/引用都是指一個變數和一個物件的關聯關係
練習: 1. 指定一個半徑為r = 3 釐米的圓 1) 計算圓的周長是多少釐米 2) 計算圓的面積是多少平方釐米
2. 已知有兩個變數 a 繫結 10000 b 繫結 20000 問: 在不建立任何新物件的情況下,如何讓a和b交換繫結的物件 答案: a = 10000 b = 20000 t = a # 建立一個臨時變數來繫結10000 a = b b = t print("a=", a) # 20000 print("b=", b) # 10000 # 方法2 a = 10000 b = 20000 a, b = b, a # 序列賦值 print("a=", a) # 20000 print("b=", b) # 10000
在互動模式下檢視當前作用域內的所有變數 >>> help("__main__") 退出鍵: q
注: help函式用來檢視幫助或執行時資訊
del 語句(delete簡寫) 用於刪除變數,同時解除此變數與物件的繫結關係 如果可能則釋放物件
語法: del 變數名
自動化記憶體管理和引用計數 每個物件會記錄有幾個變數引用自身,當引用的數量為0時此物件被銷燬,此種自動化記憶體管理的方式叫引用計數
a = 10000 b = 20000 a = b # 釋放10000 同時a繫結在20000上
is / is not 運算子 作用: 判斷兩個物件是否是同一個物件,當是同一物件時返回True,否則返回False
is not 的作用與is相反 語法: x is y x is not y
x=10000 x=y x is y #true
x=10000 y=10000 x is y #false
小整數物件池 CPython中 整數-5至256永遠存在於小整數物件池中, 不會釋放並可重複使用 x=100 y=100 x is y #true
id(x) 函式 作用: 返回一個物件在記憶體中的地址
練習 1. 寫程式在終端打印出如下圖形: * *** ***** *******
2. 中國古代的秤是16兩一斤,請問中國古代的216兩是古代的幾斤幾兩,寫程式打印出來
3. 從凌晨 0:0:0 計時,到現在已經過了63320秒 請問現在是幾時幾分幾秒? 寫程式打印出來 提示:可以用地板除和求餘來實現
4. 溫度轉換 攝氏溫度 = 5.0/9.0*(華氏溫度-32) 開氏溫度 = 攝氏溫度 + 273.15 問: 100華氏溫度轉為攝氏溫度是多少度? 轉為開氏溫度是多少度?