1. 程式人生 > >python 字符串常用方法

python 字符串常用方法

空字符 strip() 組成 cas 常用方法 表示 orm msg 報錯

一、 基礎數據類型 總覽
int:用於計算,計數,運算等。 1,2,3,100......
str:‘這些內容[]‘ 用戶少量數據的存儲,便於操作。
bool: True, False,兩種狀態,機器反饋給用戶的對,錯。
list: [1,‘hello‘, True,[],(),{} ....] 大量的數據,各種數據類型,操作方便。列表
tuple: (1,‘hello‘, True,[],(),{} ....),只讀列表。元組
dict: 字典。大量的關聯型數據。
{‘name‘:‘boy‘,‘name_list‘:[司徒,慈禧,李蓮英...],‘帥哥‘:{‘name‘:‘帥哥‘,‘sex‘:男}}


set:集合。{} 關系測試。

二、 int
i = 4
print(i.bit_length()) # 查詢十進制轉化成二進制占用的最小位數 *

‘‘‘
十進制 二進制
1 0000 0001
2 0000 0010
3 0000 0011
4 0000 0100
....
‘‘‘

三、 bool
數據類型之間的轉化。 *****
#bool ---> int True ---> 1 False ----> 0
a = int(True)
b = int(False)


print(a,b)

#int ---> bool 非零即True,零即為False
c = bool(1)
d = bool(-1)
e = bool(100)
f = bool(0)
print(c,d,e,f)

#str ---> bool 空字符串的bool為False ,非空即True(空格也是字符串,不是空)
a = bool(‘as‘)
b = bool(‘‘)
print(a,b)

例子:
name = input(">>>")
if name:
  print(‘666‘)
else:
  print(‘無內容‘)


#bool ---> str
a = str(True)
b = str(False)
print(a,b,type(a))

#int ---> str
a = str(123)
print(a,type(a))

#str ---> int 字符串都是數字組成才能轉換成int
a = int(‘1234‘)
print(a,type(a))

四、字符串常用方法
對字符串的下面這兩部分操作:形成的都是一個新的字符串,與原來的字符串沒有關系。
第一部分:索引切片步長。
按照索引取值,取出來的都是一個字符,形成的字符串。
索引:索引即下標,就是字符串組成的元素從第一個開始,初始索引為0以此類推。

技術分享圖片
a = ABCDEFGHIJK
print(a[0])
print(a[1])
print(a[3])
print(a[7])
View Code

切片:按切片取值,顧頭不顧尾(就是包含頭,不包含尾)

技術分享圖片
a = ABCDEFGHIJK
print(a[2:5])
print(a[0:4])
print(a[0:-1]) #-1就是最後一個
print(a[0:])    #默認到最後
View Code

按照切片+步長

技術分享圖片
a = ABCDEFGHIJK
print(a[0:5:2])
print(a[1:6:3])
View Code

如果想倒敘取值,加一個反向步長(負號)。

技術分享圖片
a = ABCDEFGHIJK
print(a[-1:-5:-1])
print(a[-1:-6:-2])
View Code

第二部分:字符串的常用方法。
name = ‘hello woRLd‘
print(name.upper()) #upper:全大寫 *****
print(name.lower()) #lower:全小寫 *****
應用舉例:

技術分享圖片
username = input(請輸入用戶名:)
code = ADfer.upper()
your_code = input(請輸入驗證碼:).upper()
print(code, your_code)
# if username == ‘xiaoming‘ and (your_code == ‘ADFER‘ or ..or....)
if username == xiaoming and your_code == code:
    print(賬號密碼及驗證碼輸入正確)
技術分享圖片

#startswith:判斷字符串是否以什麽開頭 *****
#endswith:判斷字符串是否以什麽結尾 *****

技術分享圖片
name = hello woRLd
print(name.startswith(h))
print(name.startswith(he))
print(name.startswith(h,3))
print(name.startswith(e,1,3))
print(name.startswith(el, 1, 5))
print(name.startswith(hello woRLd))
print(name.endswith(d))
技術分享圖片

name = ‘hello woRLd‘
print(name.capitalize()) #首字母大寫 其他字母變小寫 ***
print(name.center(20,‘*‘)) #字符串居中,前後填充自定義的字符 **
print(name.swapcase()) #swapcase 大小寫翻轉 **


s1 = ‘hello world*handsOMe6boy‘
print(s1.title()) #title 非字母隔開的每個部分的首字母大寫 其他字母變小寫**


name = ‘hello woRLd‘
find 通過元素找索引,找到第一個就返回,沒有此元素則返回-1 *****
index 通過元素找索引,找到第一個就返回,沒有此元素則報錯 *****

技術分享圖片
print(name.find(e))
print(name.find(l))
print(name.find(lo))
print(name.find(q))
print(name.find(L,1,-1))
print(name.index(h))
技術分享圖片

#strip 默認去除字符串前後的空格,換行符,制表符 *****

技術分享圖片
name = \t    hello world\n
name1 = *xiaoming**
name2 = werxiaogouwqwe
print(name.strip())
print(name1.strip(*))
print(name2.strip(erw))  # 可以指定字符 從左到右依次除去指定的字符
                           #碰到第一個不是指定的字符時停止,同時從右到左
                           #依次除去制定的字符,同樣是碰到第一個不是指定的
                           #字符即停止
                           
print(name2.lstrip(erw)) #只從左到右依次除去指定字符
print(name2.rstrip(erw)) #只從右到左依次除去指定字符
技術分享圖片


舉例:

username = input(請輸入用戶名:).strip()   # ‘xiaoming ‘
if username == xiaoming:
    print(登陸成功...)


#split:將字符串分割成列表(str---> list) *****

技術分享圖片
s1 = hello handsome boy
l1 = s1.split() # 默認按照空格分隔
print(l1)

s2 = hello,handsome,boy
print(s2.split(,))

s3 = ,hello,handsome,boy
print(s3.split(,))

s4 =  hello handsome boy
print(s4.split( ))

s5 = helloqhandqsomeqboy

print(s5.split(q))
print(s5.split(q,1)) # 可設置分割次數
print(s5.rsplit(q,2)) #從右到左分割2次
技術分享圖片

# join 自定制連接符,將可叠代對象中的元素連接起來 *****

技術分享圖片
str1 = boy
s2 = *.join(str1)
s3 = _.join(str1)
print(s2)

print(s3)
技術分享圖片


# replace:代替 *****

msg = hello
msg1 = msg.replace(l,SB)
msg2 = msg.replace(l,SB,1) #可設置替換次數
print(msg1)
print(msg2)


格式化輸出:format *****

技術分享圖片
# 三種方式:
# 第一種:按順序接收參數
s1 = 我叫{},今年{},性別{}.format(帥哥,18,)
print(s1)   # 我叫帥哥,今年18,性別男


# 第二種:按索引接收參數
s2 = 我叫{0},今年{1},性別{2},我依然叫{0}.format(帥哥, 18, )
print(s2)  # 我叫帥哥,今年18,性別男,我依然叫帥哥


# 第三種:按關鍵字接收參數
s3 = 我叫{name},今年{age},性別{sex}.format(age=18, name=帥哥, sex=)
print(s3)  # 我叫帥哥,今年18,性別男
技術分享圖片


is 系列 *****

name = handsomeboy123
name1 = a123
print(name.isalnum())  # 判斷是否由數字或字母組成
print(name1.isdigit()) # 判斷全部是由整數組成
print(name1.isalpha()) # 判斷是否全部由字母組成

註意(一個坑):字符串中的英文的判斷isalpha(),對於unicode編碼的string,
string.isalpha會根據字符串中的字符是否屬於Unicode編碼的LETTER區域來判斷是否都由字母組成。
所以得出的結果為True,不一定表示只有26個英文字母。例如:

技術分享圖片
s = "abc中國"
print(s.isalpha())  # True

# 若想判斷字符串是否為英文字母:可以加上屬性encode(‘UTF-8‘)
info = abcd
print(info.encode(UTF-8).isalpha())  # True

info = abcd中國
print(info.encode(UTF-8).isalpha())  # False
技術分享圖片


擴展:判斷字符串是否為中文
Unicdoe的4E00~9FFF區域表示中文,所以如果一個字符的編碼在這個區間內,就說明它是中文。

技術分享圖片
def is_Chinese(word):
    for ch in word:
        if \u4e00 <= ch <= \u9fff:
            print(This is Chinese)
        else :
            print(This is not Chinese)
s = 哈哈哈哈123
is_Chinese(s)
技術分享圖片

公共方法
name = ‘aaabcdgf‘
print(name.count(‘a‘)) # 數字符串含有多少個a,有切片
print(len(name)) # 字符串的長度

五、 for循環:用戶按照順序循環可叠代對象的內容。

技術分享圖片
msg = 你好我好才是真的好
for item in msg:
    print(item)          #依次打印msg的每個字符

for item in msg:
    print(msg)           #打印9次msg的全部內容(字符串長度就是次數)


li = [帥哥,美女,男神,女神,傻帽]
for i in li:
    print(i)

dic = {name:靚仔,age:18,sex:man}
for k,v in dic.items():
    print(k,v)
技術分享圖片


六、in not in
in與not in:是判斷某個元素是不是字符串的一部分
print(‘ab‘ in ‘abvde‘) #返回True

python 字符串常用方法