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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

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

電子設計 ? 來源:電子設計 ? 作者:電子設計 ? 2020-12-24 15:41 ? 次閱讀

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

之前講到,字符串的定義就是把一些字符序列用引號引起來。例如:

s = 'abc'

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

字符串的序列操作

我們知道字符串內部是一個字符序列。作為序列,我們可以用下標來索引。例如:

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

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

還可以從字符序列的末尾開始索引,-1代表最后一個字符,-2代表倒數第二個字符,... 例如:

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

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

另外字符串還支持切片(slice)操作,取出給定兩個下標之間的字符序列(包括開始下標的字符,但不包括結束下標的字符。用數學區(qū)間的[a:b)來描述是不是更清楚點呢)。例如:

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

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

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

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

在切片時,當開始下標是0,冒號前的下標可以省略;結束下標指向最后一個元素,冒號后的下標也可省略。所以上面的切片可以簡化成:

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

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

當開始下標和結束下標都省略時,s[:]表示整個字符序列'abc'。

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

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

s1 = 'abc'

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

s3 = s1 * 3 # s3 = 'abcabcabc'

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

s = 'abc'

s = 'd' + s[1:]

但要注意,第二句并不是簡單的修改s對象的元素值,而是用拼接產生了一個全新對象,并讓s指向新的對象。

字符串類型的操作

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

index, find

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

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

描述:index和find函數的作用相同,都是查找子字符串??梢灾付ㄩ_始和結束索引,在一個范圍內查找。

返回值:子字符串的起始索引值。index和find的區(qū)別是,當沒有找到子字符串時,index報錯,而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])

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

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

例如:

s = 'abcdefdef'

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

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

split

list = split(str=' ', num)

描述:split函數用分隔字符str把字符串拆分成若干個子字符串。num指定拆分多少次,若沒有指定次數,則為全部拆分。

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

例如:

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()

描述:把字符串轉成大寫或小寫。

返回值:大小寫轉換后的新字符串。

例如:

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函數用來去除頭或尾部的指定字符,默認是去掉空格。

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

例如:

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開頭或結尾,可以在指定范圍內檢查。

返回值:如果檢查到,返回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用來把其它數字、字符串、甚至對象等格式化成字符串。大括號{}用來指定名稱、位置、數字的格式等。

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

例如:

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'

第一種,按名稱替換。

第二種,按位置替換。

第三種,默認按位置替換,也是最常見的替換方式。

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

format數字格式化

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

例如:

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

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

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

1. 怎么看string還內置其它什么函數?

s = 'abc'

print(dir(s))

dir()是一個內置函數,能夠查看類的所有屬性和方法。結果如下:

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

python已經考慮到這個問題了,不需要百度、不需要查看源代碼,只需要調用help()函數。例如:

print(help(s.find))

將打印出下面的內容:

有沒有被python的貼心功能感動呢?

下一次我們將學習python的列表。

審核編輯:符乾江
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯系本站處理。 舉報投訴
  • 字符串
    +關注

    關注

    1

    文章

    575

    瀏覽量

    20470
  • 數據類型
    +關注

    關注

    0

    文章

    236

    瀏覽量

    13596
  • python
    +關注

    關注

    55

    文章

    4767

    瀏覽量

    84375
收藏 人收藏

    評論

    相關推薦

    鴻蒙原生應用元服務開發(fā)-倉頡基礎數據類型字符串類型

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

    labview字符串數組轉化為數值數組

    在LabVIEW中,將字符串數組轉換為數值數組是一項常見的任務,尤其是在處理數據采集、信號處理或用戶輸入時。 1. 理解LabVIEW的數據類型 在開始之前,了解LabVIEW中的數據類型
    的頭像 發(fā)表于 09-04 17:47 ?1474次閱讀

    labview字符串如何轉換為16進制字符串

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

    labview字符串的四種表示各有什么特點

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

    labview掃描字符串怎么用

    介紹如何在 LabVIEW 中使用掃描字符串以及相關的技巧和注意事項。 字符串是 LabVIEW 中的一種基本數據類型,表示一系列字符的序列。掃描
    的頭像 發(fā)表于 12-29 10:12 ?1779次閱讀

    MySQL替換字符串函數REPLACE

    MySQL是目前非常流行的開源數據庫管理系統(tǒng)之一,它具有強大的功能和性能。其中之一的字符串函數REPLACE,可以用于替換字符串中的指定字符字符串
    的頭像 發(fā)表于 11-30 10:44 ?1430次閱讀

    c語言字符串定義

    C語言是一種強大而廣泛使用的編程語言,字符串是其中一個非常重要的概念。在C語言中,字符串是由一系列字符組成的數組,它可以表示文本、數字等各種類型
    的頭像 發(fā)表于 11-24 10:02 ?1740次閱讀

    python如何統(tǒng)計字符串中字母個數

    Python中統(tǒng)計字符串中字母個數的方法有多種,下面我會詳細介紹一些常用的方法。 方法一:使用循環(huán)遍歷字符串 該方法通過循環(huán)遍歷字符串中的每一個字符
    的頭像 發(fā)表于 11-23 16:29 ?1.3w次閱讀

    python中text的用法

    Python中的text是一個常見的數據類型,它用于存儲和處理文本數據。在Python中,文本常常被表示為字符串(string),
    的頭像 發(fā)表于 11-23 15:46 ?3245次閱讀

    python輸出固定長度的字符串

    Python 是一種強大而靈活的編程語言,具有許多用于處理字符串的功能。在 Python 中,有多種方法可以輸出固定長度的字符串。下面將詳細介紹這些方法。 方法一:使用
    的頭像 發(fā)表于 11-22 10:41 ?3040次閱讀

    python怎么把字符串變成數字

    Python是目前廣泛應用的一種編程語言,它以簡潔、易讀和靈活的特性被廣大開發(fā)者所喜愛。在Python中,字符串和數字是兩種常見的數據類型。字符串
    的頭像 發(fā)表于 11-22 09:47 ?3577次閱讀

    字符串如何轉換成日期型

    同編程語言將字符串轉換為日期類型。 正文: 一、Python中的字符串轉日期轉換 在Python中,使用datetime模塊可以方便地將
    的頭像 發(fā)表于 11-17 16:27 ?9816次閱讀

    mysql字符串包含某個字符串

    MySQL是一種開源的關系型數據庫管理系統(tǒng),被廣泛用于構建Web應用程序和其他大型數據驅動的應用。在進行MySQL數據庫查詢時,經常需要使用字符串包含操作,即判斷一個
    的頭像 發(fā)表于 11-16 14:52 ?3570次閱讀

    redis的五種數據類型底層數據結構

    結構: 字符串(String) 字符串是Redis中最基本的數據類型。在底層,Redis使用簡單動態(tài)字符串(SDS)來存儲字符串。SDS是一
    的頭像 發(fā)表于 11-16 11:18 ?672次閱讀

    redis的五種數據類型

    Redis是一種高性能的內存數據庫,常用于緩存、任務隊列、分布式鎖等場景。它提供了多種數據類型來滿足各種不同的需求,包括字符串(string)、哈希(hash)、列表(list)、集合(set
    的頭像 發(fā)表于 11-16 11:06 ?590次閱讀