欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python數(shù)據(jù)類型之String字符串實例詳解

 更新時間:2019年05月08日 10:25:30   作者:微信1257309054  
這篇文章主要介紹了Python數(shù)據(jù)類型之String字符串,結(jié)合實例形式詳細講解了Python字符串的概念、定義、連接、格式化、轉(zhuǎn)換、查找、截取、判斷等常見操作技巧,需要的朋友可以參考下

本文實例講述了Python數(shù)據(jù)類型之String字符串。分享給大家供大家參考,具體如下:

String(字符串)

1、概述

字符串是以單引號或雙引號括起來的任意文本,比如"abc",‘xy'等等,請注意‘'或者""本身只是一種表示方式,并不是字符串的一部分。

a.若字符串內(nèi)部包含單引號又包含雙引號怎么辦?

print('I\'m \"ok\"')

表示的字符串內(nèi)容是:

I'm "ok"

注意:轉(zhuǎn)義字符\可以轉(zhuǎn)義很多字符,比如\n表示換行,\t表示制表符,字符\本身也需要轉(zhuǎn)義,所以\\表示的字符就是\等等

>>>print('I\'m ok.')
I'm ok.
>>>print('I\'m learning\n python.')
I'm leanring
Python.
>>> print('\\\n\\')
\
\

但是,如果字符串里面很多字符串需要轉(zhuǎn)義,就需要添加很多,為了簡化,python還允許用r""(或者R"")表示內(nèi)部的字符串默認不轉(zhuǎn)義。

>>> print('\\\t\\')
\  \
>>>print(r'\\\t\\')
\\\t\\

如果字符串內(nèi)部很多換行,用\n寫在一行里不好閱讀,為了簡化,python允許用"'…"'的格式表示多行內(nèi)容:

>>> print('''line1
  line2
  line3''')
line1
line2
line3

2.創(chuàng)建字符串

str1 = "hello world"
str2 = 'you are good'

3.字符串運算

3.1字符串連接

3.1.1 使用加號進行連接

#字符串的連接,通過"+"進行連接
s1 = 'welcome '
s2 = 'to guangzhou'
print(s1 + s2)

輸出:

welcome to guangzhou

注意:字符串 + 數(shù)字,這樣會報錯,不同類型的不能相加

3.1.2 使用","進行連接【tuple類型】

s1 = 'hello'
s2 = 'world'
print(s1, s2)
#使用","連接的時候,在","的位置會產(chǎn)生一個空格

輸出:

hello world

3.1.3 使用%格式化連接

s1 = 'hello'
s2 = 'world'
print("%s %s"%(s1, s2))

輸出:

hello world

3.1.4 使用join函數(shù)進行連接

s1 = ['hello', 'world']
print("".join(s1))
print("*".join(s1))

輸出:

helloworld
hello*world

注意:"".join()函數(shù)只需要傳遞一個參數(shù)【字符串、列表、元組、字典(輸出無序)、集合(輸出無序),其中的元素應(yīng)該是字符串類型】。

3.2 重復(fù)輸出字符串

#重復(fù)輸出字符串,通過乘法的方式實現(xiàn)
s3 = 'good'
print(s3 * 3)

輸出:

goodgoodgood

3.3 獲取字符串中的字符

#通過索引的方式實現(xiàn)
#索引:給一個字符串中的字符從0開始編號,也稱為下標
#索引的取值范圍:[0,len(str)-1]
#訪問方式: 變量名稱[索引]
str3 = 'good'
print(str3[0])
#索引值還可以從-1開始,-1代表倒數(shù)第一個字符
print(str3[-1])

輸出:

g
d

3.3 截取字符串

# 通過下標截取字符串
str1 = "hello world"
print(str1[3:6])
#注意:截取字符串的范圍是str[start : end] 它是一個前閉后開的區(qū)間[start,end)
#如果n的值超過了字符串的最大長度,則仍然截取原下標的長度
#從開頭截取到指定索引之前[0,5)
print(str1[:5])
#從指定截取到結(jié)尾[4,len(str1))
print(str1[4:])
#注意在使用str[start : end]來截取字符串的時候,若start不寫默認從第一個字符開始
#若end不寫,則默認到最后一個字符結(jié)束。取頭去尾。
print("012345"[1:-1])

輸出:

lo
hello
o world
1234

3.5 判斷是否包含指定字符

#判斷字符串中是否包含某指定字符串
str4 = "you are a good boy"
print("good" in str4)
#若包含有則返回True否則為False

輸出:

True

3.6 格式化輸出

#通過%來改變后面的字母或者是符號的含義,%被稱為占位符
# %s:格式化字符串
# %d:格式化整數(shù)
# %f:格式化浮點數(shù),可指定小數(shù)點后的精度
age = 18
name = "麗麗"
weight = 45.5
print("my name is %s , I am %d year old and my weight is %.2f kg"%(name, age, weight))
#注意:%.nf表示精確到小數(shù)點后n位,會四舍五入

輸出:

my name is 麗麗 , I am 18 year old and my weight is 45.50 kg

4.關(guān)于字符串常用函數(shù)

4.1 eval(str)

功能:將字符串str當(dāng)成有效的表達式來求值并返回計算結(jié)果。

可以把list,tuple,dict和string相互轉(zhuǎn)化

>>>num1 = eval('123')
>>>print(num1)
123
>>>num2 = eval("[1, 2, 3]")
>>>print(num2)
[1, 2, 3]
>>> num3 = eval("12-3")
>>> print(num3)
9

4.2 len(str)

功能:返回當(dāng)前字符串的長度(字符的個數(shù))

>>> len("you are good")
12

4.3 str.lower()

功能:返回一個把字符串中的大寫字母轉(zhuǎn)換為小寫字母 的字符串

>>> str = "Hello World"
>>> print(str.lower())
hello world

注意:此方法不改變原本的字符

4.4 str.upper()

功能:返回一個把字符串中的小寫字母轉(zhuǎn)換為大寫字母的字符串

>>> str = "Hello World"
>>> print(str.upper())
HELLO WORLD

4.5 str.swapcase()

功能:返回一個把字符串中的大寫字母轉(zhuǎn)為小寫字母,小寫字母轉(zhuǎn)換為大寫字母的字符串

>>> str = "Hello World"
>>> print(str.swapcase())
hELLO wORLD

4.6 str.capitalize()

返回一個首字母大寫,其他小寫的字符串

>>> str = "Hello World"
>>> print(str.capitalize())
Hello world

4.7 str.title()

返回一個每個單詞首字母大寫的字符串

>>> str = "Hello World"
>>> print(str.title())
Hello World

4.8 str.center(width[, fillchar])

功能:返回一個指定寬度的居中字符串,fillchar為填充的字符串,默認使用空格

>>> str = "Hello World"
>>> print(str.center(50,"*"))
*******************Hello World********************

4.9 str.ljust(width[, fillchar])

功能:返回一個指定寬度的左對齊字符串,fillchar為填充字符。默認使用空格填充

>>> str = "Hello World"
>>> print(str.ljust(50,"*"))
Hello World***************************************

4.10 str.rjust(width[, fillchar])

功能:返回一個指定寬度右對齊字符串,fillchar為填充字符,默認使用空格填充

>>> str = "Hello World"
>>> print(str.rjust(50,"*"))
***************************************Hello World

4.11 str.zfill(width)

功能:返回一個長度為width字符串,原字符串右對齊,前面補0

>>> str = "Hello World"
>>> print(str.zfill(50))
000000000000000000000000000000000000000Hello World

4.12 str.count(str [,start][, end])

功能:返回字符串中str出現(xiàn)的次數(shù),可以指定一個范圍,若不指定則默認從頭到尾,匹配的時候是區(qū)分大小寫的。

>>> str = "Hello World"
>>> print(str.count("hello", 0 , 10))
0

4.13 str.find(str1[, start][, end])

功能:從左到右檢測str1字符串是否包含在字符串中,可以指定范圍,默認從頭到尾。

返回的是第一次出現(xiàn)的開始的下標,若未查詢到,則返回-1

>>> str = "Hello World"
>>> str1 = "llo"
>>> print(str.find(str1, 0 , 10))
2

4.14 str.rfind(str1[, start][, end])

功能:類似于str.find(),不過是從右邊開始查找

>>> str = "Hello World"
>>> str1 = "llo"
>>> print(str.rfind(str1, 0 , 10))
2

4.15 str.index(str1[, start = 0] ,[ end = len(str)])

功能:類似于find(),與find() 不同的是,如果str1不存在的時候會報一個異常

>>> str2 = "Hello World"
>>> str1 = "hello"
>>> print(str2.index(str1, 0 , 10))
ValueError: substring not found

4.16 str.lstrip()

功能:截掉字符串左側(cè)指定的字符串,默認為空格

>>> str = '**** you are very good'
>>> print(str.lstrip())
>>> print(str.lstrip())
**** you are very good
>>> print(str.lstrip("*"))
 you are very good

4.17 str.rstrip()

功能:截掉字符串右側(cè)指定的字符串,默認為空格

>>> str = '**** you are good****'
>>> print(str.rstrip())
**** you are good****
>>> print(str.rstrip("*"))
**** you are good

str1 = "*nih*a*o*"
print(str1.strip('*'))

輸出:

nih*a*o

4.18 string.split(str="", num=string.count(str))

功能:以 str 為分隔符切片 string,如果 num有指定值,則僅分隔 num 個子字符串
str – 分隔符,默認為所有的空字符,包括空格、換行(\n)、制表符(\t)等。 num – 分割次數(shù)

>>> str1 = "hello you are good"
>>> str1.split()
['hello', 'you', 'are', 'good']
>>> str1.split(" ",2)
['hello', 'you', 'are good ']

4.19 str1.splitlines([keepends])

功能:字符串會按照行(‘\r','\r\n','\n')進行分割,返回一個包含各行作為元素的列表,如果參數(shù)keepends的值為False,不包含換行符,如果為True,則保留換行符。參數(shù)keepends默認為False。

str2 = '''how are
you ?
i am
fine
!
'''
list2 = str2.splitlines()
print(list2)

輸出:

['how are', 'you ?', 'i am', 'fine', '!']

str2 = '''how are
you ?
i am
fine
!
'''
list2 = str2.splitlines(keepends=True)
print(list2)

輸出:

['how are\n', 'you ?\n', 'i am\n', 'fine\n', '!\n']

4.20 str1.join(seq)

功能:以指定字符串作為分隔符,將seq中的所有元素合并成為一個新的字符串。

list2 = ['you', 'are', 'very', 'great', '!']
str3 = ' '.join(list2)
print(str3)

輸出:

you are very great !

str1 = "how are you , i am fine thank you"
str3 = "*".join(str1)
print(str3)

輸出:

h*o*w* *a*r*e* *y*o*u* *,* *i* *a*m* *f*i*n*e* *t*h*a*n*k* *y*o*u

注意:如果連接的是字符串,則它會把字符串中的每個字符使用指定字符連接。

4.21 獲取最大最小字符

max(str):功能: 返回字符串str中最大的字母

str1 = "how are you , i am fine thank you"
print(max(str1))

輸出:

y

min(str):功能:返回字符串str中最小字母

str1 = "how are you , i am fine thank you"
print(min(str1))

輸出:

' '

注意:比較的是ASCII碼值

4.22字符串的替換

str.replace(old , new [, count])

功能:將字符串中的old替換成new,若不指定count,則默認全部替換,若指定count,則替換前count個

str1 = "how are you , i am fine thank you"
str2 = str1.replace("you" ,'me')
print(str2)

輸出:

how are me , i am fine thank me

4.23字符串的映射替換

dic = str.maketrans(oldstr, newstr)

str2.translate(dic)

參數(shù)一:要轉(zhuǎn)換的字符 參數(shù)二:目標字符

str5 = ""
dic = str5.maketrans("ac", "21")
# a--2  c--1
str7 = "how are you ,u ewe c "
print(str7.translate(dic))

輸出:

how  2re you  ,u ewe 1

注意:很少用。

4.24 判斷字符串的開頭結(jié)尾

str.startswith(str1, start=0, end=len(str))

功能:在給定的范圍內(nèi)判斷字符串是否以給定的字符串開頭,如果沒有指定范圍,默認整個字符串。

str1 = "aaa bbb ccc deee"
print(str1.startswith("aa"))
str1 = "aaa bbb ccc deee"
print(str1.startswith("aa", 3, 9))

輸出:

True
False

str.endswith(str, start=0, end=len(str))

功能:在給定的范圍內(nèi)判斷字符串是否以指定的字符串結(jié)尾,若沒有指定范圍,默認為整個字符串。

str1 = "aaa bbb ccc deee"
print(str1.endswith("deee"))
str1 = "aaa bbb ccc deee"
print(str1.endswith("e", 3 ,9))

輸出:

True
False

4.25 編碼與解碼

str.encode(encoding="utf-8", errors="scrict")

功能:字符串的編碼,若不指定encoding則默認選擇utf-8。

str1 = "你好嗎?"
data = str1.encode()
print(data)
print(type(data))

輸出:

b'\xe4\xbd\xa0\xe5\xa5\xbd\xe5\x90\x97\xef\xbc\x9f'
<class 'bytes'>

str.decode(encoding="utf-8")

"hello".encode("utf-8").decode()

功能:對字符進行解碼,若不指定編碼格式,則默認選擇utf-8

str1 = "你好嗎?"
data = str1.encode()
print(data)
print(type(data))
data2 = data.decode()
print(data2)
print(type(data2))

輸出:

b'\xe4\xbd\xa0\xe5\xa5\xbd\xe5\x90\x97\xef\xbc\x9f'
<class 'bytes'>
你好嗎?
<class 'str'>

注意:解碼時的編碼格式要與編碼時的保持一致

拓展:errors = ignore 的時候,忽略錯誤

4.26 判斷是否為字母或數(shù)字

str.isalpha()

功能:判斷字符串至少有一個字符,并且所有的字符都是字母(或者包含漢字),若為真則返回True,否則返回False

str8 = "hello ni hao "
print(str8.isalpha())
str9 = "你好"
print(str9.isalpha())

輸出:

False
True

str.isalnum()

功能:判斷一個字符串至少有一個字符,并且所有的字符都是字母或數(shù)字(或者包含漢字)則返回True否則返回False

str9 = '1234你好'
str10 = "sc22xdcd"
str11 = "ss1 2dd"
print(str9.isalnum())
print(str10.isalpha())
print(str11.isalnum())

輸出:

True
True
False

4.27 判斷大小寫

str.isupper()

功能:若字符串中包含至少一個字母的字符,并且這些字母都是大寫,則返回True,否則返回False

str10 = "AA2221 你111"
print(str10.isupper())
str10 = "AAaaa"
print(str10.isupper())

輸出:

True
False

str.islower()

功能:若字符串中包含至少一個字母的字符,并且這所有的字母都是小寫,則返回True,否則返回False。

str10 = "aa2221 你111"
print(str10.islower())

輸出:

True

4.28 判斷是否包含特殊字符

①、str.istitle()

功能:如果一個字符串是標題化的則返回True,否則返回False

【標題化】每個首字母大寫。

str1 = "Hello World"
print(str1.istitle())

輸出:

True

②、str.isdigit()

功能:判斷字符是否全為數(shù)字。

isdigit()
True: Unicode數(shù)字,byte數(shù)字(單字節(jié)),全角數(shù)字(雙字節(jié))
False: 漢字數(shù)字, ,羅馬數(shù)字
Error: 無

print("123".isdigit())
print("123a".isdigit())

輸出:

True
Fals

③、str.isnumeric()

功能:若字符串中只包含數(shù)字字符,則返回True,否則返回False。

isnumeric()
True: Unicode數(shù)字,全角數(shù)字(雙字節(jié)),漢字數(shù)字
False: 羅馬數(shù)字,
Error: byte數(shù)字(單字節(jié))

print("123一".isnumeric())
print("123a".isnumeric())

輸出:

True
False

④、str.isdecimal()

功能:檢查字符串是否只包含十進制字符【0,9】,如果是返回True,否則返回False。

isdecimal()
True: Unicode數(shù)字,,全角數(shù)字(雙字節(jié)),
False: 羅馬數(shù)字,漢字數(shù)字
Error: byte數(shù)字(單字節(jié))

print("123".isdecimal())
print("123z".isdecimal())

輸出:

True
False

⑤、str.isspace()

功能:如果字符串只包含空格,則返回True,否則返回False。

print(" ".isspace())
print("\t".isspace())
print("\n".isspace())
print("\r".isspace())
print(" qq".isspace())

輸出:

True
True
True
True
False

4.29 ASCII碼轉(zhuǎn)換

①、ord(str)

功能:獲取字符串的整數(shù)表示 ASCII碼值。

print(ord("A"))
print(ord("你"))

輸出:

65
20320

②、chr(str)

功能:把編碼轉(zhuǎn)成對應(yīng)的字符。

print(chr(68))
print(chr(20190))

輸出:

D

更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python字符串操作技巧匯總》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python列表(list)操作技巧總結(jié)》、《Python編碼操作技巧總結(jié)》、《Python函數(shù)使用技巧總結(jié)》及《Python入門與進階經(jīng)典教程

希望本文所述對大家Python程序設(shè)計有所幫助。

相關(guān)文章

  • python將寫好的程序打包成exe可執(zhí)行文件

    python將寫好的程序打包成exe可執(zhí)行文件

    這篇文章主要介紹了python寫好的程序打包成exe可執(zhí)行文件,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-08-08
  • 基于python的socket實現(xiàn)單機五子棋到雙人對戰(zhàn)

    基于python的socket實現(xiàn)單機五子棋到雙人對戰(zhàn)

    這篇文章主要為大家詳細介紹了基于python的socket實現(xiàn)單機五子棋到雙人對戰(zhàn),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-06-06
  • Java?超詳細講解核心類Spring?JdbcTemplate

    Java?超詳細講解核心類Spring?JdbcTemplate

    JdbcTemplate?JdbcTemplate是Spring?JDBC核心包(core)中的核心類,它可以通過配置文件、注解、Java?配置類等形式獲取數(shù)據(jù)庫的相關(guān)信息,實現(xiàn)了對JDBC開發(fā)過程中的驅(qū)動加載、連接的開啟和關(guān)閉、SQL語句的創(chuàng)建與執(zhí)行、異常處理、事務(wù)處理、數(shù)據(jù)類型轉(zhuǎn)換等操作的封裝
    2022-04-04
  • 無法使用pip命令安裝python第三方庫的原因及解決方法

    無法使用pip命令安裝python第三方庫的原因及解決方法

    今天小編就為大家分享一篇無法使用pip命令安裝python第三方庫的原因及解決方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-06-06
  • Python操作Excel神器openpyxl使用教程(超詳細!)

    Python操作Excel神器openpyxl使用教程(超詳細!)

    openpyxl庫是一個很好處理xlsx的python庫,下面這篇文章主要給大家介紹了關(guān)于Python辦公自動化openpyxl使用的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-01-01
  • Python 讀取圖片文件為矩陣和保存矩陣為圖片的方法

    Python 讀取圖片文件為矩陣和保存矩陣為圖片的方法

    下面小編就為大家分享一篇Python 讀取圖片文件為矩陣和保存矩陣為圖片的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • python使用openpyxl庫處理Excel文件詳細教程

    python使用openpyxl庫處理Excel文件詳細教程

    這篇文章主要給大家介紹了關(guān)于python使用openpyxl庫處理Excel文件詳細教程的相關(guān)資料,openpyxl屬于第三方模塊,在python中用來處理excel文件,可以對excel進行的操作有讀寫、修改、調(diào)整樣式及插入圖片等,需要的朋友可以參考下
    2023-11-11
  • 詳解Python3序列賦值、序列解包

    詳解Python3序列賦值、序列解包

    這篇文章主要介紹了Python3序列賦值、序列解包的相關(guān)知識,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-05-05
  • python pptx復(fù)制指定頁的ppt教程

    python pptx復(fù)制指定頁的ppt教程

    今天小編就為大家分享一篇python pptx復(fù)制指定頁的ppt教程,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02
  • Python 過濾錯誤log并導(dǎo)出的實例

    Python 過濾錯誤log并導(dǎo)出的實例

    今天小編就為大家分享一篇Python 過濾錯誤log并導(dǎo)出的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12

最新評論