python 入門 筆記 二

2021-09-11 14:52:24 字數 2531 閱讀 6755

官方文件:

python 3菜鳥教程

python2 與 python3的區別 (菜鳥教程)

基於python的網際網路軟體測試開發(自動化測試)-全集合

robotframwork官網上說python2與python3的區別

python 2和python 3大多是相同的語言,但它們彼此不完全相容。主要的區別在於,在python 3中,所有字串都是unicode,而在python 2中,字串預設是位元組,但是還有其他幾個向後不相容的更改。最後乙個python 2版本是2023年發布的python 2.7,將在2023年之前得到支援。

python2中預設的編碼格式是 ascii 格式,在沒修改編碼格式時無法正確列印漢字,所以在讀取中文時會報錯。(python3沒有報錯啊)

解決方法為只要在檔案開頭加入 # -*- coding: utf-8 -*- 或者 #coding=utf-8 就行了

python2 **中包含中文,就需要在頭部指定編碼。

注意:python3.x 原始碼檔案預設使用utf-8編碼,所以可以正常解析中文,無需指定 utf-8 編碼。(但是utf-8的檔案又分有 bom的,無bom的,python3的)

utf-8檔案的unicode簽名bom(byte order mark)問題記錄(ef bb bf)

個人建議:

python3直接用open。

python2.x下用codecs.open,特別是有中文的情況,然後也可以避免踩到2.6下面io.open的坑。

如果希望**同時相容python2和python3,那麼推薦用codecs.open。

編碼不統一的報錯如下

>>> fr = open('test.txt','a')

>>> line2 = u'我愛祖國'

>>> fr.write(line2)

traceback (most recent call last):

file "", line 1, in fr.write(line2)

unicodeencodeerror: 'ascii' codec can't encode characters in position 0-11: ordinal not in range(128)

然後繼續我們今天的另外乙個主題,怎麼樣消除utf-8檔案中的bom(byte order mark),十六進製制編碼(ef bb bf),博主的方法有些取巧但是也比較高效,主要用到了codecs的函式bom_utf8,如果發現bom_utf8,則直接改寫檔案內容。

import codecs

with open(config_path) as source_file:

data = source_file.read()

# remove bom

if data[:3] == codecs.bom_utf8: # 判斷是否為帶bom檔案

data = data[3:]

with codecs.open(config_path) as dest_file:

dest_file.write(data)

section, option, value是什麼意思?

基本的讀取操作:

基本的寫入操作:

#注意python2是:import configparser,python3是: import configparser 

import configparser

import sys

config=configparser.configparser() # 例項化configparser物件

config.add_section("book") #新增1個section

config.set("book","title","這是標題") #設定section的option的value值

config.set("book","author","大頭爸爸")

config.add_section("size") #新增1個section

config.set("size","size",1024) #設定section的option的value值

config.write(sys.stdout)

執行結果

[book]

title = 這是標題

author = 大頭爸爸

[size]

size = 1024

Python入門筆記(二

a 5 b 10if a b r aelse r b 對於以上 可以使用條件表達句簡化為 a 5 b 10r a if a b else b 使用條件表示式先判斷中間 a b 如果結果為true,返回if語句左邊的值,否則返回else右邊的值。python 中的迴圈語句有 for 和 while。1...

Python學習筆記二 Python入門

程式設計都是和記憶體打交道的 name sriba new name name new name存的也是sriba的記憶體位址 1 見名知意 python支援中文變數,但盡量不要用 分數 100 2 變數名只能是 字母 數字或下劃線的任意組合 3 變數名的第乙個字元不能是數字 4 關鍵字不能宣告為變...

Python入門 學習筆記 (二)

今天學習了一些簡單的語法規則,話不多說,開始了 二 資料型別 常用資料型別中的整形和浮點型就不多說了。1 字串 字串是用 或者 括起來的任意文字,比如 dfjksj tijdkf 如果字串中有 或者 都需要使用 轉譯,比如,lily said i m ok 書寫方式為 lily said i m o...