Day02

類型轉(zhuǎn)換

#str ---> int   字符串必須全部由數(shù)字組成羡疗,否則報錯
print(int('123'))  #結(jié)果為:123
#int ---> str
print(str(1))  #結(jié)果為:'1'

#int ---> bool  只有0是False珠洗,非0都是True
print(bool(100))  #結(jié)果為:True
print(bool(-1))  #結(jié)果為:True
print(bool(0))  #結(jié)果為:False
#bool --> int
print(int(True))  #結(jié)果為:1
print(int(False))  #結(jié)果為:0

# str  ---> bool  所有非空字符串都是True鹏溯,空字符串是False
print(bool(''))  #結(jié)果為:False
print(bool('fdsaf'))  #結(jié)果為:True
# bool ---> str 會轉(zhuǎn)換成字符串形式的'True'和'False'
print(str(True))  #結(jié)果為:'True'
print(str(False))  #結(jié)果為:'False'

# str ---> list split
str = 'hello world'
print(str.split(' '))  #結(jié)果為:['hello', 'world']
# list --> str  join
l = ['hello','world']
print(' '.join(l))  #結(jié)果為:'hello world'

字符串的操作

#拼接
str1 = 'hello'
str2 = 'world'
str3 = str1 + str2
print(str3)  #結(jié)果為:'helloworld'

#相乘 只能是字符串乘數(shù)字
str1 = 'hello'
str2 = str1 * 3
print(str2)  #結(jié)果為:'hellohellohello'

#切片 str[起始索引:結(jié)束索引+1:步長]它碎,不包含結(jié)束索引本身券敌,即顧頭不顧尾
str1 = 'hello world'
print(str1[0])  #結(jié)果為:'h'
print(str1[-1])  #結(jié)果為:'d'
print(str1[0:5])  #結(jié)果為:'hello'
print(str1[:5])  #結(jié)果為:'hello'
print(str1[6:])  #結(jié)果為:'world'
print(str1[0:5:2])  #結(jié)果為:'hlo'
print(str1[-1:-6:-1])  #結(jié)果為:'dlrow'

#常用方法 *代表常用程度,*越多代表越常用

# ** capitalize 首字母大寫其余字母小寫
s = 'hEllo woRld'
s1 = s.capitalize()
print(s1)  #結(jié)果為:'Hello world'

# ** swapcase 大小寫翻轉(zhuǎn)
s = 'hEllo woRld'
s2 = s.swapcase()
print(s2)  #結(jié)果為:'HeLLO WOrLD'

# * title 非字母隔開的每個單詞的首字母大寫
s = 'hEllo woRld'
s3 = s.title()
print(s3)  #結(jié)果為:'Hello World'

# * center 設置總長度卿操,并居中
s = 'hEllo woRld'
s4 = s.center(30)
print(s4)  #結(jié)果為:'         hEllo woRld          '
s4 = s.center(30,'*')
print(s4)  #結(jié)果為:'*********hEllo woRld**********'

# *** upper 全部轉(zhuǎn)換成大寫
s = 'hEllo woRld'
s5 = s.upper()  #結(jié)果為:'HELLO WORLD'
print(s5)

# *** lower 全部轉(zhuǎn)換成小寫
s = 'hEllo woRld'
s5 = s.lower()  #結(jié)果為:'hello world'
print(s5)

# *** startswith 檢查字符串是否是以指定子字符串開頭警检,如果是則返回 True孙援,否則返回 False。
# 可選參數(shù)"start"與"end"為檢索字符串的開始與結(jié)束位置扇雕。
s = 'hEllo woRld'
print(s.startswith('hEllo'))  #結(jié)果為:'True'
print(s.startswith('aa'))  #結(jié)果為:'False'
print(s.startswith('woRld', 6))  #結(jié)果為:'True'
print(s.startswith('woRld', 6, 8))  #結(jié)果為:'False'

# *** endswith 用于判斷字符串是否以指定后綴結(jié)尾赃磨,如果以指定后綴結(jié)尾返回True,否則返回False洼裤。
# 可選參數(shù)"start"與"end"為檢索字符串的開始與結(jié)束位置。
s = 'hEllo woRld'
print(s.endswith('h'))    #結(jié)果為:'False'
print(s.endswith('ld'))   #結(jié)果為:'True'
print(s.endswith('wo', 6, 8))   #結(jié)果為:'True'

# *** strip 默認去除字符串左右兩邊的空格溪王,換行符腮鞍,制表符,去除的元素可自定義莹菱。
s = '   hello world\t'
print(s.strip())  #結(jié)果為:'hello world'
s = '12321'
print(s.strip('12'))   #結(jié)果為:'3'

# *** lstrip() 只去除左邊的
s = '12321'
print(s.lstrip('12'))   #結(jié)果為:'321'

# *** rstrip() 只去除右邊的
s = '12321'
print(s.rstrip('12'))   #結(jié)果為:'123'

# *** replace 把字符串中的 old(舊字符串) 替換成 new(新字符串)移国。
# 如果指定第三個參數(shù)max,則替換不超過 max 次道伟。
s = 'alex 分甘共苦老地方 alex 風刀霜劍卡樂芙'
s8 = s.replace('alex', 'SB')
print(s8)   #結(jié)果為:'SB 分甘共苦老地方 SB 風刀霜劍卡樂芙'
s8 = s.replace('alex', 'SB', 1)
print(s8)   #結(jié)果為:'SB 分甘共苦老地方 alex 風刀霜劍卡樂芙'

# *** split str ---> list 默認以空格切分字符串迹缀,如果num有指定值,則僅分隔 num 個子字符串蜜徽。
s1 = 'alex wusir taibai ritian'
s2 = 'alex,wusir,taibai,ritian'
s3 = 'alexwusirtaibairitian'
s4 = 'alexwusirtaibairitian'
l1 = s1.split() #結(jié)果為:['alex', 'wusir', 'taibai', 'ritian']
print(l1)
l2 = s2.split(',')  #結(jié)果為:['alex', 'wusir', 'taibai', 'ritian']
print(l2)
l3 = s3.split('a')  #結(jié)果為:['', 'lexwusirt', 'ib', 'iriti', 'n']
print(l3)
l4 = s4.split('a', 2)   #結(jié)果為:['', 'lexwusirt', 'ibairitian']
print(l4)

# ***join   list--->str
l1 = ['alex', 'wusir', 'ritian']
print(' '.join(l1)) #結(jié)果為:alex wusir ritian

# *** find 通過元素找索引,找不到返回-1
s = 'helloworld'
print( s.find('e') )    #結(jié)果為:1
print( s.find('a') )    #結(jié)果為:-1

# *** index 通過元素找索引,找不到會報錯
s = 'helloworld'
print( s.index('e') )    #結(jié)果為:1
print( s.index('a') )    #結(jié)果報錯:ValueError: substring not found

# *** format 格式化祝懂,見“格式化輸出”

# *** 字符串由字母或數(shù)字組成,返回True或False拘鞋。
name = '123'
print(name.isalnum())   #結(jié)果為:True

# *** 字符串只由字母組成
name = '123'
print(name.isalpha())   #結(jié)果為:False

# *** 字符串只由數(shù)字組成
name = '123'
print(name.isdigit())   #結(jié)果為:True

# 公共方法:
# len 測量個數(shù)
s = 'helloworld'
print(len(s))   #結(jié)果為:10

# count 計算次數(shù)
s = 'helloworld'
print(s.count('l'))   #結(jié)果為:3

格式化輸出

使用%格式化砚蓬,若想輸出%,則使用另一個%轉(zhuǎn)義

print('我叫%s' % '張三') #輸出:我叫張三
print('我叫%s,今年%d,學習進度2%%' % ('張三', 10000)) #輸出:我叫張三,今年10000,學習進度2%

format格式化

#第一種用法
s = "我叫{}盆色,今年{}灰蛙,愛好{}"
s12 = s.format('張三', '25', '女')
print(s12) #輸出:我叫張三,今年25隔躲,愛好女

#第二種用法
s1 = "我叫{0}摩梧,今年{1},愛好{2},我依然叫{0}"
s13 = s1.format('張三', '25', '女')
print(s13) #輸出:我叫張三宣旱,今年25仅父,愛好女,我依然叫張三

#第三種用法
s3 = "我叫{name},今年{age}响鹃,他也叫{name}"
s14 = s3.format(age=25,name='張三')
print(s14) #輸出:我叫張三驾霜,今年25,他也叫張三

列表

append(obj)在列表末尾添加新的元素

l = ['張三', '李四', '王五']
l.append('趙六')
print(l) #輸出:['張三', '李四', '王五', '趙六']
l.append([1, 2, 3])
print(l) #輸出:['張三', '李四', '王五', '趙六', [1, 2, 3]]

insert(index, obj)將元素插入到列表指定位置

l = ['張三', '李四', '王五']
l.insert(1, '葫蘆')
print(l) #輸出:['張三', '葫蘆', '李四', '王五']

extend(iterable)在列表末尾一次性追加另一個序列中的多個值(用新列表擴展原來的列表)

l = ['張三', '李四', '王五']
l.extend('ab')
print(l) #輸出:['張三', '李四', '王五', 'a', 'b']
l.extend([1, '2122'])
print(l) #輸出:['張三', '李四', '王五', 'a', 'b', 1, '2122']
l.extend(1) #輸出:TypeError: 'int' object is not iterable

pop([index=-1]) 按照索引刪除列表中的一個元素(默認最后一個元素)买置,并且返回該元素的值粪糙。

l = ['張三', '李四', '王五']
ret = l.pop(1)
print(ret) #輸出:李四

remove(obj) 按照元素去刪除列表中某個值的第一個匹配項。

l = ['張三', '李四', '王五', '李四']
l.remove('李四')
print(l) #輸出:['張三', '王五', '李四']
l.remove('趙六') #報錯:ValueError: list.remove(x): x not in list

clear() 清空列表忿项,返回空列表蓉冈。

l = ['張三', '李四', '王五']
l.clear()
print(l) #輸出:[]

del 刪除列表

l = ['張三', '李四', '王五']
del l
print(l) #報錯:NameError: name 'l' is not defined

del 按照索引刪除元素

l = ['張三', '李四', '王五']
del l[1]
print(l) #輸出:['張三', '王五']

del 按照切片刪除

l = ['張三', '李四', '王五']
del l[:2]
print(l) #輸出:['王五']

按照索引改

l = ['張三', '李四', '王五']
l[0] = '趙六'
print(l) #輸出:['趙六', '李四', '王五']

按照切片去改

l = ['張三', '李四', '王五', '趙六']
l[1:2] = 'abcd'
print(l) #輸出:['張三', 'a', 'b', 'c', 'd', '王五', '趙六']

l = ['張三', '李四', '王五', '趙六']
l[:3] = 'a'
print(l) #輸出:['a', '趙六']

l = ['張三', '李四', '王五', '趙六']
l[:2] = [11, 22, 33]
print(l) #輸出:[11, 22, 33, '王五', '趙六']

l = ['張三', '李四', '王五', '趙六']
l[:3:2] = 'ab' # 加步長時,必須一一對應城舞,不對應則報ValueError異常
print(l) #輸出:['a', '李四', 'b', '趙六']

按照索引,切片(步長)寞酿,同字符串
遍歷

l = ['張三', '李四', '王五']
for i in l:
    print(i) #輸出(逗號表示換行):張三,李四,王五

其他方法

print(len(l)) # 總個數(shù)
print(l.count('WuSir'))  # 某個元素出現(xiàn)的次數(shù)
l1 = [1, 9, 8, 4, 3, 2, 6,]
l1.sort()  # 正序排序
print(l1)
l1.sort(reverse=True)  # 倒敘排序
print(l1)
l1.reverse()  # 翻轉(zhuǎn)
print(l1)

元組(只讀列表)

定義

tu = (1, 2, 33, 'alex')
print(type(tu)) #輸出:<class 'tuple'>

其他操作與列表相同

字典

直接賦值家夺,key已存在則修改,key不存在則添加

dic = {'name': '張三', 'age': 28}
dic['name'] = '李四'
dic['sex'] = 'male'
print(dic) #輸出:{'name': '李四', 'age': 28, 'sex': 'male'}

setdefault() key已存在則不變伐弹,不存在則添加拉馋,默認值None

dic = {'name': '張三', 'age': 28}
dic.setdefault('name', '李四')
dic.setdefault('sex')
dic.setdefault('high', 169)
print(dic) #輸出:{'name': '張三', 'age': 28, 'sex': None, 'high': 169}

pop() 方法指定key刪除對應元素,返回元素的值惨好。刪除不存在的key煌茴,報KeyError異常∪沾ǎ可以通過第二個參數(shù)來指定當key不存在時候的返回值蔓腐,若指定則不會報KeyError異常。

dic = {'name': '張三', 'age': 28, 'sex': '男'}
print(dic.pop('name'), dic) #輸出:張三
print(dic) #輸出:{'age': 28, 'sex': '男'}
print(dic.pop('name1')) #輸出:KeyError: 'name1'
print(dic.pop('name1',None)) #輸出:None

popitem() 隨機刪除龄句,在3.6后總是刪除最后一個回论。返回值是由key和值組成的tuple。如果是空字典分歇,則報KeyError異常傀蓉。

dic = {'name': '張三', 'age': 28, 'sex': '男'}
rt = dic.popitem()
print(rt) #輸出:('sex', '男')
print(type(rt)) #輸出:<class 'tuple'>
print(dic) #輸出:{'name': '張三', 'age': 28}
print({}.popitem()) #輸出:KeyError: 'popitem(): dictionary is empty'

clear() 清空整個字典

dic = {'name': '張三', 'age': 28, 'sex': '男'}
dic.clear()
print(dic) #輸出:{}

del 刪除字典

dic = {'name': '張三', 'age': 28, 'sex': '男'}
del dic
print(dic) #輸出:NameError: name 'dic' is not defined

del 按照鍵刪除元素

dic = {'name': '張三', 'age': 28, 'sex': '男'}
del dic['name']
print(dic) #輸出:{'age': 28, 'sex': '男'}
del dic['name1'] #輸出:KeyError: 'name1'

直接賦值,當key存在時修改

dic = {'name': '張三', 'age': 28}
dic['name'] = '李四'
print(dic) #輸出:{'name': '李四', 'age': 28}

update() 方法將dic里面的鍵值對覆蓋并更新到dic2中卿樱,dic本身不變僚害。

dic = {"name": "張三", "age": 18, "sex": "male"}
dic2 = {"name": "李四", "weight": 75}
dic2.update(dic)  # 將dic里面的鍵值對覆蓋并更新到dic2中,dic不變 繁调。
print(dic)  # {'name': '張三', 'age': 18, 'sex': 'male'}
print(dic2)  # {'name': '張三', 'weight': 75, 'age': 18, 'sex': 'male'}

直接讀取

dic = {'name': '張三', 'age': 28}
print(dic['name']) #輸出:張三
print(dic['name1']) #輸出:KeyError: 'name1'

get()方法萨蚕,若key存在則返回對應的值,若key不存在蹄胰,默認返回None岳遥,第二個參數(shù)可以指定當key不存在時的返回值。

dic = {'name': '張三', 'age': 28}
print(dic.get('name')) #輸出:張三
print(dic.get('name1')) #輸出:None
print(dic.get('name1','沒有此鍵...')) #輸出:沒有此鍵...

keys()方法獲取字典所有的key,返回一個類似列表的值裕寨,但是沒有索引浩蓉。

dic = {'name': '張三', 'age': 28}
l = dic.keys()
print(l) #輸出:dict_keys(['name', 'age'])
print(l[0]) #輸出:TypeError: 'dict_keys' object does not support indexing

values()方法獲取字典所有的值,返回一個類似列表的值,但是沒有索引宾袜。

dic = {'name': '張三', 'age': 28}
l = dic.values()
print(l) #輸出:dict_values(['張三', 28])
print(l[0]) #輸出:TypeError: 'dict_values' object does not support indexing

items()方法獲取字典所有的鍵和值,返回一個類似列表的值捻艳,但是沒有索引。每個元素都是元組庆猫,存儲著字典的鍵和值认轨。

dic = {'name': '張三', 'age': 28}
l = dic.items()
print(l) #輸出:dict_items([('name', '張三'), ('age', 28)])
print(l[0]) #輸出:TypeError: 'dict_items' object does not support indexing

dict.fromkeys(seq[, val]) 創(chuàng)建一個新字典,以序列 seq 中元素做字典的鍵月培,val為字典所有鍵對應的初始值嘁字,默認為None恩急。當val是數(shù)組時存在,見例3纪蜒。

dic = dict.fromkeys('abc')
print(dic) #輸出:{'a': None, 'b': None, 'c': None}

dic = dict.fromkeys('abc',1)
print(dic) #輸出:{'a': 1, 'b': 1, 'c': 1}

dic = dict.fromkeys('abc',[])
dic['a'].append(666) 
print(dic) #輸出:{'a': [666], 'b': [666], 'c': [666]}

遍歷所有的鍵

dic = {'name': '張三', 'age': 28}
for i in dic: #默認for循環(huán)遍歷的就是鍵
    print(i) #輸出(逗號表示換行):name,age

for i in dic.keys():
    print(i) #與上面輸出相同

遍歷所有的值

dic = {'name': '張三', 'age': 28}
for i in dic.values():
    print(i) #輸出(逗號表示換行):張三,28

遍歷所有的鍵和值

dic = {'name': '張三', 'age': 28}
for k, v in dic.items():
    print(k, v) #輸出(逗號表示換行):name 張三,age 28

其他

分別賦值

a, b = 1 ,3
print(a,b) #輸出:1 3
a, b = [22, 33]
print(a,b) #輸出:22 33

range(start, stop[, step]) 函數(shù)可創(chuàng)建一個整數(shù)列表(只是和列表類似)衷恭,一般用在 for 循環(huán)中。

r = range(10)
print(r) #輸出:range(0, 10)
print(type(r)) #輸出:<class 'range'>
for i in range(5):
    print(i) #輸出(逗號表示換行):0,1,2,3,4
for i in range(3,5):
    print(i) #輸出(逗號表示換行):3,4
for i in range(0, 10, 2):
    print(i) #輸出(逗號表示換行):0,2,4,6,8
for i in range(5,0,-1):
    print(i) #輸出(逗號表示換行):5,4,3,2,1

常見的坑

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末纯续,一起剝皮案震驚了整個濱河市随珠,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌猬错,老刑警劉巖牙丽,帶你破解...
    沈念sama閱讀 219,589評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異兔魂,居然都是意外死亡,警方通過查閱死者的電腦和手機举娩,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,615評論 3 396
  • 文/潘曉璐 我一進店門析校,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人铜涉,你說我怎么就攤上這事智玻。” “怎么了芙代?”我有些...
    開封第一講書人閱讀 165,933評論 0 356
  • 文/不壞的土叔 我叫張陵吊奢,是天一觀的道長。 經(jīng)常有香客問我纹烹,道長页滚,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,976評論 1 295
  • 正文 為了忘掉前任铺呵,我火速辦了婚禮裹驰,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘片挂。我一直安慰自己幻林,他們只是感情好,可當我...
    茶點故事閱讀 67,999評論 6 393
  • 文/花漫 我一把揭開白布音念。 她就那樣靜靜地躺著沪饺,像睡著了一般。 火紅的嫁衣襯著肌膚如雪闷愤。 梳的紋絲不亂的頭發(fā)上整葡,一...
    開封第一講書人閱讀 51,775評論 1 307
  • 那天,我揣著相機與錄音肝谭,去河邊找鬼掘宪。 笑死蛾扇,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的魏滚。 我是一名探鬼主播镀首,決...
    沈念sama閱讀 40,474評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼鼠次!你這毒婦竟也來了更哄?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,359評論 0 276
  • 序言:老撾萬榮一對情侶失蹤腥寇,失蹤者是張志新(化名)和其女友劉穎成翩,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體赦役,經(jīng)...
    沈念sama閱讀 45,854評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡麻敌,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,007評論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了掂摔。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片付燥。...
    茶點故事閱讀 40,146評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡储藐,死狀恐怖锅移,靈堂內(nèi)的尸體忽然破棺而出互婿,到底是詐尸還是另有隱情,我是刑警寧澤叭披,帶...
    沈念sama閱讀 35,826評論 5 346
  • 正文 年R本政府宣布寥殖,位于F島的核電站,受9級特大地震影響涩蜘,放射性物質(zhì)發(fā)生泄漏嚼贡。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,484評論 3 331
  • 文/蒙蒙 一同诫、第九天 我趴在偏房一處隱蔽的房頂上張望编曼。 院中可真熱鬧,春花似錦剩辟、人聲如沸掐场。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,029評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽熊户。三九已至,卻和暖如春吭服,著一層夾襖步出監(jiān)牢的瞬間嚷堡,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,153評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留蝌戒,地道東北人串塑。 一個月前我還...
    沈念sama閱讀 48,420評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像北苟,于是被迫代替她去往敵國和親桩匪。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,107評論 2 356

推薦閱讀更多精彩內(nèi)容

  • Day02的課程要點記錄詳細教程地址:金角大王 - Day1 Python基礎(chǔ)1金角大王 - Day2 Pytho...
    乘風逐月閱讀 467評論 0 0
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理友鼻,服務發(fā)現(xiàn)傻昙,斷路器,智...
    卡卡羅2017閱讀 134,672評論 18 139
  • 〇彩扔、前言 本文共108張圖妆档,流量黨請慎重! 歷時1個半月虫碉,我把自己學習Python基礎(chǔ)知識的框架詳細梳理了一遍贾惦。 ...
    Raxxie閱讀 18,959評論 17 410
  • 概述 本文首發(fā)于我的個人博客JDK Timer實現(xiàn)詳解,嚴禁轉(zhuǎn)載敦捧。定時器是工程開發(fā)中比較常用的工具纤虽,本文研究JDK...
    winwill2012閱讀 995評論 0 0
  • 沒有誰甘愿受人壓迫,一個人被另一個人奴役绞惦,不是因為這個人強而另一個人弱,而是因為那里奉行暴力邏輯洋措,強者的力量未能...
    云丹風卿閱讀 171評論 0 0