1. 程式人生 > >python字符串操作

python字符串操作

普通 nbsp 最大值和最小值 log 分割字符串 一次 tran itl 概述

概述

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

  特性:不可修改

字符串格式化

  字符串格式化使用字符串操作符即百分號%來實現;在%左側放置一個字符串(格式化字符串),而最右側則放置被格式化的值。可以使用一個值,如一個字符串或者數字,也可以是多個值的元組或者字典(如果希望格式化多個值的話);

  格式化字符串的%s部分稱為轉換說明符,它們標記了需要插入轉換位置;

  如果在格式化字符串裏面包括百分號,那必須使用%%,這樣Python就不會將百分號誤認為是轉換說明符;

>>> print("Hello, %s. %s enough for ya?
" %(world, Hot)) Hello, world. Hot enough for ya?

1.格式化操作符的右操作數可以是任意類型,如果是元組或者映射類型(如字典),那麽字符串格式化將有所不同;
2.如果右操作數是元組的話,則其中的每一個元素都會被單獨格式化,每個值都需要一個對應的轉換說明符;

基本轉換說明符:

  • %字符:標記轉換說明符的開始;
  • 轉換標誌(可選):- 表示左對齊;+ 表示在轉換值之前要加上正否號;” “(空白字符)表示正數之前保留空格;0 表示轉換值若位數不夠則用0填充;
  • 最小字字段寬度(可選):轉換後的字符串至少應該具有該值指定的寬度。如果是 *,則寬度會從元組中讀出;
  • 點(.)後跟精度值(可選):如果轉換的是實數,精度值就表示出現在小數點後的位數。如果轉換的是字符串,那麽該數字就表示最大字段寬度。如果是*,那麽精度將會從元組中讀出;
  • 轉換類型:
字符串格式化轉換類型
轉換類型 含義
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對象)

  • 簡單轉換

簡單轉換只需寫轉換類型

 1 >>> Price os eggs: $%d %42
 2 Price os eggs: $42
 3 >>> Price os eggs: $%x %42
 4 Price os eggs: $2a
 5 >>> Pi: %f % pi
 6 Pi: 3.141593
 7 >>> Very inexact estimate os pi: %i % pi
 8 Very inexact estimate os pi: 3
 9 >>> Using str: %s % 42L
10 Using str: 42
11 >>> Using str: %r % 42L
12 Using str: 42L
  • 字段的寬度和精度

  轉換說明符可以包括字段寬度和精度。字段寬度是轉換後的值所保留的最小字符個數,精度(對於數字轉換來說)則是結果中應該包含的小數位數,或者(對於字符串轉換來說)是轉換後的值所能包含的最大字符個數。
這兩個參數都是整數(首先是字段寬度,讓後是精度),通過點號(.)分隔。雖然兩個都是兩個可選的參數,但如果只給出精度,就必須包含點號。

1 >>> %10f % pi    #字段寬 10
2   3.141593
3 >>> %10.2f % pi    #字段寬 10,精度 2
4       3.14
5 >>> %.2f % pi    #精度 2
6 3.14
7 >>> %.5s % hello,world
8 hello 

  可以使用*(星號)作為字段寬度或者精度(或者兩者都使用*),此時數值會從元組參數中讀出

1 >>> print(%.*s % (5, hello world))
2 hello
  • 符號、對齊和用0填充

  在字段寬度和精度值之前還可以放置一個“標記”,該標記可以是零、加號、減號或空格。

零表示數字將會用0進行填充

1 >>> print(%010.2f % pi)
2 0000003.14

  在010中開頭的那個0並不意味著字段寬度說明符為八進制,它是個普通的Python數值當使用010作為字段寬度說明符的時候,表示字段寬度為10,並且用0進行填充空位,而不是說字段寬度為8;

減號(-)用來左對齊數值

1 >>> print(%-10.2f % pi)
2 3.14

空白(” “)意味著在正數前加上空格(這在對齊正負數時會很有用)

1 >>> print(% 5d % 10 + \n + % 5d % -10)
2    10
3   -10

加號(+),他表示不管是正數還是負數都標記出符號(同樣是在對齊時使用)

1 >>> print(%+5d % 10 + \n + %+5d % -10)
2   +10
3   -10

python2.7之後支持使用format()方法對字符串進行格式化

1 >>> print("Hello, {}. {} enough for ya?".format(world,Hot))
2 Hello, world. Hot enough for ya?

字符串方法

name = "my name is {name},i am is {ago}"

print(name.capitalize())    #返回首寫字母大寫的字符串副本
print(name.count(m)) #返回指定字符串在整個字符串中出現的次數
print(name.center(50,+)) #根據長度對字符串兩端填充
print(name.endswith(mzc)) #判斷字符串的結尾,可以用作判斷郵箱地址
print(name.expandtabs(tabsize = 30)) #字符串中添加一個tab符,此方法用來指定tab符要空多少個字符
print(name.find(name))  #查找指定字符第一次出現的位置,並返回指定字符的索引
print(alex lil.rfind(l)) #查找指定字符最後一次出現的位置,並返回指定字符的索引
print(name.format(name=mzc))  #格式化字符串
print(name.format_map({name:mzc, ago:18})) #和format方法一樣
print(abc123.isalnum())   #判斷是否為阿拉伯數字或字符
print(abcA.isalpha()) #判斷字符串是否為純英文字母
print(8998.isdecimal()) #判斷字符串是否為十進制
print(My Name Is Mzc.istitle()) #判斷字符串各個單詞首寫字母是否為大寫
print(na me.isidentifier()) #判斷字符串是否為合法標識符
print(123.isdigit()) #判斷一個字符串是否一個整數
print(My Name Is  .isprintable()) #tty file ,drive file
print(My Name Is  .isupper()) #判斷字符串是否為大寫
print(My Name Is  .islower()) #判斷字符串是否為小寫
print(+.join( [1,2,3]) )    #使用單個元素將多個元素連接成字符串
print( name.ljust(50,*)  ) #右填充
print( name.rjust(50,-)  ) #左填充
print( \nmzc.lstrip()  )   #去除左邊空過或者換行
print( mzc\n.rstrip()  )   #去除右邊空過或者換行
print(     mzc\n.strip() )   #去除左右兩邊空過或者換行
print( Mzc.lower()  ) #將字母轉換成小寫
print( Mzc.upper()  ) #將字母轉換成大寫
print("m z c".title())  #將各單詞的首寫字母轉換成大寫
--------------------------------------------------------------------------------------------------------------------
#字符串替換
>>> p = str.maketrans("abcdefli",[email protected])    #生成一個匹配關系,兩個參數中元素個數要相同
>>> print("lilianjie".translate(p) )
[email protected]
print(alen li.replace(l,L,2)) #字符替換,可以指定替換的個數

print(1+2+3+4.split(+)) #根據指定字符分割字符串
print(a\nb\nc\nd\ne.splitlines()) #根據換行符或空格分割字符串
print(Spdir.swapcase()) #反轉字符串字母的大小寫
print(lex li.zfill(50)) #對字符串進行向左以數字0進行填充

python字符串操作