三、字符串晴弃、列表、元組上鞠、字典
1.字符串介紹
2.字符串輸出
3.字符串輸入
4.下標(biāo)和切片
5.字符串常見操作
6.列表介紹
7.列表的循環(huán)遍歷
8.列表的常見操作
9.列表的嵌套
10.元組
11.字典介紹
12.字典的常見操作1
13.字典的常見操作2
14.字典的遍歷
15.公共方法
16.引用
1.字符串介紹
字符串:雙引號(hào)或者單引號(hào)中的數(shù)據(jù),就是字符串
2.字符串輸出
<1> demo:
name = "xiaoming"
position = "講師"
address = "北京市"
print("------------------------------")
print("姓名:%s"%name)
print("職位:%s"%position)
print("公司地址:%s"%address)
print("------------------------------")
3.字符串輸入
<1> demo:
userName = input("請(qǐng)輸入用戶名:")
print("用戶名為:%s"%userName)
4.下標(biāo)和切片
<1> 下標(biāo)
所謂下標(biāo)芍阎,就是編號(hào),通過(guò)這個(gè)編號(hào)就能找到相應(yīng)的存儲(chǔ)空間轮听。
name = "abcdef"
name[0] = a
name[1] = b
name[2] = c
<2> 切片
切片是指對(duì)操作的對(duì)象截取其中一部分的操作。字符串血巍、列表、元組都支持切片操作述寡。
切片的語(yǔ)法:[起始:結(jié)束:步長(zhǎng)],選取的區(qū)間屬于左閉右開型叶洞,從起始位開始鲫凶,到結(jié)束位前一位結(jié)束(不包含結(jié)束位本身)
demo1:
name = "abcdef"
print(name[0:3]) = "abc" #取下標(biāo)0-2的字符
demo2:
name = "abcdef"
print(name[0:-1]) = "abcde" #取下標(biāo)為0開始到最后第2個(gè)之間的字符
demo3:
name = "abcdef"
print(name[0:]) = "abcdef" #取下標(biāo)為0開始到最后的字符
demo4:
name = "abcdef"
print(name[1:5:2]) = "bd" #以2為步長(zhǎng),從下標(biāo)1取到下標(biāo)5之間的字符
5.字符串常見操作
設(shè)有字符串 mystr = "hello world itcast and itcastcpp"
<1> find: 檢測(cè)str是否包含在mystr中衩辟,如果是返回開始的索引值掀序,否則返回-1
mystr.find(str, start=0, end=len(mystr))
<2> index: 跟find()方法一樣,只不過(guò)如果str不在mystr中會(huì)報(bào)一個(gè)異常
mystr.index(str, start=0, end=len(mystr))
<3> count: 返回str在start和end之間在mystr里面出現(xiàn)的次數(shù)
mystyr.count(str, start=0, end=len(mystr))
<4> replace: 把mystr中的str1替換成str2惭婿,如果count指定,則替換不超過(guò)count次
mystr.replace(str1, str2, mystr.count(str1))
<5> split: 以str為分隔符切片mystr叶雹,如果maxsplit有指定值财饥,則僅分隔maxsplit個(gè)字符串
mystr.split(" ", 2)
<6> capitalize: 把字符串的第一個(gè)字符大寫
mystr.capitalize()
<7> title: 把字符串的每個(gè)單詞首字母大寫
str.title
<8> startwith: 檢查字符串是否以obj開頭,是返回True折晦,否則返回False
mystr.startwith(obj)
<9> endswith: 檢查字符串是否以obj結(jié)束钥星,是返回True,否則返回False
mystr.endwith(obj)
<10>lower: 轉(zhuǎn)換mystr中所有大寫字符為小寫
mystr.lower()
<11>upper: 轉(zhuǎn)換mystr中所有小寫字符為大寫
mystr.upper()
<12>ljust: 返回一個(gè)原字符串左對(duì)齊满着,并使用空格填充至長(zhǎng)度width的新字符串
mystr.ljust(width)
<13>rjust: 返回一個(gè)原字符串右對(duì)齊谦炒,并使用空格填充至長(zhǎng)度width的新字符串
mystr.rjust(width)
<14>center: 返回一個(gè)原字符串居中贯莺,并使用空格填充至長(zhǎng)度width的新字符串
mystr.center(width)
<15>lstrip: 刪除mystr左邊的空白字符
mystr.lstrip()
<16>rstrip: 刪除mystr右邊的空白字符
mystr.rstrip()
<17>strip: 刪除mystr兩端的空白字符
mystr.strip()
<18>rfind: 類似于find函數(shù),不過(guò)是從右邊開始找
mystr.rfind(str, start=0, end=len(mystr))
<19>rindex: 類似于index函數(shù)宁改,不過(guò)是從右邊開始找
mystr.rindex(str, start=0, end=len(mystr))
<20>partition: 把mystr以str分割成三部分缕探,str前,str和str后
mystr.partition(str)
<21>rpartition: 類似與partition函數(shù)还蹲,不過(guò)是從右邊開始
mystr.rpartition(str)
<22>splitlines: 按照行分隔(字符串中有\(zhòng)n)爹耗,返回一個(gè)包含各行作為元素的列表
mystr.splitlines()
<23>isalpha: 如果mystr中所有字符都是字母,則返回True谜喊,否則返回False
mystr.isalpha()
<24>isdigit: 如果mystr中所有字符都是數(shù)字潭兽,則返回True,否則返回False
mystr.isdigit()
<25>isalnum: 如果mystr中所有字符都是數(shù)字或字母斗遏,則返回True山卦,否則返回False
mystr.isalnum()
<26>isspace: 如果mystr中只包含空格,則返回True诵次,否則返回False
mystr.isspace()
<27>join: mystr中每個(gè)字符后面插入str账蓉,構(gòu)造出一個(gè)新的字符串
mystr.join(str)
demo:
str = ""
li = ["my","name","is","sunhaoyi"]
str.join(li) = my name is sunhaoyi
6.列表介紹
<1>列表的格式:
namelist = ["xiaowang","xiaozhang","xiaohua",1,2,[3,4,5]]
注:python中列表比C語(yǔ)言的數(shù)組強(qiáng)大的地方在于列表中的元素可以是不同類型的
<2>打印列表:
demo:
nameList = ["xiaowang","xiaozhang","xiaohua"]
print(nameList[0])
print(nameList[1])
print(nameList[2])
7.列表的循環(huán)遍歷
<1>使用for循環(huán)
demo:
nameList = ["xiaowang","xiaozhang","xiaohua"]
for name in nameList:
print(name)
<2>使用while循環(huán)
demo:
nameList = ["xiaowang","xiaozhang","xiaohua"]
length = len(nameList)
i = 0
while i < lengh:
print(nameList[i])
i += 1
8.列表的相關(guān)操作(添、刪藻懒、改、查)
<1>添加元素(增: append归敬; extend汪茧; insert)
append: 通過(guò)append可以向列表添加元素
demo:
A = ["xiaowang","xiaozhang","xiaohua"]
A.append(sunhaoyi)
A = ["xiaowang","xiaozhang","xiaohua","sunhaoyi"]
extend: 通過(guò)extend可以將另一個(gè)集合中的元素逐一添加到列表中
demo:
a = [1,2]
b = [3,4]
a.extend(b)
a = [1,2,3,4]
insert: insert(index,object)在指定位置index前插入元素object
demo:
a = [0,1,2]
a.insert(1,3)
a = [0,3,1,2]
<2>修改元素("改"):
修改元素時(shí)舱污,要通過(guò)下標(biāo)來(lái)確定要修改的是哪個(gè)元素扩灯,然后才能進(jìn)行修改
demo:
A = ["xiaowang","xiaozhang","xiaohua"]
A[1] = "xiaolu"
A = ["xiaolu","xiaozhang","xiaohua"]
<3>查找元素("查"in,not in, index, count)
所謂的查找珠插,就是看看指定的元素是否存在
3.1 in(存在)捻撑,如果存在那么結(jié)果為True顾患,否則為False
? ? not in(不存在)江解,如果不存在那么結(jié)果為True膘流,否則為False
demo1:
nameList = ["xiaowang","xiaozhang","xiaohua"]
findName = "xiaowang"
if fingName in nameList:
print("找到了")
else:
print("沒(méi)找到")
demo2:
not in也是相同的用法
3.2 index,count
index,count與字符串中的用法相同
<4>刪除元素("刪",del, pop, remove)
del: 根據(jù)下標(biāo)進(jìn)行刪除
pop: 刪除最后一個(gè)元素
remove: 根據(jù)元素的值進(jìn)行刪除
demo1: del
movieName = ["加勒比海盜","駭客帝國(guó)","霍比特人","指環(huán)王"]
del movieName[2]
movieName = ["加勒比海盜","駭客帝國(guó)","指環(huán)王"]
demo2: pop
movieName = ["加勒比海盜","駭客帝國(guó)","霍比特人","指環(huán)王"]
movieName.pop
movieName = ["加勒比海盜","駭客帝國(guó)","霍比特人"]
demo3: remove
movieName = ["加勒比海盜","駭客帝國(guó)","霍比特人","指環(huán)王"]
movieName.remove("駭客帝國(guó)")
movieName = ["加勒比海盜","霍比特人","指環(huán)王"]
<5>排序(sort, reverse)
sort: 將list按特定順序重新排序耕魄,默認(rèn)由小到大吸奴,參數(shù)reverse=True可改為由大到小
reverse: 將list倒置
demo1:
a = [1,4,2,3]
a.reverse()
a = [3,2,4,1]
demo2:
a = [1,4,2,3]
a.sort()
a = [1,2,3,4]
a.sort(reverse = True)
a = [4,3,2,1]
<6>列表嵌套
類似while循環(huán)的嵌套则奥,列表也支持嵌套
一個(gè)列表中的元素又是一個(gè)列表读处,那么這就是列表的嵌套
a = [1,2,5,4,[7,4,1]]
9.列表嵌套
10.元組
python中元組與列表類似罚舱,不同之處在于元組的元素不能修改管闷。
元組使用(), 列表使用[].
11.字典介紹
<1> python中的字典
info = {"name":"班長(zhǎng)", "id":100, "sex":"f", "address":"中國(guó)北京"}
<2> 根據(jù)鍵訪問(wèn)值
info = {"name":"班長(zhǎng)", "id":100, "sex":"f", "address":"中國(guó)北京"}
print(info["name"])-------------->班長(zhǎng)
print(info["id"])---------------->100
若訪問(wèn)不存在的鍵包个,則會(huì)報(bào)錯(cuò)
若我們不確定字典中是否存在某個(gè)鍵冤留,又想獲取其值得時(shí)候纤怒,可以使用get方法,還可以設(shè)置默認(rèn)值
demo:
info = {"name":"班長(zhǎng)", "id":100, "sex":"f", "address":"中國(guó)北京"}
age = info.get("age")
age不存在
age = info.get("age",18)
age = 18
12.字典的常見操作
<1> 修改元素
字典中的每個(gè)元素的數(shù)據(jù)是可以修改的,只要通過(guò)key找到州既,就可以修改
demo1:
info = {"name":"班長(zhǎng)", "id":100, "sex":"f", "address":"中國(guó)北京"}
newId = 99
info["id"] = int(newId)
info = {"name":"班長(zhǎng)", "id":99, "sex":"f", "address":"中國(guó)北京"}
<2> 添加元素
demo1:
info = {"name":"班長(zhǎng)", "id":100, "sex":"f", "address":"中國(guó)北京"}
id = 10
info["newid"] = id
info = {"newid":10, name":"班長(zhǎng)", "id":100, "sex":"f", "address":"中國(guó)北京"}
<3> 刪除元素
3.1 del
3.2 clear()
demo3.1.1: del
info = {"id":10, name":"班長(zhǎng)", "id":100, "sex":"f", "address":"中國(guó)北京"}
del info["name"]
info = {"id":10,, "sex":"f", "address":"中國(guó)北京"}
demo3.1.2: del
info = {"id":10, name":"班長(zhǎng)", "id":100, "sex":"f", "address":"中國(guó)北京"}
del info
info整個(gè)字典就被刪除了
demo3.1.3: clear清空整個(gè)字典
info = {"id":10, name":"班長(zhǎng)", "id":100, "sex":"f", "address":"中國(guó)北京"}
info.clear()
info = {}
13.字典的常見操作2
<1> len()
測(cè)量字典中阐虚,鍵值對(duì)的個(gè)數(shù)
<2> keys
返回一個(gè)包含字典所有key的列表
a.keys()
<3> values
返回一個(gè)包含字典所有value的列表
a.values()
<4> items
a.items()
<5> has_key
如果key在字典中蚌卤,返回True逊彭,否則返回False
a.has_key()
14.遍歷
<1> 字符串遍歷
a_str = "hello itcast"
for char in a_str:
print(char)
----------------->h e l l o? i t c a s t
<2> 列表遍歷
a_list = [1,2,3,4,5,6]
for num in a_list:
print(num)
----------------->1 2 3 4 5 6
<3> 元組遍歷
a_turple = (1,2,3,4,5)
for num in a_turple:
print(num)
----------------->1 2 3 4 5 6
<4>字典遍歷
4.1 遍歷字典的鍵
dict = {"name":"zhangsan","sex"="m"}
for key in dict.keys():
print (key)
---------->name sex
4.2 遍歷字典的值
dict = {"name":"zhangsan","sex"="m"}
for value in dict.values():
print (value)
---------->zhangsan m
4.3 遍歷字典的元素
dict = {"name":"zhangsan","sex"="m"}
for item in dict.items():
print (item)
---------->("name", "zhangsan")
? ("sex", "m")
4.4 遍歷字典的鍵值對(duì)
dict = {"name":"zhangsan","sex"="m"}
for key,value in dict.items():
print ("key = %s, value = %s"%(key,value))
---------->key=name,value=zhangsan
? key=sex,value=m
15.公共方法
<1> 運(yùn)算符
運(yùn)算符 描述 支持的數(shù)據(jù)類型
? +? ? 合并? ? 字符串避矢、列表囊榜、元組
? * 復(fù)制 ? 字符串卸勺、列表曙求、元組
? in 元素是否存在 ? 字符串、列表怎抛、元組马绝、字典
not in 元素是否不存在 ? 字符串富稻、列表白胀、元組或杠、字典