python_筆記_day7_列表_格式字符串_常用對象方法

day7.png

1.格式字符串:


在字符串中通過格式占位符來表示字符串中的變化部分

1.1語法:

包含格式占位符的字符%(給格式占位賦值的數(shù)據(jù)列表)

1.2說明:

格式占位符:%s - 字符串
          %d - 整數(shù)
          %.nf - 浮點(diǎn)數(shù),n可以約束小數(shù)點(diǎn)后面的小數(shù)位數(shù)(正整數(shù))
          %c -  字符,可以將整數(shù)轉(zhuǎn)換為字符

# name = input('姓名:')
# age = int(input("age:"))
# print('%s今年%d歲' % (name, age))

2.常用對象方法


2.1 字符串1.count(字符串2)

  • 字符串1.count(字符串2)
    統(tǒng)計(jì)字符串2 在字符串1中出現(xiàn)的次數(shù)
str1 = 'and you? how are you!'
print(str1.count('a'))
# 練習(xí):打印字符串中出現(xiàn)次數(shù)最多的字符和次數(shù)
# 'how are you?oh' 打印: o 3次
str1 = 'how are you?oh'
max_conut = 0  #保存當(dāng)前最大次數(shù)
max_char = ''    #保存當(dāng)前最大次數(shù)對應(yīng)的字符
for char in str1:
     if str1.count(char) > max_conut :# 獲取字符出現(xiàn)的次數(shù),如果次數(shù)大于當(dāng)前最大次數(shù),更新最大次數(shù)和字符
         max_conut = str1.count(char)
         max_char = char
print('%s出現(xiàn)%d次'%(max_char , max_conut))

2.2字符串1.find(字符串2)

  • 字符串1.find(字符串2)
    在字符串1中查找字符串2 第一次出現(xiàn)的位置,如果找不到返回-1,找到了返回第一個字符的下標(biāo)
  • 字符串1.find(字符串2,開始下標(biāo),結(jié)束下標(biāo))
    在字符串1中的開始下標(biāo)到結(jié)束下標(biāo)查找字符串2 第一次出現(xiàn)的位置
print(str1.find('you'))
print(str1.find('you', -8, -1))
# 練習(xí) :在字符串中'and you? how are you! you' ,找到所有'you'出現(xiàn)的下標(biāo).打印:4,17,22
str1 = 'and you? how are you! you'
count = str1.find('you')
while True:
    print(count, ',', end=' ')
    count = str1.find('you', count + 1,)
    if count == -1:
        break
 print()

2.2.1 字符串1.index

  • index 功能和find一樣,只是如果字符串2不存在的時候回報(bào)錯
print(str1.index('you2'))

2.3字符串1.isdigit

  • 判斷字符串1中是否只有數(shù)字字符
print('83'.isdigit())

2.4 字符串1.isnumeric()

  • 判斷字符串1是否是數(shù)字字符串(可以檢查中文數(shù)字)
print('壹仟'.isnumeric())

2.5字符串1.join(序列)

  • 將序列中的元素用字符串1鏈接在一起產(chǎn)生一個新的字符串
print('*'.join('abc'))
print('+'.join(['me', 'you', 'he']))
  • 練習(xí): 自己實(shí)現(xiàn)join的功能,給字符串1,和字符串2,用字符串1將字符串2中的所有的字符串連接起來
  • 例如 : str1 = 'aaa', str2 = '123' .輸出:'1aaa2aaa3'
 tr1, str2 = 'aaa', '123'
nuw_str = ''
for index in range(len(str2)):
     if index == len(str2) - 1:
        nuw_str += str2[index]
     else:
         nuw_str += str2[index] + str1
print(nuw_str)

str2 = 'ag23bsh2390s'
str1 = '+'
str3 = ''
for char in str2:
    if '0' <=  char <= '9':
        str3 += char + str1
print(str3[:-len(str1)])

2.6 max(序列),min(序列) - 求序列中元素的最大值和最小值

print(max('ahfaehfkaheaz'))
print(min('ahahfka'))
print(min([120, 2, 9, 99, -10]))
print('afaweffafe'.replace('a','A',3))

2.7 字符串1.split(字符串2) - 在字符串1中把字符串2作為切點(diǎn),將字符串1切割

 print('afaweffafewarawerr2rgehjutre'.split('w'))

3. 列表


3.1 什么時候用列表

需要用一個變量去同時保存多個數(shù)據(jù)


3.2什么是列表(list)

列表是python內(nèi)置的容器型數(shù)據(jù)類型(序列),
可變(說明支持增刪改)并且有序(支持下標(biāo)操作)
用[]將多個元素括起來,多個元素之間用','隔開:[元素1,元素2,元素3...]


3.3 列表中的元素:

python內(nèi)置的數(shù)據(jù)類型對應(yīng)的數(shù)據(jù),或者是程序員自定義類型的數(shù)據(jù)都可以:
不同元素的類型可以不一樣
賦值運(yùn)算表達(dá)式不能作為列表元素,其他的都可以

list1 = [120, 12.9, True, 'abc', [1, 23],  {'a':10}, lambda x: x*10]
print(list1)
num1 = 10
list2 = [num1, 100 + 200, 20 > num1]

練習(xí):

將班級學(xué)生的成績保存到score中,求班級的平均成績,和不及格人數(shù)

scores = [90, 80,70, 100, 76, 57, 54]
num1 = 0  #不及格人數(shù)
num2 = 0  #總成績
for index in range(len(scores)):
    num2 += scores[index]
    if scores[index] < 60:
        num1 += 1
print('平均成績是:%.2f 不及格人數(shù):%d' % (num2 / len(scores), num1))

3.4 查 - 獲取列表元素

3.4.1 獲取單個元素: 列表[下標(biāo)]

names = ['海蜇王', '火影', '死神', '犬夜叉', '妖精的尾巴', '熊出沒', '一人之下']
print(names[-2])

3.4.2 獲取部分元素-切片(和字符串一樣):

列表[開始下標(biāo):結(jié)束下標(biāo):步長]
切片的結(jié)果是列表

print(names[1:4]) #['火影', '死神', '犬夜叉']
print(names[::-1]) #['一人之下', '熊出沒', '妖精的尾巴', '犬夜叉', '死神', '火影', '海蜇王']
print(name[:]) #淺拷貝

3.4.3 遍歷

 a.直接遍歷 
 for 變量 in 列表:
    循環(huán)體
 
 b.通過下標(biāo)遍歷
 for 變量 in range(len(列表))
    循環(huán)體   
for item in names:
    print(item)

for index in range(len(names)):
    print(index, names[index])

3.4.4 補(bǔ)充: 求和函數(shù)sum

sum(序列) - 求序列中所有元素的和:序列要求元素類型一致,并且元素支持求和運(yùn)算

print(sum(scores), sum(range(101)))

3.5 增 - 添加元素

3.5.1 列表.append(元素)

在指定的列表的最后添加指定元素

persons = ['路飛', '寶兒姐', '張楚蘭']
persons.append('容嬤嬤')
persons.append('趙云')
print(persons)

3.5.2列表.insert(下標(biāo),元素)

在指定列表的指定下標(biāo)前插入元素

numbers = [1, 20, 34, 50]
numbers.insert(2, 22)
print(numbers)

** 練習(xí):**

輸入一個數(shù)字將他添加到一個有序列表中,要求添加進(jìn)去后不改變從大到小或者從小到大排列順序

numbers1 = [1, 20, 100, 200]
num = int(input('請輸入數(shù)字:'))
# 思路:找到第一個比輸入的數(shù)字大的數(shù)字對應(yīng)的下標(biāo),然后插入到這個下標(biāo)前.如果原來的數(shù)字都比輸入的小,就會添加到最后
for index in range(len(numbers1)):
     if numbers1[index] >= num:
        numbers1.insert(index, num)
        break
else:
     numbers1.append(num)
print(numbers1)

3.6 刪 - 刪除元素

3.6.1 del 列表[下標(biāo)]

將指定列表中指定下標(biāo)對應(yīng)的元素刪除

names = ['海蜇王', '火影', '死神', '犬夜叉', '妖精的尾巴', '熊出沒', '一人之下']
del names[2]  # 凡是單個的下標(biāo)就不能越界
print(names)

3.6.2 列表.remove(元素)

將指定列表中第一指定元素刪除
注意如果元素不存在,會報(bào)錯

names.remove('海蜇王')
print(names)

3.6.3 列表.pop()

移除列表中最后一個,返回被移除的元素
列表.pop(下標(biāo)) - 移除列表中指定下標(biāo)對應(yīng)的元素

del_name = names.pop()
print(del_name)
names.pop(0)
print(names)

需求:刪除所有的指定元素,例如'海蜇王'
names = ['海蜇王', '火影', '海蜇王', '死神', '犬夜叉', '妖精的尾巴', '熊出沒', '一人之下', '海蜇王']
要求: 用remove , 用del/pop

print('=================================================')
names = ['海蜇王', '火腿', '海蜇王', '死神辣條', '狗肉叉燒', '豬尾巴', '熊掌', '螞蟻上樹', '海蜇王']
while True:
    if '海蜇王' in names :
        names.remove( '海蜇王')
    else:
        break
print(names)

name = '海蜇王'
names = ['海蜇王', '火腿', '海蜇王', '死神辣條', '狗肉叉燒', '豬尾巴', '熊掌', '螞蟻上樹', '海蜇王']
while True:
    if '海蜇王' not in names :
        break
    for index in range(len(names)):
        if names[index] in name:
            del names[index]
            break
print(names)

name = '海蜇王'
names = ['海蜇王', '海蜇王', '火腿', '海蜇王', '死神辣條', '狗肉叉燒', '豬尾巴', '熊掌', '螞蟻上樹', '海蜇王']
while True:
    if '海蜇王' not in names :
        break
    for index in range(len(names)):
        if names[index] in name:
            names.pop(index)
            break
print(names)

print('=================================================')

3.6.4 清空: 列表.clear()

刪除列表中所有的元素

names = ['海蜇王', '海蜇王', '火腿', '海蜇王', '死神辣條', '狗肉叉燒', '豬尾巴', '熊掌', '螞蟻上樹', '海蜇王']
names.clear()
print(names)

3.7 改 - 修改列表中的元素

列表[下標(biāo)] = 新值 - 將列表中指定下標(biāo)對應(yīng)的元素改成新值

nums = [1, 2, 3]
nums[0] = 100
print(nums)

3.8 in / not in

元素列表

print([1, 2] in [1, 2, 3, 4])  # False
print([1, 2] in [1, 2, 3, 4, [1, 2]])  # True
print(1 in [[1], 2, 3, 4])  # False
print(1 in [1, 2, 3, 4])  # True
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末猬膨,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子谒所,更是在濱河造成了極大的恐慌沛申,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,525評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件尖淘,死亡現(xiàn)場離奇詭異著觉,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)趁桃,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,203評論 3 395
  • 文/潘曉璐 我一進(jìn)店門卫病,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人忽肛,你說我怎么就攤上這事烂斋。” “怎么了罕模?”我有些...
    開封第一講書人閱讀 164,862評論 0 354
  • 文/不壞的土叔 我叫張陵帘瞭,是天一觀的道長。 經(jīng)常有香客問我抛腕,道長,這世上最難降的妖魔是什么担敌? 我笑而不...
    開封第一講書人閱讀 58,728評論 1 294
  • 正文 為了忘掉前任全封,我火速辦了婚禮,結(jié)果婚禮上行楞,老公的妹妹穿的比我還像新娘。我一直安慰自己子房,他們只是感情好就轧,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,743評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般每币。 火紅的嫁衣襯著肌膚如雪兰怠。 梳的紋絲不亂的頭發(fā)上梦鉴,一...
    開封第一講書人閱讀 51,590評論 1 305
  • 那天肥橙,我揣著相機(jī)與錄音秸侣,去河邊找鬼。 笑死椭坚,一個胖子當(dāng)著我的面吹牛搏色,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播频轿,決...
    沈念sama閱讀 40,330評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼烁焙,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了耕赘?” 一聲冷哼從身側(cè)響起骄蝇,我...
    開封第一講書人閱讀 39,244評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎鞠苟,沒想到半個月后乞榨,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,693評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡当娱,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,885評論 3 336
  • 正文 我和宋清朗相戀三年吃既,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片跨细。...
    茶點(diǎn)故事閱讀 40,001評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡鹦倚,死狀恐怖冀惭,靈堂內(nèi)的尸體忽然破棺而出震叙,到底是詐尸還是另有隱情,我是刑警寧澤散休,帶...
    沈念sama閱讀 35,723評論 5 346
  • 正文 年R本政府宣布媒楼,位于F島的核電站,受9級特大地震影響戚丸,放射性物質(zhì)發(fā)生泄漏划址。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,343評論 3 330
  • 文/蒙蒙 一限府、第九天 我趴在偏房一處隱蔽的房頂上張望夺颤。 院中可真熱鬧,春花似錦胁勺、人聲如沸世澜。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,919評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽寥裂。三九已至,卻和暖如春案疲,著一層夾襖步出監(jiān)牢的瞬間抚恒,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,042評論 1 270
  • 我被黑心中介騙來泰國打工络拌, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留俭驮,地道東北人。 一個月前我還...
    沈念sama閱讀 48,191評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像混萝,于是被迫代替她去往敵國和親遗遵。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,955評論 2 355