Python极简入门:数据类型、条件语句、循环语句、异常处理
一、變量、運算符與數據類型
1. 注釋
在 Python 中,# 表示注釋,作用于整行。
''' ''' 或者 """ """ 表示區間注釋,在三引號之間的所有內容被注釋(多行注釋)。
2. 運算符
1. 位運算符
| ~ | 按位取反 | ~4 |
| & | 按位與 | 4 & 5 |
| ` | 按位或 | ? |
| ^ | 按位異或 | 4 ^ 5 |
| << | 左移 | 4 << 2 |
| >> | 右移 | 4 >> 2 |
運算符的優先級
-
一元運算符優于二元運算符。例如3 ** -2等價于3 ** (-2)。
-
先算術運算,后移位運算,最后位運算。例如?1 << 3 + 2 & 7等價于?(1 << (3 + 2)) & 7。
-
邏輯運算最后結合。例如3 < 4 and 4 < 5等價于(3 < 4) and (4 < 5)。
2. 數據類型與轉換
| int | 整型 | <class 'int'>-876, 10 |
| float | 浮點型 | <class 'float'>3.149, 11.11 |
| bool | 布爾型 | <class 'bool'>True, False |
通過 print() 可看出 a 的值,以及類 (class) 是int
- ?
type可以幫助我們去獲取到它的類型,再通過print()打印出來。
type()?不會認為子類是一種父類類型,不考慮繼承關系。
isinstance()會認為子類是一種父類類型,考慮繼承關系
如果要判斷兩個類型是否相同使用?isinstance()。
Python 里面有很多用途廣泛的包 (package),用什么你就引進(import)什么。包也是對象,可以用dir(decimal)來看其屬性和方法
【例子】使 1/3 保留 5 位,用getcontext().prec?來調整精度。
- ?
布爾 (boolean) 型變量只能取兩個值,True 和 False。當把布爾型變量用在數字運算中,用 1 和 0 代表 True 和 False
類型轉換
-
轉換為整型?int(x, base=10)
-
轉換為字符串?str(object='')
-
轉換為浮點型?float(x)
3. print() 函數
-
將對象以字符串表示的方式格式化輸出到流文件對象file里。其中所有非關鍵字參數都按str()方式進行轉換為字符串輸出;
-
關鍵字參數sep是實現分隔符,比如多個參數輸出時想要輸出中間的分隔字符;
-
關鍵字參數end是輸出結束時的字符,默認是換行符\n;
-
關鍵字參數file是定義流輸出的文件,可以是標準的系統輸出sys.stdout,也可以重定義為別的文件;
-
關鍵字參數flush是立即把內容輸出到流文件,不作緩存。
沒有參數時,每次輸出后都會換行。
- ?
item值與'another string'兩個值之間用sep設置的參數&分割。由于end參數沒有設置,因此默認是輸出解釋后換行,即end參數的默認值為\n。
- ?
二、條件語句
1. if 語句
-
if 語句的?expr_true_suite?代碼塊只有當條件表達式?expression結果為真時才執行,否則將繼續執行緊跟在該代碼塊后面的語句,如果為假則不輸出。
-
單個 if 語句中的?expression?條件表達式可以通過布爾操作符?and,or和not?實現多重條件判斷。if - else語句就是對if?后的內容進行一個判斷,是則將繼續執行緊跟在該代碼塊后面的語句,否則執行else后的語句
- ?
if - elif - else?語句對if后的內容進行一個判斷,是則將繼續執行緊跟在該代碼塊后面的語句,否則繼續對elif后的內容進行一個判斷,是則將繼續執行緊跟在該代碼塊后面的語句,否則直到執行else后的語句
- ?
assert這個關鍵詞我們稱之為“斷言”,當這個關鍵詞后邊的條件為 False 時,程序自動崩潰并拋出AssertionError的異常。
- ?
三、循環語句
1.while語句
while語句最基本的形式包括一個位于頂部的布爾表達式,一個或多個屬于while代碼塊的縮進語句,代碼塊會一直循環執行,直到布爾表達式的值為布爾假。。
- ?
如果布爾表達式不帶有<、>、==、!=、in、not in等運算符,僅僅給出數值之類的條件,也是可以的。當while后寫入一個非零整數時,視為真值,執行循環體;寫入0時,視為假值,不執行循環體。也可以寫入str、list或任何序列,長度非零則視為真值,執行循環體;否則視為假值,不執行循環體。
當while循環正常執行完的情況下,執行else輸出,如果while循環中執行了跳出循環的語句,比如 break,將不執行else代碼塊的內容。
- ?
2.for 語句
for循環是迭代循環,在Python中相當于一個通用的序列迭代器,可以遍歷任何有序序列,如str、list、tuple等,也可以遍歷任何可迭代對象,如dict。
- ?
每次循環,迭代變量被設置為可迭代對象的當前元素,提供給代碼塊使用。
當for循環正常執行完的情況下,執行else輸出,如果for循環中執行了跳出循環的語句,比如 break,將不執行else代碼塊的內容,與while - else語句一樣。
- ?
range 這個BIF的作用是生成一個從start參數的值開始到stop參數的值結束的數字序列,該序列包含start的值但不包含stop的值。
- ?
3.跳出循環語句
break語句可以跳出當前所在層的循環。
- ?
continue終止本輪循環并開始下一輪循環。
- ?
四、異常處理
1. Python 標準異常總結
| ? | ? | ? | ? |
| BaseException |
| ? | 所有異常的 基類 | Exception | 常規異常的基類 |
| StandardError | 所有的內建標準異常的基類 | ArithmeticError | 所有數值計算異常的基類 |
| FloatingPointError | 浮點計算異常 | OverflowError | 數值運算超出最大限制 |
| ZeroDivisionError | 除數為零 | AssertionError | 斷言語句(assert)失敗 |
| AttributeError | 嘗試訪問未知的對象屬性 | EOFError | 沒有內建輸入,到達EOF標記 |
| EnvironmentError | 操作系統異常的基類 | OError | 輸入/輸出操作失敗 |
| OSError | 操作系統產生的異常(例如打開一個不存在的文件) | WindowsError | 系統調用失敗 |
| ImportError | 導入模塊失敗的時候 | KeyboardInterrupt | 用戶中斷執行 |
| LookupError | 無效數據查詢的基類 | IndexError | 索引超出序列的范圍 |
| KeyError | 字典中查找一個不存在的關鍵字 | MemoryError | 內存溢出(可通過刪除對象釋放內存) |
| NameError | 嘗試訪問一個不存在的變量 | UnboundLocalError | 訪問未初始化的本地變量 |
| ReferenceError | 弱引用試圖訪問已經垃圾回收了的對象 | RuntimeError | 一般的運行時異常 |
| NotImplementedError | 尚未實現的方法 | SyntaxError | 語法錯誤導致的異常 |
| IndentationError | 縮進錯誤導致的異常 | TabError | Tab和空格混用 |
| SystemError | 一般的解釋器系統異常 | TypeError | 不同類型間的無效操作 |
| ValueError | 傳入無效的參數 | UnicodeError | Unicode相關的異常 |
| UnicodeDecodeError | Unicode解碼時的異常 | UnicodeEncodeError | Unicode編碼錯誤導致的異常 |
| UnicodeTranslateError | Unicode轉換錯誤導致的異常 | ? | ? |
2.Python標準警告總結
| Warning | 警告的基類 | DeprecationWarning | 關于被棄用的特征的警告 |
| FutureWarning | 關于構造將來語義會有改變的警告 | UserWarning | 用戶代碼生成的警告 |
| PendingDeprecationWarning | 關于特性將會被廢棄的警告 | RuntimeWarning | 可疑的運行時行為(runtime behavior)的警告 |
| SyntaxWarning | 可疑語法的警告 | ImportWarning | 用于在導入模塊過程中觸發的警告 |
| UnicodeWarning | 與Unicode相關的警告 | BytesWarning | 與字節或字節碼相關的警告 |
| ResourceWarning | 與資源使用相關的警告 | ? |
總結
以上是生活随笔為你收集整理的Python极简入门:数据类型、条件语句、循环语句、异常处理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何在高并下设置Linux系统及kern
- 下一篇: IT项目需求分析的重点关注事项