Python_基礎_字符串

Python基礎類型

  1. Python Character string 字符串
    字符串在python中 可以使用引號( ” 或 ’ )來創建

>>> var1 = 'hello python'
>>> print(var1[0])
h
>>> print(var1[0:4])
hell
>>> print(var1[-5:])
ython
>>> var2 = var1[0:6] + 'world'
>>> print(var2)
hello world

2.. Python轉義

\  :在行尾時,爲續行符

\  :反斜槓轉義,輸出’\’

\’  :單引號轉義

\”  :雙引號轉義

\b  :退格(backspace)

\n  :換行

\v  :縱向製表符

\t  :橫向製表符

\r  :回車

\f  :換頁

3.Python字符串運算符
(+)拼接,(*)重複,([])索引,([:])切片,(in)成員判斷,(not in)非成員判斷,(r/R)元素輸出字符串

>>> var1 = 'hello'
>>> var2 = 'python'
>>> print(var1+var2)
hellopython
>>> print(var1*6)
hellohellohellohellohellohello
>>> print(var1[3])
l
>>> print(var1[0])
h
>>> print(var1[3:])
lo
>>> 'e' in var1
True
>>> 'e' in var2
False
>>> 
>>> print('he\tllo \n')
he  llo 

>>> print(r'he\tllo \n')
he\tllo \n
>>> print('aaaa\nbbbbb')
aaaa
bbbbb
>>> print('aaaa\nbbbbb',end='')
aaaa
bbbbb>>> 
>>> 

4.格式化字符串
當遇到複雜的表達式時,可以講一個值插入到一個有字符串格式符 %s 的字符串中
python字符串格式化符號:

字符串格式符 釋義
%c 格式化 字符及其ASCII碼
%s 格式化字符串
%d 格式化整數
%u 格式化無符號整型
%o 格式化無符號八進制數
%x 格式化無符號十六進制數
%X 格式化無符號十六進制數(大寫)
%f 格式化格式化浮點獅子,可指定小數點後精度
%e 用科學計數法格式化浮點數
%E 格式化,用科學計數法格式化浮點數,同%e
%g %f和%e的簡寫
%G %f 和 %E 的簡寫
%p 用十六進制數格式化變量的地址

格式化操作符輔助指令:

* 定義寬度或者小數點精度
- 用做左對齊
+ 在正數前面顯示加號( + )
# 在八進制數前面顯示零(‘0’),在十六進制前面顯示’0x’或者’0X’(取決於用的是’x’還是’X’)
0 顯示的數字前面填充’0’而不是默認的空格
% ‘%%’輸出一個單一的’%’ (var) 映射變量(字典參數)
m.n. m是顯示的最小總寬度,n 是小數點後的位數(如果可用的話)

>>> print('ascii:%c'%'s') # ASCII格式化輸出字符
ascii:s
>>> print('ascii:%s'%'s') # 格式化輸出字符
ascii:s
>>> print('ascii:%s'%'string') 
ascii:string
>>> print('num:%d'% 888) # 格式化輸出整數
num:888
>>> print('num:%f'% 888) # 格式化輸出浮點數 默然6位小數
num:888.000000
>>> print('num:%f3'% 888) 
num:888.0000003
>>> print('num:%.3f'% 888) # 限定小數點後N爲格式化輸出浮點
num:888.000
>>> print('num:%e'% 888) #格式化輸出科學計數
num:8.880000e+02
>>> print('num:%E'% 888)
num:8.880000E+02
>>> print('num:%20f'%888.089) #定義20寬度輸出
num:          888.089000
>>> print('num:%-20f'%888.089) # 左對齊
num:888.089000          
>>> print('num:%+-20f'%888.089) # 在正式前顯示加號
num:+888.089000         
>>> print('num:%020f'%888.089) # 以0填充默認空格
num:0000000000888.089000
>>> print('num:%%%20f'%888.089) # 在數字錢輸出%號
num:%          888.089000
>>> print('num:%%%-20f'%888.089) # 左對齊輸出%號
num:%888.089000          
>>> print('num:%-20.3f'%888.089) # 加寬度+左對齊+限定小數點位數
num:888.089             
>>> 

5.Python字符串的相關方法
常規方法:

方法 釋義
capitalize() 將字符串首字母置爲大寫
casefold() 將字符串字母全部置爲大寫
center(num) 將字符串居中,並用空格將字符串長度填充,如指定長度(num)小於實際長度則沒有效果
count(sub,num1,num2) 返回sub在字符串中的次數,num1,num2爲切片限制
endswith(sub,num1,num2) 判斷字符串是否以sub結尾, num1,num2爲切片限制
find(str) 判斷字符串中是否有str存在;如在則返回索引,否則返回-1,可指定起始值
isalnum() 如果字符串至少有一個字符,並且所有字符都是字母或數字則返回True,否則False
isalpha() 如果字符串至少有一個字符,並且所有字符都是字母則返回True,否則False
isdigit() 如果字符串只包含數字則返回True,否則返回False
isdecimal() 如果字符串只包含十進制數字則返回True,否則返回False
islower() 如果字符中至少包含一個能區分大小寫的字符,並且這些字符都是小寫則返回True,否則返回Flase
isupper() 如果字符中至少包含一個能區分大小寫的字符,並且這些字符都是大寫則返回True,否則返回Flase
isnumeric() 如果字符串只包含數字字符,則返回True,否則返回False
isspace() 判斷字符串中至少有一個字符且所有都是空格,否則返回false
str1.join(str2) 返回一個用指定字符串分隔的字,或者是將指定字符str1加入到另一個字符str2中
str1.startswith(str2) 判斷字符串str1是否以某個字符str2開頭,可以是多字符
swapcase() 轉換大小寫
title() 標題格式,首字母大寫,其它字符小寫
upper() 將全部字符串轉爲大寫
>>> s = 'i mi to'     #將字符串的第一個字符改爲大寫
>>> s.capitalize()
'I mi to'

>>> s = 'I MI TO'  #將字符串所有字符改爲小寫
>>> s.casefold()
'i mi to'

>>> s.center(15)  #將字符串劇中,並用空格將字符串填充長度,如指定長度小於實際長度則沒有效果
'    I MI TO    '

>>> s = 'abcabcabcabc' #返回sub在字符串裏出現的次數,start,end爲可選參數,決定範圍
>>> s.count('a',0,12)
4
>>> s.encode(encoding='utf-8',errors='strict') #以encoding指定的編碼格式對字符串進行編碼
b'abcabcabcabc'
>>> s.endswith('abc',1,12)  #檢查字符串是否以sub結尾,是返回True,否返回False,start,end爲可選參數,決定範圍
True

>>> s = 'a\tb\tc'
>>> s.expandtabs(4)   #把字符串的tab字符(\t)轉化爲空格,如不指定tabsize,默認爲8個空格
'a   b   c'

>>> s.find('b')  #檢測字符串是否在字符串中,如在則返回索引,否則返回-1,可指定起始值。
2

>>> s='hello python'
>>> s.index('hello')   # 類似find(),不同在於如果sub不在字符串中,返回異常
0 

>>> s.isalnum()    #有空格返回false
False
>>> s='hellopython'
>>> s.isalnum()   #如果字符串至少有一個字符,並且所有字符都是字母或數字則返回True,否則False
True
>>> s.isalpha()  #如果字符串至少有一個字符,並且所有字符都是字母則返回True,否則False
True

>>> s = '123'
>>> s.isdigit()  #如果字符串只包含數字則返回True,否則返回False
True

>>> s = '123'
>>> s.isdecimal()  #如果字符串只包含十進制數字則返回True,否則返回False
True
>>> s= 'ox123'
>>> s.isdecimal()
False
>>> s = '0.33'
>>> s.isdecimal()
False

>>> s = 'abc'
>>> s.islower()  #如果字符中至少包含一個能區分大小寫的字符,並且這些字符都是小寫則返回True,否則返回Flase
True
>>> s = 'Abc'
>>> s.islower()
False

>>> s = 'ABC'
>>> s.isupper()  #果字符中至少包含一個能區分大小寫的字符,並且這些字符都是大寫則返回True,否則返回Flase
True
>>> s = 'ABc'
>>> s.isupper()
False
>>> 

>>> s = '123'
>>> s.isnumeric()  #如果字符串只包含數字字符,則返回True,否則返回False
True
>>> s = '123a'
>>> s.isnumeric()
False

>>> 'def'.isidentifier()  #判斷字符串是否包含該語言的保留字
True

>>> 'aaa'.isprintable() #判斷是否可以打印
True

>>> ''.isspace()
False
>>> ' '.isspace()  #判斷字符串中至少有一個字符且所有都是空格,否則返回false
True
>>> ' a'.isspace()
False

>>> 'Abc'.istitle()  #判斷是否是標題 格式,可以理解爲首字母大寫。
True
>>> 'aBC'.istitle()
False

>>> s = '123'
>>> '_'.join(s)  #返回一個用指定字符串分隔的字,或者是將指定字符加入到另一個字符中。
'1_2_3'
>>> s.join('abc')
'a123b123c'

>>> s = 'ABC'
>>> s.lower()  #返回的是指定字符串的拷貝,並轉化成小寫
'abc'

>>> s.ljust(10,'+')  #可以指定寬度,以及填充字符串,返回的是按寬度,填充字符串格式化後的左對齊的字符串。
'ABC+++++++'

>>> 'aaabccc'.partition('b')  #在字符串中查找指定的字符,如找到則返回字符前部分,字符本身和後部分,如沒找到則返回字符串和兩個空字符串。
('aaa', 'b', 'ccc')
>>> 'aaabccc'.partition('e')
('aaabccc', '', '')

>>> 'aaabccc'.rpartition('b')  #與partition一樣,但是是從右邊開始
('aaa', 'b', 'ccc')
>>> 'aaabccc'.rpartition('c')
('aaabcc', 'c', '')


>>> 'aaaaabbcc'.replace('a','A')  #用指定字符串替換指定字符串,如果不指定替換次數,則替換所有
'AAAAAbbcc'
>>> 'aaaaabbcc'.replace('a','A',2)
'AAaaabbcc'

>>> 'aabbcc'.rfind('a')  #返回指定子串的最高索引,如果沒找到則返回-1,可以指定要開始替換的起始,結束位置。
1
>>> 'aabbcc'.rfind('e')
-1
>>> 'aabbcc'.rindex('a')  #與上面的rfind一樣,只是如果沒找到不是返回-1,而是觸發錯誤
1
>>> 'aabbcc'.rindex('e')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: substring not found

>>> 'aa'.rjust(10,'+')  #與ljust()相對應,右對齊
'++++++++aa'
>>> 'aa'.ljust(10,'+')
'aa++++++++'

>>> 'aabccbddbee'.split('b')  ##按指定字符串對目標字符串進行切割,可以指定切割次數
['aa', 'cc', 'dd', 'ee']
>>> 'aabccbddbee'.split('b',2)
['aa', 'cc', 'ddbee']

>>> 'aabccbddbee'.rsplit('b',2) #與split作用相同,但是從右側開始
['aabcc', 'dd', 'ee']

>>> '  aabb  '.strip()  #移除字符串兩側的指定字符串,默認移除空格,需要注意的是可以指定多個字符
'aabb'
>>> '  aabb'.strip('b')
'  aa'
>>> '  aabb'.strip('ab')
'  '
>>> 'beaacebb'.rstrip('eb')  #與strip一樣,從右側刪除指定字符,可以爲多個
'beaac'

>>> 'aa\nbb\ncc\ndd'.splitlines()  #按換行符切割顯示,如沒指定keepends=True則將換行符移除。
['aa', 'bb', 'cc', 'dd']
>>> 'aa\nbb\ncc\ndd'.splitlines(keepends=True)
['aa\n', 'bb\n', 'cc\n', 'dd']

>>> 'aabbc'.startswith('a') #判斷字符串是否以某個字符開頭,可以是多字符
True
>>> 'aabbc'.startswith('b')
False
>>> 'aabbc'.startswith('aab')
True

>>> 'aaBBcc'.swapcase()  #轉換大小寫
'AAbbCC'

>>> 'wend is ok'.title()   #標題格式,首字母大寫,其它字符小寫
'Wend Is Ok'

>>> 'wend is ok'.upper()  #將字符全部轉換成大寫
'WEND IS OK'

>>> 'wend is ok'.zfill(20)  #這裏的z指zero,用0將字符填充到指定長度
'0000000000wend is ok'

轉自:http://www.cnblogs.com/zhangxinqi/p/7589391.html

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