LINUX學習筆記—sed
阿新 • • 發佈:2018-12-22
字串也是序列的一種,所以序列中索引、切片、乘法、成員資格檢查、長度、最小值和最大值都適用於字串,但字串是不可變的,所以元素賦值以及切片賦值都是非法的,不能執行成功;
str1='I love fishc.com' str[:6]->'I love'(注意空格也算一個位置) str1[5]->'e'
字串的建立:
可以使用單引號和雙引號都可以;
var1='Hello world~' var2="Python runood"
字串格式化
字串的格式化主要有兩種方法,一種用format,另一種採用格式化符%
- format( )
format( )方法接受位置引數和關鍵字引數,二者傳遞到一個replacement欄位。這個replacement欄位在字串內由大括號({})表示 ;
'{0} love {a}. {b}' .format("I", a="Fishc", b="com”)->' I love Fishc.com'
- 其中{0}與位置有關,稱為位置引數,而{a}、{b}相當於兩個標籤,這就是關鍵字引數。值得注意的是,位置引數和關鍵字引數一起使用時,位置引數必須在關鍵字引數之前,否則就會報錯。
'{0}:{1:.2f}".format ("圓周率“, 3.14159)->'圓周率:3.14’ - 位置引數{1}後多了冒號。在替換域中,冒號表示格式符號的開始,“.2"的意思是四捨五入到保留兩位小數點,而f的意思是定點數,所以按照格式化符號要求打印出了3.14.
- **格式化操作符: % **
- %s : 格式化字串
- %d:格式化整數
- %c:格式化字元及其ASCII碼
- %f:格式化浮點數字,可指定小數點後的精讀
- %e:用科學計數法格式化浮點數
- %o %x %e…
‘%c’ % 97 ->‘a’ print “My name is %s and weight is %d kg!” % (‘Zara’, 21) ->‘My name is Zara and weight is 21 kg!’
‘%f 用科學計數法表示為:%e’ % (149500000, 149500000) -> ‘149500000.000000用科學計數法表示為:1.495000e+08’`
**格式化操作符的輔助指令 ** - m. n :m是顯示的最小總寬度,n是小數點後的位數
- -:結果左對齊
- +:在正數前面顯示加號(+)
- #:在八進位制數前面顯示’0o’, 在十六進位制數前面顯示‘0ox64或’0X64’
- 0:顯示的數字前面填充’0’代替空格
`’%5.1f’ % 27.658 ->‘27.7’
字串方法(最常用的)
- center (width):在兩邊新增填充字元(預設為空格,可手動更改)讓字串居中。
“The middle by jimmy eat worlds".center(39, “*”)->’ *The middle by jimmy eat worlds*’ - find (sub[, start[, end]])
在字串中查詢子串。如果找到,就返回子串中的第一個字元的索引,否則返回-1.
'with a moo-moo here, and a moo-moo there'.find('moo') ->7 title='Monty Python's flying circus' title.find('Zirquss')->-1
find還可以指定查詢起點和終點,可選擇
subject='$$$ get rich now!!! $$$' subject.find('$$$', 1)->20 subject.find ('!!!', 0, 16) ->-1
- join(sub)
join是一個非常重要的字串方法,其作用與split相反,用於合併序列的元素。
seq=['1', '2', '3', '4', '5'] sep='+' sep.join(seq) ->'1+2+3+4+5'
- split (sep=None, maxsplit=-1)
與join一樣是一個非常重要的字串方法,其作用與join相反,用於將字串拆分為序列。
`‘1+2+3+4+5’.split(’+’) ->[1, 2, 3, 4, 5]
‘/usr/bin/env’ .split(’/’) ->[’ ', ‘usr’, ‘bin’, ‘env’] - lower( ):返回字串的小寫版本
Trondheim Hammer Dance' .lower( )->trondheim hammer dance name= 'Gumby' names=['gumby', 'smith', 'jones'] if name.lower in names: print ('Found it !') -> 'Found it'
其他相關方法還有:islower/istitile/isupper/translate、、、 - replace(old, new[, count]):指定子串都替換為另一個字串,並返回替換後的結果。
'This is a test'. replace('is', 'eez') ->'Theez ezz a test'
- translate (table)
與replace一樣是替換字串,但前者只能單字元替換,而translate可以替換多個
table =str.maketrans('cs' , 'kz', ' ') 'this is an incredible test' .translate (table) ->thizizaninkredibletezt'
- strip([chars]):將字串開頭和末尾的空白(但不包括中間的空白)刪除,並返回刪除後的結果。
`’ internal whitespace is kept ‘.strip( ) ->‘internal whitespace is kept’
‘###SPAM#for #everyone!!!###’ .strip (’ #!’) ->‘SPAM # for # everyone’ - title () :返回標題化(所有的單詞都是以大寫開始,其餘字母為小寫)的字串
- 判斷字串是否滿足特定條件
有一些字串方法以is打頭,如isspace/isdigit/isupper, 它們判斷字串是否具有特定的性質(如包含字元全為空白、數字、大寫)。如果字串滿足特定條件,這些方法就返回True,否則False.
isalnum/isalpha/isdecimal/isdigit/islower/isnumeric(是否包含數字字元)/isspace/istitle(是否至少包含一個區分大小寫的字元)/isupper