Lesson 7
Lecturer : 乘一
這有甚麼難的
a = 1 + input()
b = a + c
d = b + 24
m = 57*d//0
print(6442-m)
#出錯,應該說錯誤百出
#你是不是一臉問號這是甚麼毒瘤
ㄟ對我抄上上次簡報
a = 1 + input()
print(a)
b = a + c
d = b + 24
m = 57*d//0
print(6442-m)
#a的結果與預期不符
#恭喜找出來a出錯!
print(第一個) -> 正確
print(第二個) -> 正確
......
print(好多好多個) -> 終於錯了
print(第n個) -> 不符預期(第n個是根據第n-1個)
print(第n-1個) -> 不符預期(第n-1個是根據第n-2個)
......
print(第x個) -> 終於對了
避免多餘的輸出
處理彈性極高
紀錄歷程方便DEBUG
import logging
#就...import模組(還沒忘吧!?
logging.basicConfig(level=logging.DEBUG)
#一開始的基本設定,level表示輸出的最低層級
logger = logging.getLogger( __name__ )
#創建一個紀錄器
名稱 | 功能 | 對應函式 |
---|---|---|
debug | 除錯時使用 | .debug() |
info | 記錄各種資訊時使用 | .info() |
warning | 警告(預設層級) | .warning() |
error | 錯誤(出錯) | .error() |
critical | 嚴重錯誤 | .critical() |
import logging
logging.basicConfig(level=logging.DEBUG)
logger = logging.getLogger( __name__ )
a = 1+4
logger.debug(a)
b = a+6
print(b)
logger.info("print b")
#DEBUG:__main__:5
#11
#INFO:__main__:print b
import logging
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger( __name__ )
a = 1+4
logger.debug(a)
b = a+6
print(b)
logger.info("print b")
#11
#INFO:__main__:print b
#DEBUG那行消失了!
import logging
logger = logging.getLogger( __name__ )
def some_method():
logger.info('begin of some_method')
def another_method():
logger.info('begin of another_mathod')
def main():
logging.basicConfig(level=logging.DEBUG)
some_method()
another_method()
if __name__ == "__main__":
main()
import logging
logging.basicConfig(filename='檔案名稱', filemode='w',level=logging.INFO)
#filemode是寫入方式
#預設是a(ppend),寫入會接在上一個後面
#w(rite)是複寫,也就是說會覆蓋掉之前的紀錄
logger = logging.getLogger( __name__ )
a = 1+4
logger.debug(a)
b = a+6
print(b)
logger.info("print b")
#執行後log會寫入檔案中
指令 | 功能 |
---|---|
b 行數 | 在指定行插入中斷點 |
c | 執行程式碼,直到遇到中斷點 |
l | 輸出前後各五行的程式碼 |
ll | 輸出所有程式碼 |
p 變數名 | 輸出變數現在的值 |
s | 執行下一行程式碼(可進入function) |
n | 執行下一行程式碼(不進入function) |
q | 離開 |
#寫在程式碼內
import pdb
pdb.set_trace()
#插入中斷點
#python3.7版後可以不用import
#插入中斷點改為直接使用函式:
breakpoint()
list[3] = 1
print(list[3])
#Traceback (most recent call last):
# File "main.py", line 75, in <module>
# list[3] = 1
#TypeError: 'type' object does not support item assignment
#他到底在寫甚麼...QAQ