python學習_4——字符串str

字符串 str

1、作用與構造函數:

作用
用來記錄文字(文本)信息
字符串構造(創建)函數:
str(obj) 將對象轉換爲字符串
示例:

'123' + 456  # 出錯
'123' + str(456)  # 結果 '123456'

2、表示方法:

在非註釋中凡是用引號括起來的部分都是字符串

'   單引號
"   雙引號
''' 三單引號
""" 三雙引號

空字符串的字面值表達方法

''  ""  ''''''   """"""

非空字符串的字面值的表達方法

  'hello'  "hello"  '''hello'''  """hello"""

單引號和雙引號的區別
單引號內的雙引號不算結束符
雙引號內的單引號不算結束符
示例

“I'm a student"
'the word "python"'

三引號字符串的作用:
三引號字符串可以包含單引號和雙引號
三引號字符串中的換行會自動轉換爲換行符’\n’
示例

print("""這裏時可以換行輸入的
就像這樣""")
#這裏時可以換行輸入的
#就像這樣

隱式字符串字面值拼接
示例:

 s = "I'm a teacher."   'my name is "Tarena"'
 print(s)  # I'm a teacher.my name is "Tarena

用轉義序列代表特殊字符
字符串字面值中用字符反斜槓 \ 後跟一些字符代表特殊的一個字符,如:

轉字格式     		含義
  \'  			 代表一個單引號
  \"   			 代表一個雙引號
  \\   			 代表一個反斜槓
  \n   			 換行
  \r             返回光標至行首
  \f  			 換頁
  \t    		 水平製表符
  \v   			 垂直製表符
  \b      		 倒退
  \0             空字符(字符值爲0)
  \0oo           oo爲兩位八進制表示的字符
  \xXX           XX爲兩位十六進制表示的字符
  \uXXXX  		 四位十六進制表示的Unicode 16字符
  \UXXXXXXXX  	 八位十六進制表示的Unicode 32字符

ASCII編碼表
在linux終端輸入

   $ man ascii<回車>

常用的ASCII編碼

 字符    十進制    十六進制
  '0'      48       0x30
  'A'      65       0x41
  'a'      97       0x61

3、序列的概念

字符串是序列(有序排列)
所有的序列都能用len(x) 函數求其長度

len(x) 函數
返回字符串中字符的個數

示例:
用交互模式驗證如下字符串有幾個字符

1. len('1234abcd')   # 8個
2. len('5\'4"')      # 4個
3. len('\"A\x34\056')# 4個 
4. len('\a\bc\td\n') # 6個 

4、raw 字符串(原始字符串)

格式:

r'字符串內容'
r"字符串內容"
r'''字符串內容'''
r"""字符串內容"""

作用:
讓轉義符號反斜槓 \ 無效
示例:

>>> a = 'C:\newfile\test.py'
>>> print(a)
C:
ewfile	est.py
>>> print(len(a))
16
>>> a = r'C:\newfile\test.py'
>>> print(a)
C:\newfile\test.py
>>> print(len(a))
18

5、字符串的運算:

1)算術運算符:

+   +=    *    *= 

“+”加號運算符用於拼接字符串

 x = "ABCD"
 y = "123"
 z = x + y
 print(z)  # ABCD123

“+=” 用於原字符串和右側字符串拼接,再用變量綁定新的字符串

x = 'ABC'
y = '123'
x += y
print(x)  # ABC123

“ * ”運算符生成重複的字符串

x = "ABC" * 3
print(x)  # ABCABCABC
#注:  字符串只能和整數相乘

“ *= ” 生成重複的字符串,再用原變量綁定

 x = '123'
 x *= 2
 print(x)  # 123123

2)字符串的比較運算
運算符:

< <= > >= == != 

比較規則:
依次按編碼值進行兩兩字符比較,一但不同,則比較結束並返回比較結果,當編碼值和長度完全相同時,兩個字符串相同
示例:

'A' < 'B'       # True
'ABC' > 'ABB'   # True
'ADC' < 'ABC'   # False
'ABC' >= '123'  # True
'AB'  <  'ABC'  # True
'abc' == 'ABC'  # False

3)in, not in 運算符
作用:
in 用於序列,字典,集合中,用於判斷某個值是否存在於容器中,如果存在則返回True,則返回False
not in 與 in 運算符的返回結果相反
格式:

對象 in 序列

示例:

x = 'welcome to guangzhou!'
'to' in x     # True
'hello' in x  # False
'e t' in x    # True
'abc' not in x  # True

6、字符串的基本操作

1)索引 index
python字符串是不可以改變的字符序列

索引取值語法:

字符串[整數表達式]

說明:
python的序列都可以用索引(index) 來訪問序列中的對象
python序列的正向索引是從0開始的,第二個索引爲1,最後一個索引爲len(s)-1
python序列的反向索引是從-1開始的,-1代表最後一個,
-2代表倒數第二個,以此類推。第一個是-len(s)
示例:

  s = "ABCDE"
  print(s[1])  # B
  print(s[4])  # E
  print(s[-1]) # E
  print(s[-5]) # A
  print(s[100])  # IndexError 越界

2)切片 slice
作用:
從字符串序列中取出相應的元素重新組成一個新的字符串
語法:

字符串[(開始索引b):(結束索引e)(:(步長s))]
注:小括號() 括起來的部分代表可省略

說明:
開始索引是切片開始切下的位置,0代表第一個元素,1代表第二個元素,-1代表最後一個…
結束索引是切片的終止索引(但不包含終止點)
步長是切片每次獲取完當前元素後移動的方向和偏移量
1.沒有步長,相當於步長爲1(默認爲1)
2. 當步長爲正整數時,取正向切片:
此時開始索引默認爲0,結束索引默認是最後一個元素的下一個位置
3. 當步長爲負整數時取反向切片:
反向切片時,默認的起始位置爲最後一個元素,終止位置是第一個元素的前一個位置

示例:

 s = "ABCDE"
 a = s[1:4]  # a---> "BCD"
 a = s[:4]   # 'ABCD'
 a = s[1:]   # 'BCDE'  # 等同於s[1:5]
 a = s[:]    # 'ABCDE'  # 等同於s[0:5]
 a = s[1:1]  # '' 空字符串
 a = s[4:2]  # '' 空
 a = s[0:5:2] # 'ACE'
 a = s[4:0:-2]  # 'EC'
 a = s[4::-2]  # 'ECA'
 a = s[::-1]   # 'EDCBA'

3)python3中能用於字符串的內置函數:
1.常用獲取字符串信息函數
len(x) 返回字符串長度
max(x) 返回字符串編碼值最大的字符
min(x) 返回字符串中編碼值最小的字符

2.字符串的編碼轉換函數:
ord© 返回一個字符c的unicode編碼值
chr(i) 返回i這個值所對應的字符

示例:

x = ord('A')  # x = 65
c = chr(66)   # c = 'B'

3.整數轉換爲字符串的函數:
bin(i) 將整數轉換爲二進制字符串
oct(i) 將整數轉換爲八進制字符串
hex(i) 將整數轉換爲十六進制字符串

4)python3中常用的字符串方法(method)
方法的調用語法:

對象.方法名(方法傳參)

示例:

'abc'.isalpha()  # 返回True
'123'.isalpha()  # 返回False
123.isalpha()   # 出錯

常用的字符串的方法

方法 說明
S.isdigit() 判斷字符串中的字符是否全爲數字
S.isalpha() 判斷字符串是否全爲英文字母
S.islower() 判斷字符串所有字符是否全爲小寫英文字母
S.isupper() 判斷字符串所有字符是否全爲大寫英文字母
S.isspace() 判斷字符串是否全爲空白字符
S.center(width[,fill]) 將原字符串居中,左右默認填充空格
S.count(sub[, start[,end]]) 獲取一個字符串中子串的個數
S.find(sub[, start[,end]]) 獲取字符串中子串sub的索引,失敗返回-1
S.strip([chars]) 返回去掉左右char字符的字符串(默認char爲空白字符)
S.lstrip([chars]) 返回去掉左側char字符的字符串(默認char爲空白字符)
S.rstrip([chars]) 返回去掉右側char字符的字符串(默認char爲空白字符)
S.upper() 生成將英文轉換爲大寫的字符串
S.lower() 生成將英文轉換爲小寫的字符串
S.replace(old, new[, count]) 將原字符串的old用new代替,生成一個新的字符串
S.startswith(prefix[, start[, end]]) 返回S是否是以prefix開頭,如果以prefix開頭返回True,否則返回False,
S.endswith(suffix[, start[, end]]) 返回S是否是以suffix結尾,如果以suffix結尾返回True,否則返回False

以下是不常用的

方法 說明
S.title() 生成每個英文單詞的首字母大寫字符串
S.isnumeric() 判斷字符串是否全爲數字字符

字符串的文本解析方法 split 和 join:
S.split(sep = None) 將字符串使用spe作爲分隔符分割S字符串,返回分割後的字符串列表;當不給定參數時,默認用空格作爲分隔符
S.join(iterable) 用可迭代對象的字符串生成一箇中間用S進行分隔的字符串

示例:

S = 'beijing is capital'
L = S.split() # L = ['beijing','is','capital']

7、字符串格式化表達式

作用:
生成一定格式的字符串
運算符:
%
語法格式:

 格式化字符串 % 參數值
 格式化字符串 % (參數值1, 參數值2, 參數值3, ...)

說明:
格式化字符串中以%開頭的字符爲佔位符,佔位符的位置將用參數值替換
示例:

fmt = "name: %s, age: %d"
s2 = fmt % ("Guisam", 21)	#s2 ='name: Guisam, age: 21

格式化字符串中的佔位符類型碼

佔位符和類型碼 含義
%s 字符串,使用str(x) 函數轉換
%r 字符串,使用repr(x) 函數轉換
%c 整數轉爲單個字符
%d 十進制整數
%o 八進制整數
%x 十六進制整數(字符a-f小寫)
%X 十六進制整數(字符A-F大寫)
%e 指數形浮點數(e小寫) 如: 2.9e8
%E 指數形浮點數(E大寫) 如: 2.9E8
%f,%F 浮點十進制數
%g,%G 十進制形式浮點或指數浮點自動轉換
%% 等同於一個%字符

佔位符和類型碼之間的格式語法

  % [ - + 0 寬度.精度 ] 類型碼
    -    左對齊(默認是右對齊)
    +    顯示正號
    0    左側空白位置補零
    寬度  整個數據輸入的寬度
    精度  保留小數點後多少位(默認爲6位)

示例:

"%10d" % 123    # '       123'
"%-10d" % 123   # '123       '
"%10s" % "abc"  # '       abc'
'%-5s' % 'abc'  # 'abc  '
'%05d' % 123    # '00123'
'%+05d' % 123   # '+0123'
'%7.3f' % 3.1415926535  # '  3.142'

下一篇:python學習_5——列表list

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章