Python3學習筆記(六) 字串

2022-03-31 18:02:16 字數 4052 閱讀 8168

所有標準的序列操作(索引、分片、乘法、判斷成員資格、求長度、取最小值和最大值)對字串同樣適用。但是字串是不可改變的。

字串格式化使用字串格式化操作符(%)來實現。

>>> "

hello,%s

" % '

world''

hello,world

'

元組或字典實現:

>>> print("

hello,%s. %s enough for ya?

" % ('

world

','hot'))

hello,world. hot enough

for ya?

轉換型別

含義d,i

帶符號的十進位制數

o不帶符號的八進位制數

u不帶符號的十進位制數

x不帶符號的十六進製制數(小寫)

x不帶符號的十六進製制數(大寫)

e科學計數法表示的浮點數(小寫)

e科學計數法表示的浮點數(大寫 )

f,f十進位制浮點數

g如果指數大於-4或者小於精度值則和e相同,其他情況與f相同

g如果指數大於-4或者小於精度值則和e相同,其他情況與f相同

c單字元(接受整數或單字串)

r字串(使用repr轉換任意python物件)

s字串(使用str轉換任意python物件)

簡單轉換

只需寫出轉換型別:

>>> '

price of eggs:%d

' % 42

'price of eggs:42

'>>> '

hexadecimal price of eggs:%x

' % 42

'hexadecimal price of eggs:2a

'

字段寬度和精度

>>> '

%10f

' % 3.1415926

'3.141593

'>>> '

%10.2f

' % 3.1415926

'3.14

'>>> '

%.2f

' % 3.1415926

'3.14

'>>> '

%.5s

' % '

dhfuhduioshduio''

dhfuh

'

可以使用*做為字段寬度或精度,此時數值會從元組引數中讀取

>>> '

%.*s

' % (5,'

dhfuhduioshduio')

'dhfuh

'>>> '

%*.*s

' % (10,5,'

dhfuhduioshduio')

'dhfuh

'

符號、對齊和用0填充

在字段寬度和精度值之前還可以放乙個標誌,該標誌可以是零(0),加號(+),減號(-)或空格

零(0)表示轉換的值為數字時,不足寬度的部位將用0填充,轉換的值為字串時無影響

>>> '

%010.2f

' % 3.1415926

'0000003.14

'>>> '

%010.5s

' % '

udshkdsfhdkjf''

udshk

'

減號(-)表示左對齊數值

>>> '

%-10.2f

' % 3.1415926

'3.14

'

加號(+)表示不管是正數還是負數都表示出正負號

>>> '

%+5d

' % 10

'+10

'>>> '

%+5d

' % -10

'-10

'

空格表示在正數前加上空格

>>> '

% 5d

' % 10'10

'>>> '

% 5d

' % -10

'-10

'

用於在乙個長字串中查詢子串。返回子串所在位置的最左端索引。如果沒有找到則返回-1

>>> title = "

monty python's flying circus

">>> title.find('

monty')

0>>> title.find('

python')

6>>> title.find('

flying')

15>>> title.find('

zirquss')

-1

這個方法還可以接受可選的起始點和結束點引數,指定查詢的字串範圍:

>>> subject = '

$$$ get rich now!!! $$$

'>>> subject.find('

$$$')0

>>> subject.find('

$$$',1) #

指定查詢的起始點

20>>> subject.find('

!!!')16

>>> subject.find('

!!!',0,16) #

指定查詢的起始點和結束點

-1

用於連線序列中的元素,被連線的元素都必須是字串

>>> dirs = '','

usr','

bin','

env'

>>> '/'

.join(dirs)

'/usr/bin/env

'>>> seq = ['

1','

2','

3','

4','5'

]>>> '+'

.join(seq)

'1+2+3+4+5

'>>> seq = [1,2,3,4,5]

>>> '+'

.join(seq)

traceback (most recent call last):

file

"", line 1, in'+

'.join(seq)

typeerror: sequence item 0: expected str instance, int found

使用者返回字串的小寫字母

>>> '

hello world!

'.lower()

'hello world!

'

用於替換字串中的字元

>>> '

this is a test

'.replace('

is','

eez'

)

'theez eez a test

'

用於將字串分割成序列

>>> '

1+2+3+4+5

'.split('+'

) ['

1', '

2', '

3', '

4', '5'

]>>> '

/usr/bin/env

'.split('/'

)

['', '

usr', '

bin', '

env']

用於去除字串兩側(不包括內部)空格的字串

>>> '

hello world!

'.strip()

'hello world!

'

python3字串相等 python3 字串

1 拼接 1 多個字串進行連線 連線符,必須左右資料型別一致 例 print hello world 結果 helloworld 例 print 5 world 結果 typeerror unsupported operand type s for int and str 2 多個相同字串連線 字串...

python學習筆記3 字串

1.python當中的字串是乙個序列,可以用str i 返回字串中的各個字元。i為0或正數時,是從前向後的第i 1個字元 i為負數時,是倒數第 i個字元。想遍歷整個字串,無需先計算字串的長度再迴圈,可以很方便的使用for語句 for char in string print char 2.strin...

Python學習筆記(3) 字串

字串本身含有但雙引號 python中對於字串只需要將其用 或者 括起來即可,但是如果字串本身包含 或者 時,應該怎麼解決呢?下面用乙個例子來說明解決方法 例如 mary said i m fine 這樣表示 mary said i m fine 簡要的說就是在每乙個但雙引號的前面加上乙個 即可。字串...