python基礎第三課

一  集合

1.1  集合的定義html

list_1 = [1, 2, 4, 7, 1 ,2]
list_1 = set(list_1)

print(list_1, type(list_1))   # {1, 2, 4, 7} <class 'set'>    集合是無序的

list_2 = set([2, 4, 78, 67])

print(list_1, list_2)

1.2  交集python

print(list_1.intersection(list_2))  # {2, 4}  交集  or  list_1 & list_2
print(list_1.isdisjoint(list_2))  # 交集爲空  則 返回True

1.3  並集ide

print(list_1.union(list_2))  #  {1, 2, 67, 4, 7, 78}   並集   list_1 | list_2

1.4  差集   對稱差集測試

print(list_1.difference(list_2)) #   {1, 7}  差集        list_1 - list_2
print(list_1.symmetric_difference(list_2))#   {1, 67, 7, 78}      對稱差集   list_1 ^ list

1.5  子集   父集編碼

print(list_1.issubset(list_2)) #  False  子集    list_1 <= list_2
print(list_1.issuperset(list_2))  #  False   父集    list_1 >= list_2

1.6  添加spa

list_1 = {1, 2, 4, 7}

list_1.add(56)
print(list_1)   # {56, 1, 2, 4, 7}

list_1.update([56,'sam'])
print(list_1)  # {1, 2, 'sam', 4, 7, 56}

1.7  刪除.net

list_1 = {1, 2, 4, 7}
#1
list_1.remove(2)   #   元素不存在就會報錯
print(list_1)   #   {1, 4, 7}
#2
list_1.pop()  #  任意刪除元素
#3
list_1.discard(7)  # 刪除一個元素,若是元素不存在,就返回空

1.8  長度指針

list_1 = {1, 2, 4, 7}
print(len(list_1))   # 4

1.9  屬於code

ele = 1
print(ele in list_1)   # True
print(ele not in list_1)   #  False

1.10  複製htm

list_1 = {1, 2, 4, 7}
list_3 = list_1.copy()
print(list_3)

 

二  文件操做

 文件yesterday在同級目錄,內容爲

越女採蓮秋水畔,窄袖輕羅,暗露雙金釧。照影摘花花似面,芳心只共絲爭亂。

雞尺溪頭風浪晚,霧重煙輕,不見來時伴。隱隱歌聲歸棹遠,離愁引着江南岸。」

一陣輕柔婉轉的歌聲,飄在煙水濛濛的湖面上。歌聲發自一艘小船之中,船裏五個少女和歌嘻笑,
盪舟採蓮。她們唱的曲子是北宋大詞人歐陽修所做的「蝶戀花」詞,寫的正是越女蓮的情景,雖只寥六十字,
但季節、時辰、所在、景物以及越女的容貌、衣着、首飾、心情,無一不描繪得歷歷如見,下半闋更是寫景中有敘事,
敘事中挾抒情,自近而遠,餘意不盡。歐陽修在江南爲官日久,吳山越水,柔情密意,盡皆融入長短句中。
宋人不論達官貴人,或是里巷小民,無不以唱詞爲樂,是以柳永新詞一出,有井水處皆歌,而江南春岸折柳,
秋湖採蓮,隨伴的每每即是歐詞。

時當南宋理宗年間,地處嘉興南湖。節近中秋,荷葉漸殘,蓮肉飽實。這一陣歌聲傳入湖邊一個道姑耳中。
她在一排柳樹下悄立已久,晚風拂動她杏黃色道袍的下襬,拂動她頸中所插拂塵的萬縷柔絲,心頭思潮起伏,
當真亦是「芳心只共絲爭亂」。只聽得歌聲漸漸遠去,唱的是歐陽修另外一首「蝶戀花」詞,一陣風吹來,
隱隱送來兩句:「風月無暗換,舊遊如夢空腸斷……」歌聲甫歇,即是一陣格格嬌笑。
View Code

 

2.1  基本操做

 

 data = open("yesterday", encoding="utf-8").read()
print(type(data)) # <class 'str'>
print(data)

 

 

 

結果:打印所有內容

越女採蓮秋水畔,窄袖輕羅,暗露雙金釧。照影摘花花似面,芳心只共絲爭亂。

雞尺溪頭風浪晚,霧重煙輕,不見來時伴。隱隱歌聲歸棹遠,離愁引着江南岸。」

一陣輕柔婉轉的歌聲,飄在煙水濛濛的湖面上。歌聲發自一艘小船之中,船裏五個少女和歌嘻笑,
盪舟採蓮。她們唱的曲子是北宋大詞人歐陽修所做的「蝶戀花」詞,寫的正是越女蓮的情景,雖只寥六十字,
但季節、時辰、所在、景物以及越女的容貌、衣着、首飾、心情,無一不描繪得歷歷如見,下半闋更是寫景中有敘事,
敘事中挾抒情,自近而遠,餘意不盡。歐陽修在江南爲官日久,吳山越水,柔情密意,盡皆融入長短句中。
宋人不論達官貴人,或是里巷小民,無不以唱詞爲樂,是以柳永新詞一出,有井水處皆歌,而江南春岸折柳,
秋湖採蓮,隨伴的每每即是歐詞。

時當南宋理宗年間,地處嘉興南湖。節近中秋,荷葉漸殘,蓮肉飽實。這一陣歌聲傳入湖邊一個道姑耳中。
她在一排柳樹下悄立已久,晚風拂動她杏黃色道袍的下襬,拂動她頸中所插拂塵的萬縷柔絲,心頭思潮起伏,
當真亦是「芳心只共絲爭亂」。只聽得歌聲漸漸遠去,唱的是歐陽修另外一首「蝶戀花」詞,一陣風吹來,
隱隱送來兩句:「風月無暗換,舊遊如夢空腸斷……」歌聲甫歇,即是一陣格格嬌笑。
View Code

 

2.2  讀取 r

f = open("yesterday",'r', encoding="utf-8") # 文件句柄, 至關於C的指針   r ---->讀
data = f.read()  # 讀取所有,指針移動到最後
print(data)
print("----------------------------------------------")
data2 = f.read()  #  指針後面沒有內容了,被data讀完了
print("data2:", data2)  #  data2:    ---->返回空

 

 2.3  寫  w

f = open('yesterday2', 'w' ,encoding='utf-8')   #  'w' ----》 建立一個文件,源文件被覆蓋
f.write("我愛北京,\r\n")
f.write(" i love you ")
f.close()

 

結果: yesterday2 內容以下

我愛北京,
 i love you 

 

2.4  追加 a

f = open('yesterday2', 'a' ,encoding='utf-8')  #'a' ---->  追加  , 但不能讀
f.write('測試「a」:beijing')
f.close()

 

結果:yesterday2 內容以下

我愛北京,
 i love you 測試「a」:beijing

 

2.5  讀取方法

f = open('yesterday', 'r', encoding='utf-8')

print(f.readline())  # 讀取第一行  一行一行的讀
print(f.readline())   #  讀取第二行

for i in range(3):
    print(f.readline())   # 讀取前三行

 

data = f.readlines()  # 返回列表,   元素爲每一行的字符串
#  效率低
for line in f.readlines():   #  效率低,由於它把全部的文件內容都讀取到內存
    print(line.strip())  #  由於line的最右有換行符,使用strip, 打印的行與行之間就不會有空

 # 效率高的循環
for line in f:   #內存裏只存一行
    print(line.strip())

 

2.6  其它方法

print(f.tell()) # 打印句柄的位置   # 0
print(f.read(10))  # 讀取10個字符串    #Somehow, i
print(f.tell())   # 10

print(f.seek(0))  # 句柄回到起始位置

print(f.encoding)  # 打印文件編碼   utf-8

print(f.name)  # 打印文件名字   yesterday

print(f.readable())  # 判斷文件是否可讀
print(f.writable())  #    判斷文件是否可寫

file = open('yesterday2', 'w', encoding='utf-8')
file.write('hello 1 \n')


file.flush()  # 把寫入內存中的內容,刷入磁盤
#file.buffer

# 案例  顯示進度條
import sys, time

for i in range(20):
    sys.stdout.write("#")
    sys.stdout.flush()     #
    time.sleep(0.5)

file3 = open('yesterday', 'r', encoding='utf-8')
file3.truncate(20)  #  從頭開始截取 20個字符串

 

 

2.7  寫讀  讀寫

file = open('yesterday', 'r+', encoding='utf-8') #  'r+'  ----> 以讀,和追加的方式打開

file = open('yesterday', 'w+', encoding='utf-8')  # ’w+‘   寫讀,追加寫 ,沒什麼用

file = open('yesterday', 'a+', encoding='utf-8')  # 追加讀

file = open('yesterday', 'rb')  # 讀取二進制文件


file = open('yesterday2', 'wb')
#file.write('wI love you') # 會報錯, 由於在python3中,任意字符串都是用Unicode編碼的,即使在開頭申明的編碼集,必須是用  encode轉化爲二進制
file.write('wI love you'.encode())  #   得要編碼成二進制
# 若是要對文件修改,建議把修改的內容寫入新的文件

file = open('yesterday2', 'r', encoding='utf-8')
file_new = open('yesterday2.bak', 'w', encoding='utf-8')

for line in file:
    if '我飛快地奔走' in line:
        line = line.replace('我飛快地奔走', '縱容的享受')
    file_new.write(line)

file.close()
file_new.close()

 

2.8  with 語句

with open('yesterday', 'r') as f:
    print(f.read())

with open('yesterday', 'r') as f, \
        open('yesterday2', 'r') as f2:
    pass

 

 

三  字符編碼與轉碼

參考

http://www.cnblogs.com/yuanchenqi/articles/5956943.html

http://www.diveintopython3.net/strings.html

http://www.cnblogs.com/alex3714/articles/5717620.html

相關文章
相關標籤/搜索