溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Python字符和列表怎么表示

發(fā)布時(shí)間:2022-05-25 14:34:17 來(lái)源:億速云 閱讀:153 作者:iii 欄目:編程語(yǔ)言

這篇文章主要講解了“Python字符和列表怎么表示”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“Python字符和列表怎么表示”吧!

Python字符和列表怎么表示

1.字符串

字符串表現(xiàn)形式

a = "100"b = "hello world"c = 'hello world'd = '100'e = ‘18.20520'

1.1len函數(shù)返回對(duì)象的長(zhǎng)度或者個(gè)數(shù)

Python len( )方法返回對(duì)象(字符、列表、元組、字典等)長(zhǎng)度或項(xiàng)目個(gè)數(shù)。

In [1]: a="abcdefg"In [2]: len(a)Out[2]: 7In [3]: b = [1,2,3,4,5,66,77,8888]In [4]: len(b)Out[4]: 8

1.2組成字符串的另外一種方式:

字符串會(huì)拼接,數(shù)字會(huì)相加

In [5]: a ="lao"In [6]: b="wang"In [7]: c=a+b
In [8]: c
Out[8]: 'laowang'In [9]: d= "===="+a+b+"===="In [10]: d
Out[10]: '====laowang===='In [11]: f="===%s===="%(a+b)In [12]: f
Out[12]: '===laowang===='

2.字符串的輸入輸出

2.1字符串輸入

輸入信息

name = input(“ 請(qǐng)輸入你的姓名:”)position = input(“ 請(qǐng)輸入你的職業(yè):”)address = input(“ 請(qǐng)輸入你的地址:”)

輸出信息

print("="*50)print(" 姓名:%s\n 職業(yè):%s\n 地址:%s" % (name,position,address))print("="*50)

2.2format的使用語(yǔ)法:

格式化的方式展示數(shù)據(jù),并可以通過(guò)多種方式展示數(shù)據(jù)。如 通過(guò)位置、通過(guò)關(guān)鍵字參數(shù)、通過(guò)映射list。

1.通過(guò)位置
print(“my name is {0},age is {1}”.format(‘劉備’,20))
print(“my name is {},age is {}”.format(‘劉備’,20))
print(“{1},{0},{1}”.format(‘劉備’,20))
2.通過(guò)關(guān)鍵字參數(shù)
print(“{age},{name}”.format(age=28,name=“曹操”))
print(“{name},{name},{age}”.format(age=28,name=“曹操”))
3.通過(guò)映射list
alist = [“孫權(quán)”,20,“中國(guó)”]
blist = [“貂蟬”,18,“中國(guó)”]
print(“my name is {1[0]}, from {0[2]}, age is {0[1]}”.format(alist,blist))

在python3中input 獲取的數(shù)據(jù),都以字符串的方式進(jìn)行保存,即使輸入的是數(shù)字,那么也是以字符串方式保存

#判斷密碼是否正確

user_name = input(“ 請(qǐng)輸入用戶名:”)password = input(“ 請(qǐng)輸入密碼:”)if user_name == “beijing” and password == “123” :print(“ 歡迎登錄北京官網(wǎng)!")else :print(" 你的賬戶或者密碼錯(cuò)誤!")

2.3下標(biāo)介紹

下標(biāo)索引 index
所謂“下標(biāo)”,就是編號(hào),就好比超市中的存儲(chǔ)柜的編號(hào),通過(guò)這個(gè)編號(hào)就能找到相應(yīng)的存儲(chǔ)空間。
通過(guò)下標(biāo)取出部分字符
如果有字符串:name = ‘a(chǎn)bcdef’,在內(nèi)存中的實(shí)際存儲(chǔ)如下:
Python字符和列表怎么表示

In [1]: len(name)
Out[1]: 7
In [2]: name[len(name)-1]
Out[2]: ‘g’
In [3]: name[-1]
Out[3]: ‘g’ 正數(shù)從左往右,負(fù)數(shù)從右往左

2.4切片

切片是指對(duì)操作的對(duì)象截取其中一部分的操作。字符串、列表、元組都支持切片操作。
切片的語(yǔ)法:[ 起始: 結(jié)束: 步長(zhǎng)]
注意:選取的區(qū)間屬于 左閉右開(kāi)型,即從"起始"位開(kāi)始,到"結(jié)束"位的前一位結(jié)束(不包含結(jié)束位本身),注意,如果不寫(xiě)步長(zhǎng)默認(rèn)是1.
步長(zhǎng)是控制方向的,正數(shù)從左往右取,負(fù)數(shù)是從右到左取

In [1]: name="abcdefABCDEF"In [2]: name[0:3]Out[2]: 'abc'In [3]: name[0:5:2]Out[3]: 'ace'In [4]: name[-1::-1]      			#逆序(倒敘)Out[4]: 'FEDCBAfedcba'

下標(biāo)和切片小結(jié)
[:] 提取從開(kāi)頭(默認(rèn)位置0)到結(jié)尾的整個(gè)字符串
[start:] 從start 提取到結(jié)尾
[:end] 從開(kāi)頭提取到end - 1
[start:end] 從start 提取到end - 1
[startstep] 從start 提取到end - 1,每step 個(gè)字符提取一個(gè)
[::-1]逆序

3.字符串常見(jiàn)函數(shù)

find()、 rfind ()、 index ()、 rindex ()、 replace ()、split ()、parttion ()、rparttion ()、splitlines ()、startswith ()、endswith ()、lower ()、upper ()、…………

3.1find及rfind

In [1]: mystr="hello world yanzilu and yanziluPython"In [2]: mystr
Out[2]: 'hello world yanzilu and yanziluPython
In [3]: mystr.find("and")Out[3]: 20In [4]: mystr.find("world")  		#存在則返回該單詞開(kāi)始的下標(biāo)Out[4]: 6In [5]: mystr.find("world1") 		#不存在則返回-1Out[5]: -1In [6]: mystr.find("yanzilu")Out[6]: 12In [7]: mystr.find("yanzilu",20,len(mystr)) #指定查找區(qū)域Out[7]: 24In [8]: mystr.rfind("yanzilu")  	#rfind,從右往左搜索Out[8]: 24

3.2index 、rindex

作用和find一樣,只有一點(diǎn)不同,index搜索不到的內(nèi)容會(huì)報(bào)錯(cuò)

In [9]: mystr.index("and") Out[9]: 20In [10]: mystr.index("yanzilu")Out[10]: 12In [11]: mystr.index("yanzilu",20,len(mystr)) 	#指定查找區(qū)域Out[11]: 24In [12]: mystr.rindex("yanzilu") 				#從右往左搜索Out[12]: 24In [13]: mystr.rindex("zhangsan")  				#搜索不存在的會(huì)報(bào)錯(cuò)---------------------------------------------------------------------------ValueError                                Traceback (most recent call last)<ipython-input-67-6aff7ee60ad5> in <module>----> 1 mystr.rindex("zhangsan")ValueError: substring not found

3.3 replace 替換

In [14]: mystr
Out[14]: 'hello world yanzilu and yanziluPython'In [15]: mystr.replace("world","WORLD")Out[15]: 'hello WORLD yanzilu and yanziluPython'In [16]: mystr
Out[16]: 'hello world yanzilu and yanziluPython'In [17]: mystr.replace("yan","zhang")Out[17]: 'hello world zhangzilu and zhangziluPython'In [18]: mystr.replace("yan","zhang",1)  		#指定替換次數(shù)Out[18]: 'hello world zhangzilu and yanziluPython'In [19]: mystr.replace("yan","xxx",1)Out19]: 'hello world xxxzilu and yanziluPython'In [20]: mystr.replace("yan","xxx",2)Out[20]: 'hello world xxxzilu and xxxziluPython'In [21]: mystr.replace("yan","xxx",33) 			#替換次數(shù)可以超過(guò)最大值Out[21]: 'hello world xxxzilu and xxxziluPython'

3.4split,作用分割,切割 ,語(yǔ)法:split(str=’ ',maxsplit)

In [22]: mystr
Out[22]: 'hello world yanzilu and yanziluPython'In [23]: mystr.split(" ")Out[23]: ['hello', 'world', 'yanzilu', 'and', 'yanziluPython']In [24]: mystr.split("and")Out[24]: ['hello world yanzilu ', ' yanziluPython']In [25]: mystr.split(" ",3)Out[25]: ['hello', 'world', 'yanzilu', 'and yanziluPython']In [26]: mystr.split()Out[26]: ['hello', 'world', 'yanzilu', 'and', 'yanziluPython']

3.5 partition , 把mystr 以str分割成三個(gè)部分,str前,str自身,str后

In [27]: mystr
Out[27]: 'hello world yanzilu and yanziluPython'In [28]: mystr.partition("and")Out[28]: ('hello world yanzilu ', 'and', ' yanziluPython')In [29]: mystr.partition("yanzilu")Out[29]: ('hello world ', 'yanzilu', ' and yanziluPython')In [30]: mystr.rpartition("yanzilu")Out[30]: ('hello world yanzilu and ', 'yanzilu', 'Python')

3.6splitlines作用,按照行進(jìn)行分割,返回一個(gè)包含各行作為元素的列表

In [31]: mystr1
Out[31]: 'hello\nworld\nyanzilu\nand\nyanziluPython'In [32]: mystr1.splitlines()Out[32]: ['hello', 'world', 'yanzilu', 'and', 'yanziluPython']

3.7 startswith () 判斷是否以str開(kāi)頭; endswith () 判斷是否以str結(jié)尾。

In [33]: mystr
Out[33]: 'hello world yanzilu and yanziluPython'In [34]: mystr.startswith("hello")Out[34]: TrueIn [35]: mystr.startswith("Hello")Out[35]: FalseIn [36]: mystr.startswith("h")Out[36]: TrueIn [37]: mystr.endswith("Pthon")Out[37]: FalseIn [38]: mystr.endswith("Python")Out[38]: True

3.8upper將所有字母轉(zhuǎn)換為大寫(xiě); lower將所有字母轉(zhuǎn)換為小寫(xiě)。

In [39]: mystr.upper()。
Out[39]: 'HELLO WORLD YANZILU AND YANZILUPYTHON'In [40]: mystr.lower()  Out[40]: 'hello world yanzilu and yanzilupython'

3.9center給字符串兩邊添加空格,居中顯示

In [41]: mystr = "那一夜我傷害了你"In [42]: mystr = mystr.center(30)  In [43]: mystr
Out[43]: '           那一夜我傷害了你

###3.10 lstrip刪除字符串左邊的空格

In [44]: mystr.lstrip()Out[44]: '那一夜我傷害了你

3.11rstrip刪除字符串右邊的空格

In [45]: mystr.rstrip()Out[45]: '           那一夜我傷害了你'

3.12 strip刪除字符串兩邊的空格

In [46]: mystr.strip()Out[46]: '那一夜我傷害了你'

3.13isspace判斷是否只包含空格

In [47]: mystr.isspace()Out[47]: FalseIn [48]: mystr = "    "In [49]: mystr.isspace()Out[49]: True

3.14salpha判斷字符串中是否只包含字母

In [50]: mystr = "abc" In [51]: mystr.isalpha()Out[51]: TrueIn [52]: mystr = "abc1"In [53]: mystr.isalpha()Out[53]: False

3.15isdigit判斷是否只包含數(shù)字。

In [54]: mystr = "123123"In [55]: mystr.isdigit()Out[55]: TrueIn [56]: mystr = "123123aa"In [57]: mystr.isdigit()Out[57]: False

3.16isalnum判斷是否只包含數(shù)字和字母。

In [58]: mystr.isalnum()Out[58]: TrueIn [59]: mystr = "123123 aa"In [60]: mystr.isalnum()Out[60]: False

3.17title將每個(gè)單詞的首字母大寫(xiě),其余小寫(xiě)

In [61]: mystr = 'hello world yanzilu and yanziluPython'In [62]: mystr.title()Out[63]: 'Hello World Yanzilu And Yanzilupython'

3.18capitalize將字符串的第一個(gè)字符大寫(xiě),其余小寫(xiě)

In [64]: mystr.capitalize()Out[64]: 'Hello world yanzilu and yanzilupython'

3.19count統(tǒng)計(jì)單詞出現(xiàn)的次數(shù)

In [65]: mystr.count("hello")Out[65]: 1In [66]: mystr.count("yan")Out[66]: 2

3.20join在每個(gè)字符后面插入str,構(gòu)造出一個(gè)新的字符串。

In [67]: mystr = " "In [68]: name
Out[68]: ['hello', 'world', 'yanzilu', 'and', 'yanziluPython']In [69]: mystr.join(name)Out[69]: 'hello world yanzilu and yanziluPython'In [70]: mystr = "_"In [71]: mystr.join(name)Out[71]: 'hello_world_yanzilu_and_yanziluPython'

4.列表及循環(huán)遍歷

4.1列表的格式

#變量names_list的類(lèi)型為列表names_list = [' 劉備',' 曹操',' 孫權(quán)'] 
#打印多個(gè)姓名names_list = [' 劉備',' 曹操',' 孫權(quán)']print(names_list[0])print(names_list[1])print(names_list[2]) names = [' 劉備',' 曹操',' 孫權(quán)'] for x in names    print(x)i=1while i<len(names)print(name[i])i+=1

5.列表的增刪改查:

列表中存放的數(shù)據(jù)是可以進(jìn)行修改的,比如"增"、“刪”、“改”

5.1列表的添加元素("增"append, extend, insert)

append可以向列表添加元素
extend將另一個(gè)集合中的元素逐一添加到列表中
insert在指定位置index前插入元素

name=[“劉備” , ”曹操” , ”孫權(quán)”]print(“增加之前:”,name)info=[“黃忠” , ”魏延”]

append追加

names.append("呂布")names.append("貂蟬")names.append(info)     				
#append把中括號(hào)也增加上了print("增加之后:",names)

這里是引用

使用extend合并列表

info = ["黃忠","魏延"]names.extend(info)print("增加之后:",names)

這里是引用

insert在指定位置前插入元素

names.insert(0,"劉禪")print("增加之后:",names)

5.2刪除元素 (" 刪 "del, pop, remove)

del根據(jù)下標(biāo)進(jìn)行刪除
pop刪除最后一個(gè)元素
remove根據(jù)元素的值進(jìn)行刪除

names = ['劉備', '曹操', '孫權(quán)', '呂布', '貂蟬', '黃忠', '魏延']print("刪除前:",names)

5.3del指定下標(biāo)刪除

del names[1]print("del刪除后:",names)

5.4使用pop刪除最后一個(gè)元素

names.pop()names.pop()print("pop刪除后:",names)

5.5使用remove根據(jù)元素值進(jìn)行刪除

name = input("請(qǐng)輸入您要?jiǎng)h除的歷史人物:")names.remove(name)print("remove刪除后:",names)

5.6列表的修改

通過(guò)下標(biāo)修改元素 (" 改 ")

names = ["劉備","曹操","孫權(quán)"]names[0] = "劉禪"print(names)

5.7查找元素("查"in, not in, index, count)

python中查找的常用方法為:
in (存在), 如果存在那么結(jié)果為T(mén)rue ,否則為False
not in (不存在),如果不存在那么結(jié)果為T(mén)rue ,否則False
index和count與字符串中的用法相同

names = ['劉備', '曹操', '孫權(quán)', '呂布', '貂蟬', '黃忠', '魏延',"曹操"]findName = input("請(qǐng)輸入您要查找的姓名:")if findName in names:
    print("已經(jīng)找到:%s"%findName)else:
    print("沒(méi)有找到:%s"%findName)
In [1]: names = ['劉備', '曹操', '孫權(quán)', '呂布', '貂蟬', '黃忠', '魏延',’曹操’]In [2]: name.index(“曹操”)Out[2]:1In [3]: name.index(“曹操”,2,leb(names))Out[3]:7In [4]: name.count(“曹操”)Out[4]:2

6.排序(sort, reverse)

sort方法是將list按特定順序重新排列,默認(rèn)為由小到大(True:從小到大;False從大到?。?br/> reverse=True可改為倒序,由大到小。
reverse方法是將list逆置。需要先排序再降序

7.列表嵌套

類(lèi)似while循環(huán)的嵌套,列表也是支持嵌套的一個(gè)列表中的元素又是一個(gè)列表,那么這就是列表的嵌套
示例:

school_names = [[' 北京大學(xué)',' 清華大學(xué)'],[' 南開(kāi)大學(xué)',' 天津大學(xué)'],[' 貴州大學(xué)',' 青海大學(xué)']]print(school_names)
#print(school_names)#print(len(school_names))#print(school_names[2][1])for school in school_names:
    print("="*30)
    print(school)
    for name in school:
        print(name)

8.列表嵌套的應(yīng)用- - 隨機(jī)安排老師工位

一個(gè)學(xué)校,有3個(gè)辦公室,現(xiàn)在有8位老師等待工位的分配,請(qǐng)編寫(xiě)程序,完成隨機(jī)的分配

import random
offices = [[ ],[ ],[ ]]names = ['劉備', '曹操', '孫權(quán)', '呂布', '貂蟬', '黃忠', '魏延','大喬']for office in offices:
    #得到一個(gè)教師的下標(biāo)
    index = random.randint(0,len(names)-1)
    #分配老師
    name = names[index]
    office.append(name)
    #要移除已經(jīng)完成分配的老師
    names.remove(name)for name in names:
    #得到辦公室編號(hào)
    index = random.randint(0,2)
    offices[index].append(name)#print(offices)#打印出來(lái)哪些辦公室有哪些老師i= 1for office in offices:
    #office = ["劉備","曹操"]
    print("辦公室%s : 共%s人"%(i,len(office)))
    i+=1
    for name in office:
        print("%s"%name,end="\t\t")
    print()
    print("="*30)

感謝各位的閱讀,以上就是“Python字符和列表怎么表示”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)Python字符和列表怎么表示這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI