day7集合和字串

2021-10-24 12:54:15 字數 4820 閱讀 6325

1.1 集合

集合是容器型資料型別,將{}作為容器型標誌,裡面的元素用多個逗號隔開:

集合是可變的,無序的

元素:資料型別不可變且唯一

# 1)空集合

x =# 空字典

y =set()

# 空集合

# 2)元素是不可變的

s =print

(s)#

# s =

# print(s) typeerror: unhashable type: 'list'

# 3)元素是唯一的

s =print

(s)#

# 4)集合去重

names =

['張三'

,'李四'

,'老王'

,'李四'

,'張三'

,'張三'

]names =

list

(set

(names)

)print

(names)

# ['老王', '李四', '張三']

# 5)集合是無序的

print(==

)# true

1.2 集合的增刪改查

# 1) 查  -   集合只能遍歷(通過for迴圈遍歷無序序列的時候,都是先將序列轉換成列表,然後遍歷列表)

games =

for x in games:

print

('x:'

, x)

# 2) 增

# 集合.add(元素) - 在集合中新增指定元素

# 集合.update(序列) - 將序列中所有的元素新增到集合中(序列中的元素是不可變的)

games.add(

'英雄聯盟'

)print

(games)

games.update(

)print

(games)

# 3) 刪

# 集合.remove(元素) - 刪除指定元素(不存在會報錯)

# 集合.discard(元素) - 刪除指定元素(不存在不會報錯)

games.remove(

'貪吃蛇'

)print

(games)

games.discard(

'我的世界'

)print

(games)

# 4) 改

# 先刪除原來的,在新增新的

games.remove(

'王者榮耀'

)games.add(

'部落衝突'

)print

(games)

1.3 數學集合運算

# python中的集合支援數學中的集合運算:&(交集)、|(並集)、-(差集)、^(對稱差集)、>、<、>=、<=(判斷包含關係)

set1 =

set2 =

# 1) 集合1 & 集合2 - 求兩個集合的公共部分

# 2) 集合1 | 集合2 - 合併兩個集合產生乙個新的集合

# 3) 集合1 - 集合2 - 集合1去掉包含在集合2中剩下的元素

# 4) 集合1 ^ 集合2 - 將兩個集合合併後去掉公共部分

print

(set1 & set2)

# print

(set1 | set2)

# print

(set1 - set2)

# print

(set1 ^ set2)

# # 5)>、<、>=、<= - 判斷包含關係

2.1字串

字串是容器型資料型別,將』』、" 「、』』』 『』』、」"" 「」"作為容器的標誌

字串是不可變的(不支援增刪改);字串是有序的(支援下標操作)

元素:引號裡面的每個基本單元就是字串的元素,又叫字元(python中只有字元的概念,沒有字元對應的型別,

一般是直接使用長度是1的字串來表示字元)

# 1) 空串

s1 =

''s2 =

""s3 =

''''''

s4 = """"""

print(type(s1), type(s2), type(s3), type(s4))

# # 2) ''、"" 與 '''

'''、""

""""的區別

# ''、"" - 字串中不能直接換行

# 3) 字串有序

print

('abc'

=='cba'

)# false

2.2 字元

轉義字元

在特定的乙個或者多個字元錢加 \ 讓符號具有特殊功能或者特殊意義,那麼這種帶有 \ 字元就是轉義字元:

\n :換行

\t :水平製表符,相當於按一下tab鍵

『、"、\:表示乙個普通的』、"、

注意:任何乙個轉義字元的長度都是1

普通字元

除了轉義字元意外的字元都是普通字元,普通字元在字串中表示這個符號本身

包括:漢字、數字、字母、符號、表情符號(?❀???????)等…

# 特殊的轉義字元-編碼字元:\u四位的十六進製制數   -   表示16進製制數對應的編碼值對應的字元

print

('abc\u005a'

)# abcz

2.3 字元編碼

1)什麼是字元編碼

計算機在儲存資料的時候只能存數字(存的數字二進位制補碼),為了能夠讓計算機儲存字元,我們給每乙個字元都對應乙個固定的數字,那麼每個字元對應的固定的數字就是這個字元的編碼值

2)字元編碼表 - 記錄字元和數字之間一一對應關係的表就是字元編碼表

常見的字元編碼表有兩種:ascii碼表、unicode編碼表(python採用的是unicode編碼表)

a.ascii碼表

ascii碼表總共有128個字元對應的編碼,主要包含的是美國的通用字元,其中包括:英文標點符號、數字字元、字母字元以及其他的一些符號

ascii碼表中,數字字元在字母的前面,大寫字母在小寫字母前面,大寫字母結束後有其他的字元,然後才是小寫字母

b.unicode編碼表

unicode編碼表包含ascii碼表

中文編碼範圍:4e00 ~ 9fa5

# 1)編碼字元:\u4位的16進製制編碼值

print

('\u11ef'

)# ᇯ

# 2)chr(編碼值) - 獲取編碼值對應的字元

print

(chr

(0x4e00))

# 一print

(chr

(0x9fa5))

# 龥# 列印所有的中文字元

count =

0for x in

range

(0x4e00

,0x9fa5+1

):print

(chr

(x), end=

' ')

count +=

1if count %

25==0:

print()

# 3)ord(字元) - 獲取字元對應的編碼值(返回的是十進位制數)

print

(ord

('?'))

# 128009

print

(ord

('劉'),

ord(

'浩')

,ord

('然'))

# 21016 28009 28982

print

(hex

(21016),

hex(

28009),

hex(

28982))

# 0x5218 0x6d69 0x7136

3.1 獲取字元

字串獲取字元的操作和列表獲取元素的方法一樣

3.2 加法和乘法

print

('abc'

+'123'

)# abc123

print

('abc'*3

)# abcabcabc

3.3 比較運算

兩個字串比較大小:比較第一對不相等的字元編碼值的大小

『a』 <= 『char』 <= 『z』 - 小寫字母

『a』 <= 『char』 <= 『z』 - 大寫字母

『a』 <= 『char』 <= 『z』 or 『a』 <= 『char』 <= 『z』 - 字母

『0』 <= 『char』 <= 『9』 - 數字

『\u4e00』 <= 『char』 <= 『\u9fa5』 - 中文字元

print

('abc'

>

'xymn'

)# true

print

('abc'

>

'你好'

)# false

# 練習:輸入乙個字串,統計字串中小寫字母的個數

n =str

(input

('請輸入乙個字串:'))

count =

0for i in n:

if'a'

<= i <=

'z':

count +=

1print

('小寫字母的個數:'

, count)

day7 集合和字串作業

輸入乙個字串,列印所有奇數字上的字元 下標是1,3,5,7 位上的字元 例如 輸入 abcd1234 輸出 bd24 str abcd1234 str1 n 1 for x in str if n 1 1 str1 x n 1 print str1 輸入使用者名稱,判斷使用者名稱是否合法 使用者名稱...

day7 字串和集合

集合與字串 1.集合 2.字串和字元 3.字串的操作 一 集合 集合是可變的 無序的 集合中的元素 不可變資料 唯一的 通過for迴圈遍歷無序序列時,都是將序列轉換成列表,然後遍歷列表。2.增 在集合中新增指定元素 語法 集合.add 元素 3.刪 刪除集合中指定元素 元素不存在會報錯 語法 集合....

python學習(5) 集合和字串

python學習 4 字典和列表 集合 集合 set 乙個沒有重複元素的資料結構 沒有順序 集合 可變 無序 字典 可變 無序 列表 可變 有順序 元組 不可變 有順序 s set s 是字典型別 空集合 print type s 增加s.add 1 s.add 1 s.add 2 合併s.upda...