01 錯誤描述:
oserror: [errno 22] invalid argument: 'e:\pycharmprojects\tyj_data_file\study_life.txt'
用with open(file_name) as file_object:方式開啟並讀取檔案出錯,錯誤提示無效檔名
錯誤原因:
檔名雖然是直接從windows檔案目錄下拷貝的絕對路徑,但是紅色標記處提示\t,原來在python中\是轉義字,而此時\t是製表字元。
解決辦法:
第一種:直接用正斜槓/不用反斜槓\
第二種:用在字串的第乙個引號之前加上r,可以將該字串標記為原始字串,不進行轉義,如
第三種:用兩個反斜槓,因為每個反斜槓需要由另乙個反斜槓字元來轉義,如
e:\\pycharmprojects\\tyj_data_file\\study_life.txt
ps:說明一下,往往在window中使用反斜槓,在osx和linux上使用正斜槓,若想要程式能執行在所有的作業系統中,則可以用os.path.join('')的方式統一處理
02 python的輸出語句
首先我掌握了一種學習方式,例如要了解print 函式的用途,可以使用 help(print) 來尋求幫助,通過這種方式我們可以了解到函式的引數、用法等。
其次,python的格式化輸出,我們知道print不能拼接字串和數字,得要通過型別轉換。這裡介紹%用法,例如print("周長為:%.2f" %(math.pi*2*a))
03 盡量使用try-except語句、反向跟蹤、日誌方式來捕捉錯誤和異常,使用斷言assert來捕捉非法情況,而不使用print進行除錯。
斷言主要是針對程式設計師犯的錯誤、是針對開發的,而不是針對使用者犯的錯誤的。區別斷言和異常,以及python中異常的型別。
#view code輸入圓的半徑計算計算周長和面積
import
math,traceback,logging
logging.basicconfig(level=logging.debug,format= '
%(asctime)s - %(levelname)s - %(message)s
') #
得放在程式開頭
logging.debug('
start of program')
defwrite_error_intxt():
logging.debug(
'start of write_error')
errorfile = open(r"
e:\pycharmprojects\tyj_data_file\error_file.txt
", '
w') #
以覆蓋重寫的方式記錄在文字中
errorfile.write(traceback.format_exc()) #
寫入錯誤的字串形式
errorfile.close()
logging.debug(
'end of write_error')
print("
寫入成功")
try:
a = float(input("
請輸入圓的半徑"))
'''# 斷言的用法,如想禁用可以用-o的方式執行python檔案
b = input("輸入b")
assert b == 'love' , '如果b不是love,則輸出此語句'
'''print("
面積為%.2f
" %(math.pi*a*a))
print("
周長為:%.2f
" %(math.pi*2*a))
logging.debug(
"end of program")
except exception as e: #
可以有很多錯誤型別
#控制台輸出
print("
錯誤發生:
"+str(e))
#反向跟蹤
write_error_intxt()
04 使用anaconda prompt建立 python3.5 的虛擬環境、安裝numpy,都出現condahttperror的錯誤,肯定就是網路連線的問題了,查閱資料發現可能是網路掛了**的原因,於是退出我的外網,重新安裝,成功。
05 jupyter notebook畫圖不顯示只有座標
解決辦法:
在**中加入一行%matplotlib inline
python學習記錄
python 3 整除,複數表示,slice,range,pass關鍵字,函式用引數名呼叫,函式的 arg和 arg,預設引數,unpacking argument lists,sequence 型別 list,set tuple,dictionary,queue,stack loop相關 enum...
python學習記錄
python函式記錄 修飾符作用就是表示 下面的值或者函式作為 後面函式的引數 返回值由 後面的函式返回 map 接收乙個函式和乙個序列,然後保留函式返回的結果的序列 reduce 接收乙個函式和乙個序列 函式結果為乙個值,運算過程就是從序列的第乙個值開始傳給函式,返回結果再次傳入函式,直到最後得到...
python學習記錄
函式的作用 按照key對迭代器iterable進行分組 函式的返回 tuple,其中第乙個元素是groupby後的鍵值,第二個元素是乙個迭代器,包含那些被groupby的物件。第二個引數key是可選的,如果預設,那就按照iterable的每個元素分組。如果不預設,那應該是乙個函式,將iterable...