吴忠躺衫网络科技有限公司

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

python 的數(shù)據(jù)類型(三):字符串

電子設(shè)計(jì) ? 來(lái)源:電子設(shè)計(jì) ? 作者:電子設(shè)計(jì) ? 2020-12-24 15:41 ? 次閱讀

各位童鞋很抱歉,由于這段時(shí)間比較忙,好久沒(méi)更新了。今天終于有空來(lái)繼續(xù)跟各位童鞋一起學(xué)習(xí)python

之前講到,字符串的定義就是把一些字符序列用引號(hào)引起來(lái)。例如:

s = 'abc'

上面這行代碼的執(zhí)行過(guò)程:先創(chuàng)建一個(gè)字符串對(duì)象,并初始化里面字符串的值為'a', 'b', 'c'的序列,再把指針s指向這個(gè)對(duì)象。如下圖所示:

字符串的序列操作

我們知道字符串內(nèi)部是一個(gè)字符序列。作為序列,我們可以用下標(biāo)來(lái)索引。例如:

c = s[0] # c = 'a'

c = s[1] # c = 'b'

還可以從字符序列的末尾開(kāi)始索引,-1代表最后一個(gè)字符,-2代表倒數(shù)第二個(gè)字符,... 例如:

c = s[-1] # c = 'c'

c = s[-2] # c = 'b'

另外字符串還支持切片(slice)操作,取出給定兩個(gè)下標(biāo)之間的字符序列(包括開(kāi)始下標(biāo)的字符,但不包括結(jié)束下標(biāo)的字符。用數(shù)學(xué)區(qū)間的[a:b)來(lái)描述是不是更清楚點(diǎn)呢)。例如:

c = s[0:2] # c = 'ab'

c = s[1:2] # c = 'b'

c = s[1:-1] # c = 'b'

這一點(diǎn)很像verilog的位寬操作,例如:reg s[7:0] = 8'h5a,那我們可以c = s[3:0]來(lái)取出3到0位的4'ha。只是verilog是閉區(qū)間的。

在切片時(shí),當(dāng)開(kāi)始下標(biāo)是0,冒號(hào)前的下標(biāo)可以省略;結(jié)束下標(biāo)指向最后一個(gè)元素,冒號(hào)后的下標(biāo)也可省略。所以上面的切片可以簡(jiǎn)化成:

c = s[:2] # c = 'ab'

c = s[1:] # c = 'bc'

當(dāng)開(kāi)始下標(biāo)和結(jié)束下標(biāo)都省略時(shí),s[:]表示整個(gè)字符序列'abc'。

注意理解 s[1:-1]和s[1:]的區(qū)別,前者不包括最后一個(gè)字符,而后者包括。

作為字符序列,還支持拼接和重復(fù)操作。例如:

s1 = 'abc'

s2 = s1 + 'def' # s2 = 'abcdef'

s3 = s1 * 3 # s3 = 'abcabcabc'

另外我們要注意字符序列的只讀性。我們不可以對(duì)字符賦值,s[0] = 'd'是非法的。但我們可以迂回:

s = 'abc'

s = 'd' + s[1:]

但要注意,第二句并不是簡(jiǎn)單的修改s對(duì)象的元素值,而是用拼接產(chǎn)生了一個(gè)全新對(duì)象,并讓s指向新的對(duì)象。

字符串類型的操作

除了序列操作外,字符串本身作為一種類,自帶了很多操作函數(shù)(類的方法)。下表列出了一些常用的操作:

index, find

position = index(substr, begin=0, end=len(string))

position = find(substr, begin=0, end=len(string))

描述:index和find函數(shù)的作用相同,都是查找子字符串。可以指定開(kāi)始和結(jié)束索引,在一個(gè)范圍內(nèi)查找。

返回值:子字符串的起始索引值。index和find的區(qū)別是,當(dāng)沒(méi)有找到子字符串時(shí),index報(bào)錯(cuò),而find返回-1。

例如:

s = 'abcdefdef'

p1 = s.find('de') # p1 = 3

p2 = s.index('de', 5) # p2 = 6

replace

str_new = replace(substr_old, substr_new[, max])

描述:替換函數(shù),如其名,查找子字符串substr_old,替換成substr_new。第三個(gè)參數(shù)是可選的,指定替換的最大次數(shù),默認(rèn)是全部替換。

返回值:返回替換后的新字符串。

例如:

s = 'abcdefdef'

s1 = s.place('de', 'gh') # s1 = 'abchgfhgf'

s2 = s.place('de', 'gh',1) # s1 = 'abchgfedf'

split

list = split(str=' ', num)

描述:split函數(shù)用分隔字符str把字符串拆分成若干個(gè)子字符串。num指定拆分多少次,若沒(méi)有指定次數(shù),則為全部拆分。

返回值:拆分后的子字符串列表(下一次我們將要學(xué)習(xí)列表)。

例如:

s = 'I am learning python'

list1 = s.split(' ') # list1 = ['I', 'am', 'learning', 'python']

list1 = s.split(' ', 2) # list1 = ['I', 'am', 'learning python']

upper, lower

str_new = upper()

str_new = lower()

描述:把字符串轉(zhuǎn)成大寫(xiě)或小寫(xiě)。

返回值:大小寫(xiě)轉(zhuǎn)換后的新字符串。

例如:

s = 'abc'

s1 = s.uppper() # s1 = 'ABC'

s2 = s1.lower() # s2 = 'abc'

strip, lstrip, rstrip

str_new = strip(char=' ')

str_new = rstrip(char=' ')

str_new = lstrip(char=' ')

描述:strip函數(shù)用來(lái)去除頭或尾部的指定字符,默認(rèn)是去掉空格。

返回值:返回處理后的新字符串。

例如:

s = ' abc'

s1 = s.lstrip() # s1 = 'abc'

s2 = s1.rstrip('') # s2 = 'abc'

startswith, endswith

boolean = startswith(str, begin=0, end=len(string))

boolean = endswith(str, begin=0, end=len(string))

描述:檢查字符串是否以str開(kāi)頭或結(jié)尾,可以在指定范圍內(nèi)檢查。

返回值:如果檢查到,返回True,否則返回False。

例如:

s = 'clk_a'

b1 = s.startswith('clk') # b1 = True

s = 'rst_n'

b2 = s.endswith('_n') # s2 = True

format

str_new = '{}{}...'.format(arg1, arg2, ...)

描述:format用來(lái)把其它數(shù)字、字符串、甚至對(duì)象等格式化成字符串。大括號(hào){}用來(lái)指定名稱、位置、數(shù)字的格式等。

返回值:格式化后的新字符串。

例如:

s = 'I am learning {lang}'.format(lang='python') # s = 'I am learning python'

s = '{0} {1} {0}'.format('face', 'to') # s = 'face to face'

s = '{} {} {}'.format('I', 'love', 'python') # s = 'I love python'

第一種,按名稱替換。

第二種,按位置替換。

第三種,默認(rèn)按位置替換,也是最常見(jiàn)的替換方式。

是不是有點(diǎn)像verilog的模塊例化?可以按名稱,也可以按位置。

format數(shù)字格式化

數(shù)字格式化成字符串的規(guī)則如下表:

例如:

s = "8'h{:0>2x}".format(15) # s = "8'h0f"

s = '{:.2%}'.format(3 / 9) # s = "33.33%"

可能有童鞋要問(wèn)了“字符串內(nèi)置這么多函數(shù),一下也記不住啊?” 所以下面內(nèi)容非常重要(敲黑板)。

1. 怎么看string還內(nèi)置其它什么函數(shù)?

s = 'abc'

print(dir(s))

dir()是一個(gè)內(nèi)置函數(shù),能夠查看類的所有屬性和方法。結(jié)果如下:

2. 那怎么查看具體函數(shù)的使用方法呢?

python已經(jīng)考慮到這個(gè)問(wèn)題了,不需要百度、不需要查看源代碼,只需要調(diào)用help()函數(shù)。例如:

print(help(s.find))

將打印出下面的內(nèi)容:

有沒(méi)有被python的貼心功能感動(dòng)呢?

下一次我們將學(xué)習(xí)python的列表。

審核編輯:符乾江
聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 字符串
    +關(guān)注

    關(guān)注

    1

    文章

    585

    瀏覽量

    20604
  • 數(shù)據(jù)類型
    +關(guān)注

    關(guān)注

    0

    文章

    236

    瀏覽量

    13664
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4807

    瀏覽量

    85040
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    字符串數(shù)據(jù)庫(kù)中的存儲(chǔ)方式

    數(shù)據(jù)庫(kù)是現(xiàn)代信息技術(shù)中存儲(chǔ)和管理數(shù)據(jù)的核心組件。字符串作為最常見(jiàn)的數(shù)據(jù)類型之一,在數(shù)據(jù)庫(kù)中的存儲(chǔ)方式對(duì)其性能和可擴(kuò)展性有著重要影響。
    的頭像 發(fā)表于 01-07 15:41 ?194次閱讀

    字符串在編程中的應(yīng)用實(shí)例

    字符串在編程中有著廣泛的應(yīng)用,它們被用于表示文本數(shù)據(jù)、處理用戶輸入、構(gòu)建動(dòng)態(tài)內(nèi)容等。以下是一些字符串在編程中的應(yīng)用實(shí)例: 1. 用戶輸入與輸出 用戶輸入 :程序通常需要從用戶那里獲取輸入,這些輸入通
    的頭像 發(fā)表于 01-07 15:33 ?152次閱讀

    字符串字符數(shù)組的區(qū)別

    在編程語(yǔ)言中,字符串字符數(shù)組是兩種基本的數(shù)據(jù)結(jié)構(gòu),它們都用于存儲(chǔ)和處理文本數(shù)據(jù)。盡管它們?cè)诠δ苌嫌幸欢ǖ闹丿B,但在內(nèi)部表示、操作方式和使用場(chǎng)景上存在顯著差異。 1. 內(nèi)部表示
    的頭像 發(fā)表于 01-07 15:29 ?293次閱讀

    字符串反轉(zhuǎn)的實(shí)現(xiàn)方式

    在編程中,字符串反轉(zhuǎn)是一個(gè)基礎(chǔ)而重要的操作,它涉及到將一個(gè)字符串中的字符順序顛倒過(guò)來(lái)。這個(gè)操作在多種編程語(yǔ)言中都有不同的實(shí)現(xiàn)方式,本文將探討幾種常見(jiàn)的字符串反轉(zhuǎn)方法。 1. 遞歸方法
    的頭像 發(fā)表于 01-07 15:27 ?206次閱讀

    字符串處理方法 字符串轉(zhuǎn)數(shù)字的實(shí)現(xiàn)

    在編程中,將字符串轉(zhuǎn)換為數(shù)字是一個(gè)常見(jiàn)的需求。不同的編程語(yǔ)言有不同的方法來(lái)實(shí)現(xiàn)這一功能。以下是一些常見(jiàn)編程語(yǔ)言中的字符串轉(zhuǎn)數(shù)字的實(shí)現(xiàn)方法: PythonPython中,可以使用內(nèi)置
    的頭像 發(fā)表于 01-07 15:26 ?189次閱讀

    base64字符串轉(zhuǎn)換為二進(jìn)制文件

    一些編程知識(shí)。以下是將Base64字符串轉(zhuǎn)換為二進(jìn)制文件的一般步驟,以及一個(gè)簡(jiǎn)單的Python示例代碼。 步驟: 獲取Base64字符串 :首先,你需要有一個(gè)Base64編碼的字符串
    的頭像 發(fā)表于 11-10 10:55 ?1653次閱讀

    鴻蒙原生應(yīng)用元服務(wù)開(kāi)發(fā)-倉(cāng)頡基礎(chǔ)數(shù)據(jù)類型字符串類型

    字符串類型使用 String 表示,用于表達(dá)文本數(shù)據(jù),由一 Unicode 字符組合而成。 字符串
    發(fā)表于 09-18 10:43

    labview字符串數(shù)組轉(zhuǎn)化為數(shù)值數(shù)組

    在LabVIEW中,將字符串數(shù)組轉(zhuǎn)換為數(shù)值數(shù)組是一項(xiàng)常見(jiàn)的任務(wù),尤其是在處理數(shù)據(jù)采集、信號(hào)處理或用戶輸入時(shí)。 1. 理解LabVIEW的數(shù)據(jù)類型 在開(kāi)始之前,了解LabVIEW中的數(shù)據(jù)類型
    的頭像 發(fā)表于 09-04 17:47 ?2846次閱讀

    labview字符串如何轉(zhuǎn)換為16進(jìn)制字符串

    在LabVIEW中,將字符串轉(zhuǎn)換為16進(jìn)制字符串是一個(gè)常見(jiàn)的需求,尤其是在處理數(shù)據(jù)通信和硬件接口時(shí)。LabVIEW提供了多種方法來(lái)實(shí)現(xiàn)這一轉(zhuǎn)換,包括使用內(nèi)置函數(shù)、編寫(xiě)VI(Virtual
    的頭像 發(fā)表于 09-04 15:54 ?3036次閱讀

    labview中如何實(shí)現(xiàn)字符串換行

    1. 字符串換行的基本概念 在LabVIEW中,字符串換行通常指的是在字符串中插入換行符,使得字符串在顯示或輸出時(shí)能夠自動(dòng)換行。這在創(chuàng)建用戶界面或處理文本
    的頭像 發(fā)表于 09-04 15:47 ?2041次閱讀

    labview中常用的字符串函數(shù)有哪些?

    ) : 功能:該函數(shù)用于返回字符串所包含的字符個(gè)數(shù)。 應(yīng)用場(chǎng)景:常用于需要計(jì)算字符串長(zhǎng)度的場(chǎng)景,如文件命名、數(shù)據(jù)處理等。 連接字符串(Str
    的頭像 發(fā)表于 09-04 15:43 ?982次閱讀

    labview字符串的四種表示各有什么特點(diǎn)

    。在LabVIEW中,字符串是一種基本的數(shù)據(jù)類型,用于表示文本信息。字符串在LabVIEW中有多種表示方式,每種方式都有其特定的應(yīng)用場(chǎng)景和特點(diǎn)。以下是對(duì)LabVIEW中四種字符串表示方
    的頭像 發(fā)表于 09-04 15:40 ?710次閱讀

    深入解析西門(mén)子博途文本塊接口的結(jié)構(gòu)與功能

    STRING 和 WSTRING 數(shù)據(jù)類型存儲(chǔ)一個(gè)字符串中的多個(gè)字符。允許在字符串中使用任何 ASCII碼類型
    發(fā)表于 04-11 11:23 ?1423次閱讀
    深入解析西門(mén)子博途文本塊接口的結(jié)構(gòu)與功能

    鴻蒙TypeScript學(xué)習(xí)第10天:【String(字符串)】

    String 對(duì)象用于處理文本(字符串)。
    的頭像 發(fā)表于 04-08 14:32 ?889次閱讀
    鴻蒙TypeScript學(xué)習(xí)第10天:【String(<b class='flag-5'>字符串</b>)】

    C語(yǔ)言字符串編譯函數(shù)介紹

    在C語(yǔ)言中,字符串實(shí)際上是使用null字符O'終止的一維字符數(shù)組。因此,一個(gè)以null結(jié)尾的字符串,包含了組成字符串
    的頭像 發(fā)表于 03-07 16:18 ?556次閱讀
    C語(yǔ)言<b class='flag-5'>字符串</b>編譯函數(shù)介紹
    星子县| 百家乐智能分析| 珠海市| 百家乐赌博娱乐城大全| 百家乐官网庄和闲的赌法| 百家乐赌台| 大集汇百家乐官网的玩法技巧和规则 | 宝马会在线娱乐城| 百家乐api| 百家乐官网棋牌游戏源码| 大发888娱乐城888 bg| 风水(24山定凶吉)最新整理| 百家乐官网没有必胜| 东方太阳城嘉宾国际酒店| 真人百家乐宣传| 百家乐官网最新打法| 免费百家乐游戏下| 至尊百家乐官网20| 莱芜市| 菲利宾太阳城娱乐网| 百家乐游戏规测| 百家乐官网赢率| 王牌国际| 百家乐赢钱面面观| 最佳场百家乐官网的玩法技巧和规则 | 明溪百家乐的玩法技巧和规则| 百家乐官网园云鼎赌场娱乐网规则| 昌吉市| 大发888 真钱娱乐场| 百家乐投注方法多不多| 百家乐最新首存优惠| 百家乐官网破解方法技巧| 宝格丽娱乐城| 大发888娱乐场下载 zhldu| 玩百家乐澳门皇宫娱乐城| 中原百家乐官网的玩法技巧和规则 | bet365提款时间| 月华百家乐的玩法技巧和规则| 百家乐百家乐群| 百家乐官网国际娱乐网| 易赢百家乐官网软件|