python學習記錄
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中異常的類型。
這里附上一個混合異常、反向追蹤、日志、斷言的python項目,可以參考其用法。
# 輸入圓的半徑計算計算周長和面積 import math,traceback,logging logging.basicConfig(level=logging.DEBUG,format= '%(asctime)s - %(levelname)s - %(message)s') # 得放在程序開頭 logging.debug('start of program') def write_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

附一個獲取pycharm注冊碼地址:http://idea.lanyus.com/

浙公網安備 33010602011771號