02_Python基礎(chǔ)二_全棧開發(fā)學(xué)習(xí)筆記

1. 數(shù)據(jù)類型

1.1 數(shù)字int

1.1.1 int類型的使用方法

1)bit_length()方法:當(dāng)十進(jìn)制用二進(jìn)制表示時(shí)侮攀,最少使用的位數(shù)

范例

v = 11
data = v.bit_length()
print(data)

執(zhí)行結(jié)果

4

1.2 字符串str

1.2.1 字符串的索引

索引即下標(biāo)芽唇,就是字符串組成的元素從第一個(gè)開始,初始索引為0以此類推毅桃。

范例

s = 'ABCDLSESRF'

s1 = s[0]
print(s1)

s2 = s[2]
print(s2)

s3 = s[-1]
print(s3)

s4 = s[-2]
print(s4)

執(zhí)行結(jié)果:

A
C
F
R


1.2.2 字符串的切片

切片就是通過(guò)索引(索引:索引:步長(zhǎng))截取字符串的一段爱榔,形成新的字符串(原則就是顧頭不顧尾)路幸。

范例

s = 'ABCDLSESRF'

s5 = s[0:4]
print(s5)

s6 = s[0:-1]    # -1 是列表中最后一個(gè)元素的索引,但是要滿足顧頭不顧尾的原則模孩,所以取不到F元素
print(s6)

s7 = s[:]    # 默認(rèn)到最后
s8 = s[0:]    # 默認(rèn)到最后
print(s7,s8)

s = 'ABCDLSESRF'  # s[首:尾:步長(zhǎng)]
s10 = s[0:5:2]    # 正向步長(zhǎng)
print(s10)
s11 = s[4:0:-1]    # 反向步長(zhǎng)
print(s11)
s12 = s[3::-1]    # 反向步長(zhǎng)
print(s12)
s13 = s[3::-2]    # 反向步長(zhǎng)
print(s13)
s14 = s[-1::-1]    # 反向步長(zhǎng)
print(s14)
s15 = s[::-1]    # 反向步長(zhǎng)
print(s15)

執(zhí)行結(jié)果:

ABCD
ABCDLSESR
ABCDLSESRF ABCDLSESRF

ACL
LDCB
DCBA
DB
FRSESLDCBA
FRSESLDCBA


1.2.3 字符串的常用操作方法

  1. capitalize()方法
    capitalize() 將字符串的第一個(gè)字母變成大寫,其他字母變小寫尖阔。

范例

s = "alexWUsir"
s1 = s.capitalize()

執(zhí)行結(jié)果

Alexwusir


  1. lower()方法與upper()方法
    lower() 方法轉(zhuǎn)換字符串中所有大寫字符為小寫。
    upper() 方法將字符串中的小寫字母轉(zhuǎn)為大寫字母榨咐。

范例

s = "alexWUsir"
s1 = s.upper()
s2 = s.lower()

print(s1)
print(s2)

執(zhí)行結(jié)果

ALEXWUSIR
alexwusir


應(yīng)用范例

s_str = "acEQ1"
you_input = input("請(qǐng)輸入驗(yàn)證碼介却,不區(qū)分大小寫:")

if s_str.upper() == you_input.upper():
    print("輸入成功")
else:
    print("請(qǐng)重新輸入")

執(zhí)行結(jié)果

請(qǐng)輸入驗(yàn)證碼,不區(qū)分大小寫:aceq1
輸入成功


  1. swapcase() 方法
    swapcase() 方法用于對(duì)字符串的大小寫字母進(jìn)行轉(zhuǎn)換

范例

s = "alexWUsir"
s3 = s.swapcase()

print(s3)

執(zhí)行結(jié)果

ALEXwuSIR


  1. title()方法
    title() 方法返回"標(biāo)題化"的字符串,就是說(shuō)所有單詞都是以大寫開始块茁,其余字母均為小寫(見 istitle())齿坷。
    簡(jiǎn)易說(shuō)明:每個(gè)隔開(特殊字符或者數(shù)字)的單詞首字母大寫

范例

s1 = "alex egon wusir"
s2 = "alex*egon-wusir"

s3 = s1.title()
s4 = s2.title()

print(s3)
print(s4)

s5 = "fade,crazy*w4rri0r_songsong node_3"
s6 = s5.title()

print(s6)

執(zhí)行結(jié)果

Alex Egon Wusir
Alex*Egon-Wusir
Fade,Crazy*W4Rri0R_Songsong Node_3


  1. center()方法
    center() 返回一個(gè)原字符串居中,并使用空格填充至長(zhǎng)度 width 的新字符串。默認(rèn)填充字符為空格龟劲。
    簡(jiǎn)易說(shuō)明:居中胃夏,空白填充

范例

s = "alexWUsir"
s1 = s.center(20)
s2 = s.center(20,'~')

print(s1)
print(s2)

執(zhí)行結(jié)果

     alexWUsir      
~~~~~alexWUsir~~~~~~


  1. expandtabs()方法
    expandtabs() 方法把字符串中的 tab 符號(hào)('\t')轉(zhuǎn)為空格,tab 符號(hào)('\t')默認(rèn)的空格數(shù)是 8昌跌。

范例

s = "alex\tsir"
s1 = s.expandtabs()

print(s1)

s2 = "a\tb"
print(s2)

print(s2.expandtabs())
print(s2.expandtabs(20))

執(zhí)行結(jié)果

alex    sir
a   b
a       b
a                   b


  1. startswith()方法 與 endswith()方法
    startswith() 方法用于檢查字符串是否是以指定子字符串開頭仰禀,如果是則返回 True,否則返回 False蚕愤。如果參數(shù) beg 和 end 指定值答恶,則在指定范圍內(nèi)檢查饺蚊。
    endswith() 方法用于判斷字符串是否以指定后綴結(jié)尾,如果以指定后綴結(jié)尾返回True悬嗓,否則返回False污呼。可選參數(shù)"start"與"end"為檢索字符串的開始與結(jié)束位置包竹。
    判斷以什么開頭與結(jié)尾

范例

s = 'alexWUsir'
s1 =s.startswith('alex')
s2 = s.startswith('e',2,5)   # 以2開頭的索引位置燕酷,以5結(jié)尾的索引位置

print(s1)
print(s2)

s3 = "Hello World!"

print(s3.endswith("!"))
print(s3.endswith("#"))

執(zhí)行結(jié)果

True
True
True
False


應(yīng)用范例

s = 'alexWUsir'

if s7:
    pass
elif s.startswith('bl'):
    pass


  1. find()方法
    find() 方法檢測(cè)字符串中是否包含子字符串 str ,如果指定 beg(開始) 和 end(結(jié)束) 范圍周瞎,則檢查是否包含在指定范圍內(nèi)苗缩,如果包含子字符串返回開始的索引值,否則返回-1声诸。
    簡(jiǎn)易說(shuō)明:通過(guò)元素找索引酱讶,找不到返回-1

范例

s = "alexWUsir"

s1 = s.find("W")
s2 = s.find("A")

print(s1)
print(s2)

s3 = "Hello World!"

print(s3.find("o"))
print(s3.find("ok"))
print(s3.find("o",0,3))
print(s3.find("o",0,5))

執(zhí)行結(jié)果

4
-1
4
-1
-1
4


  1. index()方法
    index() 方法檢測(cè)字符串中是否包含子字符串 str ,如果指定 beg(開始) 和 end(結(jié)束) 范圍彼乌,則檢查是否包含在指定范圍內(nèi)泻肯,該方法與 python find()方法一樣,只不過(guò)如果str不在 string中會(huì)報(bào)一個(gè)異常慰照。
    簡(jiǎn)易說(shuō)明:通過(guò)元素找索引灶挟,找不到報(bào)錯(cuò)

范例

s = "alexWUsir"

s1 = s.index("W")

print(s1)

s = "Hello World!"

print(s.index("o"))
print(s.index("o",5,8))

執(zhí)行結(jié)果

4
4
7


  1. strip()方法 與 lstrip()方法 與 rstrip()方法
    strip() 方法用于移除字符串頭尾指定的字符(默認(rèn)為空格或換行符)或字符序列。
    注意:該方法只能刪除開頭或是結(jié)尾的字符焚挠,不能刪除中間部分的字符膏萧。
    lstrip() 方法用于截掉字符串左邊的空格或指定字符。
    rstrip() 刪除 string 字符串末尾的指定字符(默認(rèn)為空格)

范例

s = "  alexWUsir  "

s1 = s.strip()
s2 = s.lstrip()
s3 = s.rstrip()

print(s1)
print(s2)
print(s3)

s4 = "alexWUsir%"
s5 = s4.strip("%")
print(s5)

s6 = " *a%lexWUsi* r%"
s7 = s6.strip(" %*")
print(s7)

執(zhí)行結(jié)果

alexWUsir
alexWUsir  '
'  alexWUsir
alexWUsir
a%lexWUsi* r


應(yīng)用范例

username = input('請(qǐng)輸入名字:').strip()
if username =='春哥':
    print('恭喜春哥發(fā)財(cái)')

執(zhí)行結(jié)果

請(qǐng)輸入名字:  春哥
恭喜春哥發(fā)財(cái)


  1. split()方法 與 rsplit()
    split() 通過(guò)指定分隔符對(duì)字符串進(jìn)行切片蝌衔,如果參數(shù) num 有指定值榛泛,則僅分隔 num 個(gè)子字符串
    rsplit() 方法通過(guò)指定分隔符對(duì)字符串進(jìn)行分割并返回一個(gè)列表,默認(rèn)分隔符為所有空字符噩斟,包括空格曹锨、換行(\n)、制表符(\t)等剃允。類似于 split() 方法沛简,只不過(guò)是從字符串最后面開始分割。
    簡(jiǎn)易說(shuō)明:拆分 str ----> list
s = "hello world!"

print(s.split())
print(s.split("o"))
print(s.split("l"))

print(s.rsplit("o"))
print(s.rsplit("o",1))

s = "alex wusir taibai"

l1 = s.split()
print(l1)

s2 = ';alex;wusir;taibai'
l2 = s.split(';')
print(l2)

l3 = s.split('a')
print(l3)

執(zhí)行結(jié)果

['hello', 'world!']
['hell', ' w', 'rld!']
['he', '', 'o wor', 'd!']
['hell', ' w', 'rld!']
['hello w', 'rld!']

['alex', 'wusir', 'taibai']
['alex wusir taibai']
['', 'lex wusir t', 'ib', 'i']

12)format()方法
范例1

s3 = "My name is {0}, I am {1} years old."
print(s3.format("rock",23))

s3 = "My name is {0}, I am {0} years old."
print(s3.format("rock",23))

s3 = "My name is {name}, I am {age} years old."
print(s3.format(name="alex",age=22))

執(zhí)行結(jié)果

My name is rock, I am 23 years old.
My name is rock, I am rock years old.
My name is alex, I am 22 years old.


范例2

s = '我叫{}斥废,今年{}椒楣,愛好{},再說(shuō)一下我叫{}'.format('太白',36,'girl','太白')
print(s)
name = input('請(qǐng)輸入名字:')
s = '我叫{0}牡肉,今年{1}捧灰,愛好{2},再說(shuō)一下我叫{0}'.format(name,36,'girl')
print(s)
name = input('請(qǐng)輸入名字:')
s = '我叫{name}统锤,今年{age}毛俏,愛好{hobby}炭庙,再說(shuō)一下我叫{name}'.format(age=18,name=name,hobby='girl')
print(s)

執(zhí)行結(jié)果

我叫太白,今年36煌寇,愛好girl焕蹄,再說(shuō)一下我叫太白
請(qǐng)輸入名字:ada
我叫ada,今年36阀溶,愛好girl腻脏,再說(shuō)一下我叫ada
請(qǐng)輸入名字:alex
我叫alex,今年18银锻,愛好girl迹卢,再說(shuō)一下我叫alex


  1. replace()方法
    replace() 方法把字符串中的 old(舊字符串) 替換成 new(新字符串),如果指定第三個(gè)參數(shù)max徒仓,則替換不超過(guò) max 次。

范例1

s = "hello world!"

print(s.replace("h","H"))
print(s.replace("o","-"))
print(s.replace("o","-",1))

執(zhí)行結(jié)果

Hello world!
hell- w-rld!
hell- world!


范例2

s = '來(lái)看待街坊鄰居復(fù)合大師街坊法好的撒見客戶'
s11 = s.replace('街坊','老王',1)
print(s11)

執(zhí)行結(jié)果

來(lái)看待老王鄰居復(fù)合大師街坊法好的撒見客戶


  1. isalnum()方法
    isalnum() 方法檢測(cè)字符串是否由字母和數(shù)字組成誊垢。

范例

print("22".isalnum())
print("22d".isalnum())
print("22d!".isalnum())

執(zhí)行結(jié)果

True
True
False


  1. isalpha()方法
    isalpha() 方法檢測(cè)字符串是否只由字母組成掉弛。

范例

print("22".isalpha())
print("dd".isalpha())

執(zhí)行結(jié)果

False
True


  1. isdigit()方法
    isdigit() 方法檢測(cè)字符串是否只由數(shù)字組成。

范例

print("33.33".isdigit())
print("3333".isdigit())

執(zhí)行結(jié)果

False
True


  1. isspace() 方法
    isspace() 方法檢測(cè)字符串是否只由空格組成喂走。

范例

s = "  "
print(s.isspace())

s = ""
print(s.isspace())

s = "abcd"
print(s.isspace())

執(zhí)行結(jié)果

True
False
False


1.2.4 字符串的公共操作方法

  1. len()方法(此為公共方法)
    len() 方法返回對(duì)象(字符殃饿、列表、元組等)長(zhǎng)度或項(xiàng)目個(gè)數(shù)芋肠。

范例

s = "alex二哥"

l = len(s)
print(l)

執(zhí)行結(jié)果

6


  1. count()方法(此為公共方法)
    count() 方法用于統(tǒng)計(jì)字符串里某個(gè)字符出現(xiàn)的次數(shù)乎芳。可選參數(shù)為在字符串搜索的開始與結(jié)束位置帖池。
    簡(jiǎn)易說(shuō)明:統(tǒng)計(jì)個(gè)數(shù)

范例

s = "alexaa wusirl"

s1 = s.count("a")
s2 = s.count("y")
s3 = s.count("al")

print(s1)
print(s2)
print(s3)

s = "Hello World!"

print(s.count("o"))
print(s.count("o",0,5))

執(zhí)行結(jié)果

3
0
1
2
1

1.3 列表list

1.3.1 列表的切片(查)

范例

li = ['alex',[1,2,3],'wusir','egon','女神','taibai']

l1 = li[0]
print(l1)

l2 = li[1]
print(l2)

l3 = li[0:3]    # 取第一到第三
print(l3)

執(zhí)行結(jié)果

alex
[1, 2, 3]
['alex', [1, 2, 3], 'wusir']


1.3.2 增(列表)

  1. append:增加到最后
    范例1
li = ['alex','wusir','egon','女神','taibai']

li.append("日天")
li.append(1)
print(li)

執(zhí)行結(jié)果

['alex', 'wusir', 'egon', '女神', 'taibai', '日天', 1]


  1. insert:按照索引去增加
    范例
li = ['alex','wusir','egon','女神','taibai']

li.insert(4,"春哥")    # 在女神后插入
print(li)

執(zhí)行結(jié)果

['alex', 'wusir', 'egon', '女神', '春哥', 'taibai']


  1. extend:迭代的去增加
    范例
li = ['alex','wusir','egon','女神','taibai']

li.extend("二哥")
print(li)

li.extend([1,2,3])
print(li)

執(zhí)行結(jié)果

['alex', 'wusir', 'egon', '女神', 'taibai', '二', '哥']
['alex', 'wusir', 'egon', '女神', 'taibai', '二', '哥', 1, 2, 3]


4)應(yīng)用范例(append):
模擬hr在原有列表中持續(xù)添加新成員

li = ['alex',[1,2,3],'wusir','egon','女神','taibai']
while 1:
    username = input('>>>')
    if username.strip().upper() == 'Q':
    # strip() 方法用于移除字符串頭尾指定的字符(默認(rèn)為空格或換行符)或字符序列奈惑。
    # upper() 方法將字符串中的小寫字母轉(zhuǎn)為大寫字母。
        break
    else:
        li.append(username)
print(li)

執(zhí)行結(jié)果

>>>張三
>>>李四
>>>q
['alex', 'wusir', 'egon', '女神', 'taibai', '張三', '李四']


1.3.2 刪(列表)

  1. pop
    范例一:
li = ['taibai','alex','wusir','egon','女神']

li.pop()    # 默認(rèn)刪除最后一個(gè)
print(li)

執(zhí)行結(jié)果

['taibai', 'alex', 'wusir', 'egon']

范例二:

li = ['taibai','alex','wusir','egon','女神']

li.pop(1)    # 指定位置刪除
print(li)

print(li.pop(1))    # pop方式可顯示返回值

執(zhí)行結(jié)果

['taibai', 'wusir', 'egon', '女神']
wusir    # 此為顯示的返回值


  1. remove:按元素去刪
li = ['taibai','alex','wusir','egon','女神']

li.remove("taibai")
print(li)

執(zhí)行結(jié)果

['alex', 'wusir', 'egon', '女神']


  1. clear:清空睡汹。成為空列表
    范例
li = ['taibai','alex','wusir','egon','女神']

li.clear()
print(li)

執(zhí)行結(jié)果

[]


  1. del
    范例一:
li = ['taibai','alex','wusir','egon','女神']

del li[2:]    # 按位置刪拨脉,刪除第三個(gè)開始到最后
print(li)

執(zhí)行結(jié)果

['taibai', 'alex']


范例二:

li = ['taibai','alex','wusir','egon','女神']

del li[0:2]    # 刪除前兩個(gè)
print(li)

執(zhí)行結(jié)果

['wusir', 'egon', '女神']


范例三:

li = ['taibai','alex','wusir','egon','女神']

del li    # 刪除整個(gè)列表
print(li)    # 列表被刪矾睦,此命令將會(huì)報(bào)錯(cuò)


1.3.3 改(列表)

范例一:

li = ['taibai','alex','wusir','egon','女神']

li[0] = '神仙'    # 指定索引位置改
print(li)
li[0] = [1,2,3]    # 改為內(nèi)嵌列表
print(li)

執(zhí)行結(jié)果

['神仙', 'alex', 'wusir', 'egon', '女神']
[[1, 2, 3], 'alex', 'wusir', 'egon', '女神']


范例二:

li = ['taibai','alex','wusir','egon','女神']

# 切片方式
li[0:2] = '張果老'
print(li)
li[0:3] = [1,2,3,'春哥','咸魚哥']
print(li)

執(zhí)行結(jié)果

['張', '果', '老', 'wusir', 'egon', '女神']
[1, 2, 3, '春哥', '咸魚哥', 'wusir', 'egon', '女神']


1.3.3 查(列表)

范例一:for循環(huán)

li = ['taibai','alex','wusir','egon','女神']

for i in li:
    print(i)

執(zhí)行結(jié)果

taibai
alex
wusir
egon
女神


范例二:索引方式

li = ['taibai','alex','wusir','egon','女神']

print(li[0:2])    # 找列表前兩位

執(zhí)行結(jié)果

['taibai', 'alex']


1.3.4 列表增刪改查的綜合應(yīng)用

  1. lis = [11,22,33,44,55],將改列表的奇數(shù)位的元素刪除(列表不能在循環(huán)中刪除,否則會(huì)報(bào)錯(cuò))
    范例1:
lis = [11,22,33,44,55]

lis = lis[::2]
print(lis)

執(zhí)行結(jié)果

[11, 33, 55]


范例2:

lis = [11,22,33,44,55]

li = []
for i in lis:
    if lis.index(i) % 2 == 0:
        li.append(i)
lis = li
print(lis)

執(zhí)行結(jié)果

[11, 33, 55]


范例3:

lis = [11,22,33,44,55]

for i in range(len(lis)-1,-1,-1):
    if i % 2 == 1:
        #print(i)
        del lis[i]
        #print(lis)
print(lis)

執(zhí)行結(jié)果

[11, 33, 55]


1.3.4 列表的公共操作方法

  1. len() 方法
    len() 方法返回列表元素個(gè)數(shù)落竹。
    范例:
li = ['taibai','alex','wusir','egon','女神']

l = len(li)
print(l)

執(zhí)行結(jié)果

5


  1. count() 方法
    count() 方法用于統(tǒng)計(jì)某個(gè)元素在列表中出現(xiàn)的次數(shù)。
    范例:
li = ['taibai','alex','wusir','egon','女神']

num = li.count('taibai')
print(num)

執(zhí)行結(jié)果

1


  1. index() 方法
    index() 函數(shù)用于從列表中找出某個(gè)值第一個(gè)匹配項(xiàng)的索引位置格了。列表中沒(méi)有find()方法
    范例:
li = ['taibai','alex','wusir','egon','女神']

print(li.index('wusir'))  # 列表沒(méi)有find

執(zhí)行結(jié)果

2


  1. sort() 方法
    sort() 函數(shù)用于對(duì)原列表進(jìn)行排序棉胀,如果指定參數(shù),則使用比較函數(shù)指定的比較函數(shù)秽浇。
    范例1:正向排序
li = [1,5,4,7,6,2,3]

li.sort()
print(li)

執(zhí)行結(jié)果

[1, 2, 3, 4, 5, 6, 7]


范例2:反向排序

li = [1,5,4,7,6,2,3]

li.sort(reverse=True)
print(li)

執(zhí)行結(jié)果

[7, 6, 5, 4, 3, 2, 1]


  1. reverse() 方法
    reverse() 函數(shù)用于反向列表中元素浮庐。
li = [1,5,4,7,6,2,3]

li.reverse()
print(li)

執(zhí)行結(jié)果

[3, 2, 6, 7, 4, 5, 1]


1.3.5 列表的嵌套

范例1:直接改某個(gè)元素

li = ['taibai','何仙姑','苑昊',['alex','egon',89],23]

print(li[1][1])    # 只顯示何仙姑的仙

執(zhí)行結(jié)果


例子2:將首字母改為大寫

li = ['taibai','何仙姑','苑昊',['alex','egon',89],23]

# 方法一
# 找到taibai,并將首字母改為大寫
name = li[0].capitalize()
# capitalize()將字符串的第一個(gè)字母變成大寫,其他字母變小寫兼呵。
print(name)
# 再將結(jié)果放入列表兔辅,將之前的taibai替換掉
li[0] = name
print(li)

# 方法二
# 將上述兩條直接改為一條代碼
li[0] = li[0].capitalize()
print(li)

執(zhí)行結(jié)果

Taibai
['Taibai', '何仙姑', '苑昊', ['alex', 'egon', 89], 23]
['Taibai', '何仙姑', '苑昊', ['alex', 'egon', 89], 23]


例子3:

li = ['taibai','何仙姑','苑昊',['alex','egon',89],23]

# 將列表內(nèi)的苑昊改為苑日天(方法一)
li[2] = '苑日天'
print(li)

# 將列表內(nèi)的苑昊改為苑ritian(方法二)
li[2] = li[2].replace('日天','ritian')
# replace() 方法把字符串中的 old(舊字符串) 替換成 new(新字符串)
print(li)

執(zhí)行結(jié)果

['taibai', '何仙姑', '苑日天', ['alex', 'egon', 89], 23]
['taibai', '何仙姑', '苑ritian', ['alex', 'egon', 89], 23]


例子4:

# 將alex變?yōu)榇髮懤扒茫⒎湃朐?li[3][0] = li[3][0].upper()
# upper() 方法將字符串中的小寫字母轉(zhuǎn)為大寫字母。
print(li)

執(zhí)行結(jié)果

['taibai', '何仙姑', '苑昊', ['ALEX', 'egon', 89], 23]

1.4 元組tuple

元組被稱為只讀列表维苔,即數(shù)據(jù)可以被查詢碰辅,但不能被修改,所以介时,字符串的切片操作同樣適用于元組没宾。例:(1,2沸柔,3)("a","b","c")
大白話:元組為只讀列表循衰,可循環(huán)查詢,可切片褐澎。兒子不能改会钝,孫子可能可以改。


1.4.1 元組的切片(查)

范例

tu = (1,2,3,'alex',[2,3,4,'taibai'],'egon')

print(tu[3])    # 取出alex
print("******")
print(tu[0:4])    # 取出前4個(gè)元素
print("******")
for i in tu:    # 循環(huán)列出所有元素
    print(i)

執(zhí)行結(jié)果

alex
******
(1, 2, 3, 'alex')
******
1
2
3
alex
[2, 3, 4, 'taibai']
egon


1.4.2 元組嵌套內(nèi)的列表改

范例

tu = (1,2,3,'alex',[2,3,4,'taibai'],'egon')

tu[4][3] = tu[4][3].upper()
print(tu)

執(zhí)行結(jié)果

(1, 2, 3, 'alex', [2, 3, 4, 'TAIBAI'], 'egon')


1.4.3 元組嵌套內(nèi)的列表增

范例

tu = (1,2,3,'alex',[2,3,4,'taibai'],'egon')

tu[4].append("stone")
print(tu)

執(zhí)行結(jié)果

(1, 2, 3, 'alex', [2, 3, 4, 'taibai', 'stone'], 'egon')

1.5 其他常用方法

1.5.1 join()方法

join() 方法用于將序列中的元素以指定的字符連接生成一個(gè)新的字符串工三。
大白話:join可迭代對(duì)象都能用(字符串迁酸,列表,元組俭正,集合)

  1. 字符串的范例
s = 'alex'
s1 = '_'.join(s)
print(s1)

執(zhí)行結(jié)果

a_l_e_x


  1. 列表的例子1:列表轉(zhuǎn)換成字符串(list ---> str)
li = ['taibai','alex','wusir','egon','女神',]
s = '++++'.join(li)
s2 = ''.join(li)

print(s)
print(s2)

執(zhí)行結(jié)果

taibai++++alex++++wusir++++egon++++女神
taibaialexwusiregon女神


  1. 列表的例子2:列表轉(zhuǎn)換成字符串(list ---> str)
names = ["rock","alex","monk"]

print("".join(names))
print(" ".join(names))
print(",".join(names))
print("-".join(names))

執(zhí)行結(jié)果

rockalexmonk
rock alex monk
rock,alex,monk
rock-alex-monk


1.5.2 range()方法

range() 函數(shù)返回的是一個(gè)可迭代對(duì)象(類型是對(duì)象)奸鬓,而不是列表類型, 所以打印的時(shí)候不會(huì)打印列表掸读。

  1. 例子
for i in range(3,10):
    print(i)

print("******")

for i in range(10):
    print(i)

print("******")

for i in range(0,10,3):
    print(i)

print("******")

for i in range(10,0,-2):
    print(i)

print("******")

for i in range(10,-1,-2):
    print(i)

執(zhí)行結(jié)果

3
4
5
6
7
8
9
******
0
1
2
3
4
5
6
7
8
9
******
0
3
6
9
******
10
8
6
4
2
******
10
8
6
4
2
0

1.6 字典dict

字典的key必須施不可變數(shù)據(jù)類型串远,可哈希。
字典的value為任意數(shù)據(jù)類型儿惫。

1.6.1 增(字典)

  1. 直接添加:
dic1 = {'age': 18, 'name': 'jin', 'sex': 'male',}

dic1['high'] = 185  #沒(méi)有鍵值對(duì)澡罚,添加
print(dic1)
dic1['age'] = 16  #如果有鍵,則值覆蓋
print(dic1)

執(zhí)行結(jié)果

{'age': 18, 'name': 'jin', 'sex': 'male', 'high': 185}
{'age': 16, 'name': 'jin', 'sex': 'male', 'high': 185}


  1. setdefault()
    setdefault() 有鍵值對(duì)姥闪,不做任何改變始苇,沒(méi)有才添加。
    范例:
dic1 = {'age': 18, 'name': 'jin', 'sex': 'male',}

dic1.setdefault('weight')
print(dic1)

dic2 = {'age': 18, 'name': 'jin', 'sex': 'male',}
dic2.setdefault('weight',150)
print(dic2)

dic2.setdefault('name','二哥')
print(dic2)

執(zhí)行結(jié)果

{'age': 18, 'sex': 'male', 'name': 'jin', 'weight': None}
{'age': 18, 'sex': 'male', 'name': 'jin', 'weight': 150}
{'age': 18, 'sex': 'male', 'name': 'jin', 'weight': 150}


1.6.2 刪(字典)

  1. pop()
    字典 pop() 方法刪除字典給定鍵 key 及對(duì)應(yīng)的值筐喳,返回值為被刪除的值催式。key 值必須給出。 否則避归,返回 default 值荣月。
    范例:
dic1 = {'age': 18, 'name': 'jin', 'sex': 'male',}
dic1.pop('age')   # 有返回值,按鍵去刪除
print(dic1)

dic1 = {'age': 18, 'name': 'jin', 'sex': 'male',}
print(dic1.pop('二哥',None))   # 可設(shè)置返回值梳毙,用于刪除一個(gè)可能不存在的鍵
print(dic1)

執(zhí)行結(jié)果

{'name': 'jin', 'sex': 'male'}
None
{'name': 'jin', 'sex': 'male', 'age': 18}


  1. popitem()
    字典 popitem() 方法隨機(jī)返回并刪除字典中的一對(duì)鍵和值哺窄。
    如果字典已經(jīng)為空,卻調(diào)用了此方法,就報(bào)出KeyError異常萌业。
dic1 = {'age': 18, 'name': 'jin', 'sex': 'male',}

print(dic1.popitem())  # 隨機(jī)刪除坷襟。有返回值,返回值是元組生年,元組里面是刪除的鍵值婴程。

print(dic1)

執(zhí)行結(jié)果

('sex', 'male')
{'age': 18, 'name': 'jin'}


  1. 直接del
dic1 = {'age': 18, 'name': 'jin', 'sex': 'male',}

del dic1['name']    # 根據(jù)“鍵”刪除(刪除一個(gè)不存在的鍵時(shí),會(huì)報(bào)錯(cuò))
print(dic1)

del dic1    # 刪除整個(gè)字典
print(dic1)

執(zhí)行結(jié)果

{'sex': 'male', 'age': 18}


  1. clear()
    字典(Dictionary) clear() 函數(shù)用于刪除字典內(nèi)所有元素抱婉。
dic1 = {'age': 18, 'name': 'jin', 'sex': 'male',}

dic1.clear() #清空字典
print(dic1)

執(zhí)行結(jié)果

{}


1.6.3 改(字典)

  1. 直接改
    范例:
dic1 = {'age': 18, 'name': 'jin', 'sex': 'male',}

dic1['age'] = 16
print(dic1)

執(zhí)行結(jié)果

{'name': 'jin', 'age': 16, 'sex': 'male'}


  1. update()
    字典(Dictionary) update() 函數(shù)把字典dict2的鍵/值對(duì)更新到dict里档叔。
    范例:
dic = {"name":"jin","age":18,"sex":"male"}
dic2 = {"name":"alex","weight":75}
dic.update(dic2)

print(dic)
print(dic2)

執(zhí)行結(jié)果

{'name': 'alex', 'sex': 'male', 'age': 18, 'weight': 75}
{'name': 'alex', 'weight': 75}


1.6.4 查(字典)

  1. 單獨(dú)顯示鍵,值蒸绩,鍵值
    dict.keys() 以列表返回一個(gè)字典所有的鍵
    dict.values() 以列表返回字典中的所有值
    dict.items() 以列表返回可遍歷的(鍵, 值) 元組數(shù)組
    范例:
dic1 = {'age': 18, 'name': 'jin', 'sex': 'male',}
print(dic1.keys())
print(dic1.values())
print(dic1.items())

執(zhí)行結(jié)果

dict_keys(['age', 'sex', 'name'])
dict_values([18, 'male', 'jin'])
dict_items([('age', 18), ('sex', 'male'), ('name', 'jin')])


  1. 顯示鍵(for循環(huán))
    范例:
dic1 = {'age': 18, 'name': 'jin', 'sex': 'male',}
for i in dic1.keys():
    print(i)

執(zhí)行結(jié)果

sex
age
name


  1. 顯示值(for循環(huán))
    范例:
dic1 = {'age': 18, 'name': 'jin', 'sex': 'male',}

for i in dic1.values():
    print(i)

執(zhí)行結(jié)果

male
18
jin


  1. 顯示鍵值(for循環(huán))
    范例:
dic1 = {'age': 18, 'name': 'jin', 'sex': 'male',}

for k,v in dic1.items():
    print(k,v)

執(zhí)行結(jié)果

sex male
age 18
name jin


  1. 字典(Dictionary) get()
    字典(Dictionary) get() 函數(shù)返回指定鍵的值衙四,如果值不在字典中返回默認(rèn)值。
    范例:
dic1 = {'age': 18, 'name': 'jin', 'sex': 'male',}

print(dic1.get('name'))
print(dic1.get('name1','沒(méi)有這個(gè)鍵'))

執(zhí)行結(jié)果

jin
沒(méi)有這個(gè)鍵


  1. 直接根據(jù)鍵顯示值
    如果值不在字典中會(huì)顯示報(bào)錯(cuò)信息
    范例:
dic1 = {'age': 18, 'name': 'jin', 'sex': 'male',}

v1 = dic1['name']
print(v1)

執(zhí)行結(jié)果

jin


1.6.5 字典的嵌套

范例:

dic = {'name':['alex','wusir','taibai'],
       'py9':{'time':'1213',
              'learn_money':19800,
              'addr':'CBD'},
       'age':21
       }

# 將age的值改為56
dic['age'] = 56
print(dic)

# 將name的值中加入ritian
print(dic['name'])
dic['name'].append('ritian')
print(dic)

# 將name中的wusir改為大寫
dic['name'][1] = dic['name'][1].upper()
print(dic)

# 在py9中增加一組鍵值對(duì)_方法1
dic['py9']['female'] = 6
print(dic)

# 在py9中增加一組鍵值對(duì)_方法2
dic['py9'].setdefault("female","6")
print(dic)

執(zhí)行結(jié)果

{'age': 56, 'py9': {'learn_money': 19800, 'time': '1213', 'addr': 'CBD'}, 'name': ['alex', 'wusir', 'taibai']}

['alex', 'wusir', 'taibai']
{'name': ['alex', 'wusir', 'taibai', 'ritian'], 'age': 21, 'py9': {'time': '1213', 'learn_money': 19800, 'addr': 'CBD'}}

{'name': ['alex', 'WUSIR', 'taibai'], 'age': 21, 'py9': {'learn_money': 19800, 'time': '1213', 'addr': 'CBD'}}

{'py9': {'time': '1213', 'learn_money': 19800, 'addr': 'CBD', 'female': 6}, 'name': ['alex', 'wusir', 'taibai'], 'age': 21}


1.6.6 字典的操作方法

  1. fromkeys()方法
    字典 fromkeys() 函數(shù)用于創(chuàng)建一個(gè)新字典患亿,以序列 seq 中元素做字典的鍵传蹈,value 為字典所有鍵對(duì)應(yīng)的初始值。

范例1:

dic = dict.fromkeys([1,2,3],'春哥')
print(dic)

執(zhí)行結(jié)果

{1: '春哥', 2: '春哥', 3: '春哥'}


范例2:

dic = dict.fromkeys([1,2,3],[])
print(dic)
dic[1].append('袁姐')
print(dic)
dic[2].extend('二哥')
print(dic)

#參照常規(guī)的字典
dic = {1:[],2:[],3:[]}
print(dic)
dic[1].append('袁姐')
print(dic)
dic[2].extend('二哥')    # extend()迭代添加
print(dic)

執(zhí)行結(jié)果

{1: [], 2: [], 3: []}
{1: ['袁姐'], 2: ['袁姐'], 3: ['袁姐']}
{1: ['袁姐', '二', '哥'], 2: ['袁姐', '二', '哥'], 3: ['袁姐', '二', '哥']}

#參照常規(guī)的字典
{1: [], 2: [], 3: []}
{1: ['袁姐'], 2: [], 3: []}
{1: ['袁姐'], 2: ['二', '哥'], 3: []}


范例3:(沒(méi)視頻步藕,不懂老師在表示啥)

dic = dict.fromkeys([1,2,3,],3)
print(dic)
dic[1] = 4
print(dic)

執(zhí)行結(jié)果

{1: 3, 2: 3, 3: 3}
{1: 4, 2: 3, 3: 3}

1.7 其他小知識(shí)點(diǎn)

  1. 運(yùn)算符is
    is 比較卡睦,比較的是內(nèi)存地址 id(內(nèi)容)


數(shù)字、字符串:小數(shù)據(jù)池
數(shù)字的范圍:-5 -- 256
字符串:1漱抓,不能有特殊字符
????2,s20(字符串乘以數(shù)字20) 還是同一個(gè)地址恕齐,s21(字符串乘以數(shù)字21)以后都是兩個(gè)地址

范例:

s1 = 20
s2 = 20

print(s1 is s2)

執(zhí)行結(jié)果

True


另:list dict tuple set不會(huì)相同
范例

l1 = [1,]
l2 = [1,]
print(l1 is l2)

執(zhí)行結(jié)果

False


  1. id()
    id() 函數(shù)用于獲取對(duì)象內(nèi)存地址乞娄。

范例:

s1 = 2000
s2 = 2000

print(id(s1),id(s2))

執(zhí)行結(jié)果

1858070492624 1858070492624
  1. enumerate() 函數(shù)
    enumerate() 函數(shù)用于將一個(gè)可遍歷的數(shù)據(jù)對(duì)象(如列表、元組或字符串)組合為一個(gè)索引序列显歧,同時(shí)列出數(shù)據(jù)和數(shù)據(jù)下標(biāo)仪或,一般用在 for 循環(huán)當(dāng)中。
    范例:
li = ['alex','taibai','wusir','egon']
for i in li:
    print(li.index(i),i)

for index,i in enumerate(li,1):
    print(index,i)

執(zhí)行結(jié)果

0 alex
1 taibai
2 wusir
3 egon

1 alex
2 taibai
3 wusir
4 egon

1.8 解包(元組士骤,列表范删,字典)

a,b,c = (1,2,3)
print(a)
print(b)
print(c)

a,b,c = ["a","b","c"]
print(a)
print(b)
print(c)

a,b = {"k1":"v1","k2":"v2"}
print(a)
print(b)

執(zhí)行結(jié)果

1
2
3

a
b
c

k2
k1

1.9 數(shù)據(jù)類型的可變與不可變

可變數(shù)據(jù)類型(不可哈希):列表,字典拷肌,集合
不可變數(shù)據(jù)類型(可哈希):數(shù)字到旦,字符串,元組巨缘,布爾值

字典的key必須施不可變數(shù)據(jù)類型添忘,可哈希。
字典的value為任意數(shù)據(jù)類型若锁。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末搁骑,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌仲器,老刑警劉巖煤率,帶你破解...
    沈念sama閱讀 212,718評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異乏冀,居然都是意外死亡蝶糯,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門煤辨,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)裳涛,“玉大人,你說(shuō)我怎么就攤上這事众辨《巳” “怎么了?”我有些...
    開封第一講書人閱讀 158,207評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵鹃彻,是天一觀的道長(zhǎng)郊闯。 經(jīng)常有香客問(wèn)我,道長(zhǎng)蛛株,這世上最難降的妖魔是什么团赁? 我笑而不...
    開封第一講書人閱讀 56,755評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮谨履,結(jié)果婚禮上欢摄,老公的妹妹穿的比我還像新娘。我一直安慰自己笋粟,他們只是感情好怀挠,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,862評(píng)論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著害捕,像睡著了一般绿淋。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上尝盼,一...
    開封第一講書人閱讀 50,050評(píng)論 1 291
  • 那天吞滞,我揣著相機(jī)與錄音,去河邊找鬼盾沫。 笑死裁赠,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的赴精。 我是一名探鬼主播组贺,決...
    沈念sama閱讀 39,136評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼祖娘!你這毒婦竟也來(lái)了失尖?” 一聲冷哼從身側(cè)響起啊奄,我...
    開封第一講書人閱讀 37,882評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎掀潮,沒(méi)想到半個(gè)月后菇夸,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,330評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡仪吧,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,651評(píng)論 2 327
  • 正文 我和宋清朗相戀三年庄新,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片薯鼠。...
    茶點(diǎn)故事閱讀 38,789評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡择诈,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出出皇,到底是詐尸還是另有隱情羞芍,我是刑警寧澤,帶...
    沈念sama閱讀 34,477評(píng)論 4 333
  • 正文 年R本政府宣布郊艘,位于F島的核電站荷科,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏纱注。R本人自食惡果不足惜畏浆,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,135評(píng)論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望狞贱。 院中可真熱鬧刻获,春花似錦、人聲如沸瞎嬉。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,864評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)佑颇。三九已至,卻和暖如春草娜,著一層夾襖步出監(jiān)牢的瞬間挑胸,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,099評(píng)論 1 267
  • 我被黑心中介騙來(lái)泰國(guó)打工宰闰, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留茬贵,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,598評(píng)論 2 362
  • 正文 我出身青樓移袍,卻偏偏與公主長(zhǎng)得像解藻,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子葡盗,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,697評(píng)論 2 351

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

  • 一螟左、快捷鍵 ctr+b 執(zhí)行ctr+/ 單行注釋ctr+c ...
    o_8319閱讀 5,793評(píng)論 2 16
  • 一、Python簡(jiǎn)介和環(huán)境搭建以及pip的安裝 4課時(shí)實(shí)驗(yàn)課主要內(nèi)容 【Python簡(jiǎn)介】: Python 是一個(gè)...
    _小老虎_閱讀 5,734評(píng)論 0 10
  • 〇、前言 本文共108張圖胶背,流量黨請(qǐng)慎重巷嚣! 歷時(shí)1個(gè)半月,我把自己學(xué)習(xí)Python基礎(chǔ)知識(shí)的框架詳細(xì)梳理了一遍钳吟。 ...
    Raxxie閱讀 18,934評(píng)論 17 410
  • ——人生想開掛廷粒,需要讀很多的書。 你好红且,我是賀州樊登書店江江店長(zhǎng)坝茎,今天是我在樊登讀書的第403天(9月22日),也...
    jcl小江江閱讀 564評(píng)論 3 8
  • 最近發(fā)生一堆鬧心事情暇番,家庭情緒大爆炸嗤放,參與其中的人都自帶炮竹自動(dòng)點(diǎn)爆功能。 爸爸嫌棄媽媽在十一奉獻(xiàn)的事情上不紀(jì)念神...
    圣靈白鴿閱讀 145評(píng)論 1 1