日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

python中find函数忽略大小写_python字符串(大小写、判断、查找、分割、拼接、裁剪、替换、格式化)...

發(fā)布時(shí)間:2025/4/5 python 14 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python中find函数忽略大小写_python字符串(大小写、判断、查找、分割、拼接、裁剪、替换、格式化)... 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一、通用操作

1、Python len()

方法返回對(duì)象(字符、列表、元組等)長(zhǎng)度或項(xiàng)目個(gè)數(shù)。

語(yǔ)法

len()方法語(yǔ)法:

len( q )

參數(shù)

q -- 對(duì)象。

返回值

返回對(duì)象長(zhǎng)度。

實(shí)例

以下實(shí)例展示了 len() 的使用方法:

>>>str = "runoob"

>>> len(str) # 字符串長(zhǎng)度

6

>>> l = [1,2,3,4,5]

>>> len(l) # 列表元素個(gè)數(shù)

5

2、python 成員運(yùn)算符 in 和 not in

Python成員運(yùn)算符測(cè)試給定值是否為序列中的成員,例如字符串,列表或元組。 有兩個(gè)成員運(yùn)算符,如下所述 -

in 如果在指定的序列中找到一個(gè)變量的值,則返回true,否則返回false。

not in 如果在指定序列中找不到變量的值,則返回true,否則返回false。

in

如果在指定的序列中找到值返回 True,否則返回 False。

x 在 y 序列中 , 如果 x 在 y 序列中返回 True。

not in

如果在指定的序列中沒有找到值返回 True,否則返回 False。

x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True。

以下實(shí)例演示了Python所有成員運(yùn)算符的操作:

#!/usr/bin/python3

a = 10

b = 20

list = [1, 2, 3, 4, 5 ];

if ( a in list ):

print ("1 - 變量 a 在給定的列表中 list 中")

else:

print ("1 - 變量 a 不在給定的列表中 list 中")

if ( b not in list ):

print ("2 - 變量 b 不在給定的列表中 list 中")

else:

print ("2 - 變量 b 在給定的列表中 list 中")

# 修改變量 a 的值

a = 2

if ( a in list ):

print ("3 - 變量 a 在給定的列表中 list 中")

else:

print ("3 - 變量 a 不在給定的列表中 list 中")

以上實(shí)例輸出結(jié)果:

1 - 變量 a 不在給定的列表中 list 中

2 - 變量 b 不在給定的列表中 list 中

3 - 變量 a 在給定的列表中 list 中

3、Python身份運(yùn)算符

身份運(yùn)算符用于比較兩個(gè)對(duì)象的存儲(chǔ)單元

is

is 是判斷兩個(gè)標(biāo)識(shí)符是不是引用自一個(gè)對(duì)象

x is y, 類似 id(x) == id(y) , 如果引用的是同一個(gè)對(duì)象則返回 True,否則返回 False

is not

is not 是判斷兩個(gè)標(biāo)識(shí)符是不是引用自不同對(duì)象

x is not y , 類似 id(a) != id(b)。如果引用的不是同一個(gè)對(duì)象則返回結(jié)果 True,否則返回 False。

注: id() 函數(shù)用于獲取對(duì)象內(nèi)存地址。

以下實(shí)例演示了Python所有身份運(yùn)算符的操作:

#!/usr/bin/python3

a = 20

b = 20

if ( a is b ):

print ("1 - a 和 b 有相同的標(biāo)識(shí)")

else:

print ("1 - a 和 b 沒有相同的標(biāo)識(shí)")

if ( id(a) == id(b) ):

print ("2 - a 和 b 有相同的標(biāo)識(shí)")

else:

print ("2 - a 和 b 沒有相同的標(biāo)識(shí)")

# 修改變量 b 的值

b = 30

if ( a is b ):

print ("3 - a 和 b 有相同的標(biāo)識(shí)")

else:

print ("3 - a 和 b 沒有相同的標(biāo)識(shí)")

if ( a is not b ):

print ("4 - a 和 b 沒有相同的標(biāo)識(shí)")

else:

print ("4 - a 和 b 有相同的標(biāo)識(shí)")

以上實(shí)例輸出結(jié)果:

1 - a 和 b 有相同的標(biāo)識(shí)

2 - a 和 b 有相同的標(biāo)識(shí)

3 - a 和 b 沒有相同的標(biāo)識(shí)

4 - a 和 b 沒有相同的標(biāo)識(shí)

is 與 == 區(qū)別:

is 用于判斷兩個(gè)變量引用對(duì)象是否為同一個(gè), == 用于判斷引用變量的值是否相等。

>>>a = [1, 2, 3]

>>> b = a

>>> b is a

True

>>> b == a

True

>>> b = a[:]

>>> b is a

False

>>> b == a

True

4、Python運(yùn)算符優(yōu)先級(jí)

以下表格列出了從最高到最低優(yōu)先級(jí)的所有運(yùn)算符:

運(yùn)算符

描述

**

指數(shù) (最高優(yōu)先級(jí))

~ + -

按位翻轉(zhuǎn), 一元加號(hào)和減號(hào) (最后兩個(gè)的方法名為 +@ 和 -@)

* / % //

乘,除,求余數(shù)和取整除

+ -

加法減法

>> <<

右移,左移運(yùn)算符

&

位 'AND'

^ |

位運(yùn)算符

<= < > >=

比較運(yùn)算符

== !=

等于運(yùn)算符

= %= /= //= -= += *= **=

賦值運(yùn)算符

is is not

身份運(yùn)算符

in not in

成員運(yùn)算符

not and or

邏輯運(yùn)算符

以下實(shí)例演示了Python所有運(yùn)算符優(yōu)先級(jí)的操作:

#!/usr/bin/python3

a = 20

b = 10

c = 15

d = 5

e = 0

e = (a + b) * c / d #( 30 * 15 ) / 5

print ("(a + b) * c / d 運(yùn)算結(jié)果為:", e)

e = ((a + b) * c) / d # (30 * 15 ) / 5

print ("((a + b) * c) / d 運(yùn)算結(jié)果為:", e)

e = (a + b) * (c / d); # (30) * (15/5)

print ("(a + b) * (c / d) 運(yùn)算結(jié)果為:", e)

e = a + (b * c) / d; # 20 + (150/5)

print ("a + (b * c) / d 運(yùn)算結(jié)果為:", e)

以上實(shí)例輸出結(jié)果:

(a + b) * c / d 運(yùn)算結(jié)果為: 90.0

((a + b) * c) / d 運(yùn)算結(jié)果為: 90.0

(a + b) * (c / d) 運(yùn)算結(jié)果為: 90.0

a + (b * c) / d 運(yùn)算結(jié)果為: 50.0

and 擁有更高優(yōu)先級(jí):

x = True

y = False

z = False

if x or y and z:

print("yes")

else:

print("no")

以上實(shí)例輸出結(jié)果:

yes

注意:Pyhton3 已不支持 <> 運(yùn)算符,可以使用 != 代替,如果你一定要使用這種比較運(yùn)算符,可以使用以下的方式:

>>> from __future__ import barry_as_FLUFL

>>> 1 <> 2

True

二、與大小寫的相關(guān)方法

xgp = 'hello,wsd'

print(xgp)

# upper():將字符串轉(zhuǎn)換為大寫

xgp1 = xgp.upper()

print(xgp1)

# isupper():判斷字符串是否都為大寫

print(xgp1.isupper())

# lower():將字符串轉(zhuǎn)換為小寫

xgp2 = xgp1.lower()

print(xgp2)

# islower():判斷字符串是否都為小寫

print(xgp2.islower())

# title():將字符串中的單詞轉(zhuǎn)換為標(biāo)題格式,每個(gè)單詞首字母大寫,其余小寫

xgp3 = xgp2.title()

print(xgp3)

# istitle():判斷字符事是不是一個(gè)標(biāo)題

print(xgp3.istitle())

# swapcase():小寫轉(zhuǎn)大寫,大寫轉(zhuǎn)小寫

xgp4 = xgp3.swapcase()

print(xgp4)

xgp5 = xgp4.swapcase()

print(xgp5)

# capitalize():將首字母轉(zhuǎn)換為大寫

xgp6 = xgp5.capitalize()

print(xgp6)

以上實(shí)例輸出結(jié)果:

# 原始輸出

hello,wsd

# 將字符串轉(zhuǎn)換為大寫

HELLO,WSD

# 判斷字符串是否都為大寫

True

# 將字符串轉(zhuǎn)換為小寫

hello,wsd

# 判斷字符串是否都為小寫

True

# 將字符串中的單詞轉(zhuǎn)換為標(biāo)題格式,每個(gè)單詞首字母大寫,其余小寫

Hello,Wsd

# 判斷字符事是不是一個(gè)標(biāo)題

True

# 小寫轉(zhuǎn)大寫,大寫轉(zhuǎn)小寫

hELLO,wSD

Hello,Wsd

# 將首字母轉(zhuǎn)換為大寫

Hello,wsd

三、判斷類方法

1、Python3 isalpha()方法

Python isalpha() 方法檢測(cè)字符串是否只由字母組成。

語(yǔ)法

isalpha()方法語(yǔ)法:

str.isalpha()

參數(shù)

無。

返回值

如果字符串至少有一個(gè)字符并且所有字符都是字母則返回 True,否則返回 False。

實(shí)例

str = "runoob";

print str.isalpha();

str = "runoob小鋼炮";

print str.isalpha();

str = "this is string example....wow!!!";

print str.isalpha();

以上實(shí)例輸出結(jié)果如下:

True

False

False

2、Python3 isalnum()方法

Python isalnum() 方法檢測(cè)字符串是否由字母和數(shù)字組成。

語(yǔ)法

isalnum()方法語(yǔ)法:

str.isalnum()

參數(shù)

無。

返回值

如果 string 至少有一個(gè)字符并且所有字符都是字母或數(shù)字則返回 True,否則返回 False

實(shí)例

以下實(shí)例展示了isalnum()方法的實(shí)例:

str = "this2009"; # 字符中沒有空格

print str.isalnum();

str = "this is string example....wow!!!";

print str.isalnum();

以上實(shí)例輸出結(jié)果如下:

True

False

3、Python3 isspace()方法

Python isspace() 方法檢測(cè)字符串是否只由空白字符組成。

語(yǔ)法

isspace() 方法語(yǔ)法:

str.isspace()

參數(shù)

無。

返回值

如果字符串中只包含空格/指標(biāo)位/換行符,則返回 True,否則返回 False.

實(shí)例

以下實(shí)例展示了isspace()方法的實(shí)例:

str = " \n \t"

print (str.isspace())

str = "Runoob example....wow!!!"

print (str.isspace())

以上實(shí)例輸出結(jié)果如下:

True

False

4、Python3 isdecimal()方法

Python isdecimal() 方法檢查字符串是否只包含十進(jìn)制字符。這種方法只存在于unicode對(duì)象。

注意:定義一個(gè)十進(jìn)制字符串,只需要在字符串前添加 'u' 前綴即可。

語(yǔ)法

isdecimal()方法語(yǔ)法:

str.isdecimal()

參數(shù)

返回值

如果字符串是否只包含十進(jìn)制字符返回True,否則返回False。

實(shí)例

以下實(shí)例展示了 isdecimal()函數(shù)的使用方法:

str = "runoob2016"

print (str.isdecimal())

str = "23443434"

print (str.isdecimal())

以上實(shí)例輸出結(jié)果如下:

False

True

5、Python3 isdigit()方法

Python isdigit() 方法檢測(cè)字符串是否只由數(shù)字組成。

語(yǔ)法

isdigit()方法語(yǔ)法:

str.isdigit()

參數(shù)

無。

返回值

如果字符串只包含數(shù)字則返回 True 否則返回 False。

實(shí)例

以下實(shí)例展示了isdigit()方法的實(shí)例:

str = "123456";

print (str.isdigit())

str = "Runoob example....wow!!!"

print (str.isdigit())

以上實(shí)例輸出結(jié)果如下:

True

False

6、Python3 startswith()方法

startswith() 方法用于檢查字符串是否是以指定子字符串開頭,如果是則返回 True,否則返回 False。如果參數(shù) beg 和 end 指定值,則在指定范圍內(nèi)檢查。

語(yǔ)法

startswith()方法語(yǔ)法:

str.startswith(substr, beg=0,end=len(string));

參數(shù)

str -- 檢測(cè)的字符串。

substr -- 指定的子字符串。

strbeg -- 可選參數(shù)用于設(shè)置字符串檢測(cè)的起始位置。

strend -- 可選參數(shù)用于設(shè)置字符串檢測(cè)的結(jié)束位置。

返回值

如果檢測(cè)到字符串則返回True,否則返回False。

實(shí)例

以下實(shí)例展示了startswith()函數(shù)的使用方法:

str = "this is string example....wow!!!"

print (str.startswith( 'this' )) # 字符串是否以 this 開頭

print (str.startswith( 'string', 8 )) # 從第八個(gè)字符開始的字符串是否以 string 開頭

print (str.startswith( 'this', 2, 4 )) # 從第2個(gè)字符開始到第四個(gè)字符結(jié)束的字符串是否以 this 開頭

以上實(shí)例輸出結(jié)果如下:

True

True

False

7、Python3 endswith()方法

endswith() 方法用于判斷字符串是否以指定后綴結(jié)尾,如果以指定后綴結(jié)尾返回 True,否則返回 False。可選參數(shù) "start" 與 "end" 為檢索字符串的開始與結(jié)束位置。

語(yǔ)法

endswith()方法語(yǔ)法:

str.endswith(suffix[, start[, end]])

參數(shù)

suffix -- 該參數(shù)可以是一個(gè)字符串或者是一個(gè)元素。

start -- 字符串中的開始位置。

end -- 字符中結(jié)束位置。

返回值

如果字符串含有指定的后綴返回 True,否則返回 False。

實(shí)例

以下實(shí)例展示了endswith()方法的實(shí)例:

Str='Runoob example....wow!!!'

suffix='!!'

print (Str.endswith(suffix))

print (Str.endswith(suffix,20))

suffix='run'

print (Str.endswith(suffix))

print (Str.endswith(suffix, 0, 19))

以上實(shí)例輸出結(jié)果如下:

True

True

False

False

四、小練習(xí)

模擬用戶注冊(cè),要求:

1、用戶名不能是純數(shù)字,不能以數(shù)字開頭,必須包含數(shù)字、字母或者下劃線其中兩項(xiàng)。

2、用戶密碼長(zhǎng)度在6-12位之間,不能是純數(shù)字或純字母,必須包含數(shù)字、字母大寫或小寫兩項(xiàng)。

3、符合以上要求,程序提示注冊(cè)成功;否則在輸入內(nèi)容之后立即給出錯(cuò)誤提示。

def user():

while True:

username = input('請(qǐng)輸入要注冊(cè)的賬號(hào)(不能是純數(shù)字,不能以數(shù)字開頭,必須包含數(shù)字、字母或者下劃線其中兩項(xiàng)')

if username == '' :

print('用戶名不能為空')

continue

elif username .isdecimal() or username[0].isdecimal() == True:

print('用戶名首字母不能為數(shù)字或不能為純數(shù)字用戶名' )

continue

elif username.isalpha() == True:

print('必須包含數(shù)字字母下 劃線其中兩項(xiàng)' )

continue

else:

return username

break

def password():

while True:

passwd = input(' 請(qǐng)輸入密碼: ')

if len(passwd) < 6 or len(passwd) > 12:

print( '用戶密碼長(zhǎng)度在6 -12位之間')

continue

elif passwd. isdecimal() or passwd. isalpha():

print('用戶密碼不能是純數(shù)字或純字母,必須包含數(shù)字、字母大寫或小寫兩項(xiàng):')

continue

else:

return passwd

break

def xgp():

user()

password()

print('注冊(cè)成功')

xgp()

以上實(shí)例輸出結(jié)果如下:

請(qǐng)輸入要注冊(cè)的賬號(hào)(不能是純數(shù)字,不能以數(shù)字開頭,必須包含數(shù)字、字母或者下劃線其中兩項(xiàng)f123

請(qǐng)輸入密碼: sdf456!weq.

注冊(cè)成功

五、查找類的方法

str = 'hello,python'

print(str.find('p'))

print(str.index('e'))

print(str.rindex('o'))

print(str.rfind('h'))

以上實(shí)例輸出結(jié)果如下:

6

1

10

9

1、Python3 find()方法

find() 方法檢測(cè)字符串中是否包含子字符串 str ,如果指定 beg(開始) 和 end(結(jié)束) 范圍,則檢查是否包含在指定范圍內(nèi),如果指定范圍內(nèi)如果包含指定索引值,返回的是索引值在字符串中的起始位置。如果不包含索引值,返回-1。

語(yǔ)法

find()方法語(yǔ)法:

str.find(str, beg=0, end=len(string))

參數(shù)

str -- 指定檢索的字符串

beg -- 開始索引,默認(rèn)為0。

end -- 結(jié)束索引,默認(rèn)為字符串的長(zhǎng)度。

返回值

如果包含子字符串返回開始的索引值,否則返回-1。

實(shí)例

以下實(shí)例展示了find()方法的實(shí)例:

str1 = "Runoob example....wow!!!"

str2 = "exam";

print (str1.find(str2))

print (str1.find(str2, 5))

print (str1.find(str2, 10))

以上實(shí)例輸出結(jié)果如下:

7

7

-1

例子

>>>info = 'abca'

>>> print(info.find('a')) # 從下標(biāo)0開始,查找在字符串里第一個(gè)出現(xiàn)的子串,返回結(jié)果:0

0

>>> print(info.find('a', 1)) # 從下標(biāo)1開始,查找在字符串里第一個(gè)出現(xiàn)的子串:返回結(jié)果3

3

>>> print(info.find('3')) # 查找不到返回-1

-1

2、Python3 index()方法

index() 方法檢測(cè)字符串中是否包含子字符串 str ,如果指定 beg(開始) 和 end(結(jié)束) 范圍,則檢查是否包含在指定范圍內(nèi),該方法與 python find()方法一樣,只不過如果str不在 string中會(huì)報(bào)一個(gè)異常。

語(yǔ)法

index()方法語(yǔ)法:

str.index(str, beg=0, end=len(string))

參數(shù)

str -- 指定檢索的字符串

beg -- 開始索引,默認(rèn)為0。

end -- 結(jié)束索引,默認(rèn)為字符串的長(zhǎng)度。

返回值

如果包含子字符串返回開始的索引值,否則拋出異常。

實(shí)例

以下實(shí)例展示了index()方法的實(shí)例:

str1 = "Runoob example....wow!!!"

str2 = "exam";

print (str1.index(str2))

print (str1.index(str2, 5))

print (str1.index(str2, 10))

以上實(shí)例輸出結(jié)果如下(未發(fā)現(xiàn)的會(huì)出現(xiàn)異常信息):

7

7

Traceback (most recent call last):

File "test.py", line 8, in

print (str1.index(str2, 10))

ValueError: substring not found

3、Python3 rfind()方法

Python rfind() 返回字符串最后一次出現(xiàn)的位置,如果沒有匹配項(xiàng)則返回-1。

語(yǔ)法

rfind()方法語(yǔ)法:

str.rfind(str, beg=0 end=len(string))

參數(shù)

str -- 查找的字符串

beg -- 開始查找的位置,默認(rèn)為0

end -- 結(jié)束查找位置,默認(rèn)為字符串的長(zhǎng)度。

返回值

返回字符串最后一次出現(xiàn)的位置,如果沒有匹配項(xiàng)則返回-1。

實(shí)例

以下實(shí)例展示了rfind()函數(shù)的使用方法:

str1 = "this is really a string example....wow!!!"

str2 = "is"

print (str1.rfind(str2))

print (str1.rfind(str2, 0, 10))

print (str1.rfind(str2, 10, 0))

print (str1.find(str2))

print (str1.find(str2, 0, 10))

print (str1.find(str2, 10, 0))

以上實(shí)例輸出結(jié)果如下:

5

5

-1

2

2

-1

4、Python3 rindex()方法

rindex() 返回子字符串 str 在字符串中最后出現(xiàn)的位置,如果沒有匹配的字符串會(huì)報(bào)異常,你可以指定可選參數(shù)[beg:end]設(shè)置查找的區(qū)間。

語(yǔ)法

rindex()方法語(yǔ)法:

str.rindex(str, beg=0 end=len(string))

參數(shù)

str -- 查找的字符串

beg -- 開始查找的位置,默認(rèn)為0

end -- 結(jié)束查找位置,默認(rèn)為字符串的長(zhǎng)度。

返回值

返回子字符串 str 在字符串中最后出現(xiàn)的位置,如果沒有匹配的字符串會(huì)報(bào)異常。

實(shí)例

以下實(shí)例展示了rindex()函數(shù)的使用方法:

str1 = "this is really a string example....wow!!!"

str2 = "is"

print (str1.rindex(str2))

print (str1.rindex(str2,10))

以上實(shí)例輸出結(jié)果如下:

5

Traceback (most recent call last):

File "test.py", line 6, in <module>

print (str1.rindex(str2,10))

ValueError: substring not found

六、小練習(xí)

(1)練習(xí)

驗(yàn)證規(guī)則:

正確格式:abc@163.com.cn

1、郵箱必須包含“@”和“.”

2、“@”在郵箱字符串中不能是第一個(gè)位置

3、“.”右側(cè)至少應(yīng)該有2-3個(gè)字符

4、“.”左側(cè)不能是“@”

def vanzheng():

youxiang = input(' 輸入您的郵箱:')

num = youxiang.index('.')

qiepian = youxiang[num:-1]

if youxiang[0] =='@' or youxiang[0] == '.' :

print('郵箱第一位不能是@或者“.” ')

elif '.' not in youxiang or '@' not in youxiang:

print('郵箱必須包含“@”和“”')

elif len(qiepian) <= 2:

print('“.”右側(cè)至少應(yīng)該有2-3個(gè)字符')

elif youxiang[-1] == '@' or youxiang[-1] == '.':

print('郵箱最后一位不能是@或者.')

else:

print('郵箱正確')

vanzheng()

yx=input('請(qǐng)輸入您的郵箱')

at = yx.find('@' )

dian = yx. find('.')

if (at <= 0 or dian <=0) or yx[-1]== '.' or (dian - at) <=1 :

print('郵箱格式有誤' )

以上實(shí)例輸出結(jié)果如下:

輸入您的郵箱:123@qq.com

郵箱正確

(2)練習(xí)

1、提取passwd文件最后5個(gè)用戶的記錄

2、把每個(gè)用戶的信息按“:”分別提取用戶名、所屬組、家目錄、登錄的shell類型

user_info = '''postfix:x:89:89::/var/spool/postfix:/sbin/nologin

tcpdump:x:72:72::/:/sbin/nologin

test-07:x:1000:1000:test-07:/home/test-07:/bin/bash

chou:x:1003:1003::/home/chouchou:/bin/bash

test02:x:1002:1007::/home/test001:/bin/bash

try:x:1004:1004::/home/try:/bin/bash

laoyu:x:1005:1009::/home/laoyu:/bin/bash'''

new_info = user_info.split('\n')

for i in new_info:

print('用戶名:'+i.split(':')[0]+'所屬組:'+i.split(':')[4]+'家目錄:'+i.split(':')[5]+'登錄環(huán)境:'+i.split(':')[6])

以上實(shí)例輸出結(jié)果如下:

用戶名:postfix所屬組:家目錄:/var/spool/postfix登錄環(huán)境:/sbin/nologin

用戶名:tcpdump所屬組:家目錄:/登錄環(huán)境:/sbin/nologin

用戶名:test-07所屬組:test-07家目錄:/home/test-07登錄環(huán)境:/bin/bash

用戶名:chou所屬組:家目錄:/home/chouchou登錄環(huán)境:/bin/bash

用戶名:test02所屬組:家目錄:/home/test001登錄環(huán)境:/bin/bash

用戶名:try所屬組:家目錄:/home/try登錄環(huán)境:/bin/bash

用戶名:laoyu所屬組:家目錄:/home/laoyu登錄環(huán)境:/bin/bash

七、其他方法

1、Python3 split()方法

split() 通過指定分隔符對(duì)字符串進(jìn)行切片,如果第二個(gè)參數(shù) num 有指定值,則分割為 num+1 個(gè)子字符串。

語(yǔ)法

split() 方法語(yǔ)法:

str.split(str="", num=string.count(str))

參數(shù)

str -- 分隔符,默認(rèn)為所有的空字符,包括空格、換行(\n)、制表符(\t)等。

num -- 分割次數(shù)。默認(rèn)為 -1, 即分隔所有。

返回值

返回分割后的字符串列表。

實(shí)例

以下實(shí)例展示了 split() 函數(shù)的使用方法:

str = "this is string example....wow!!!"

print (str.split( )) # 以空格為分隔符

print (str.split('i',1)) # 以 i 為分隔符

print (str.split('w')) # 以 w 為分隔符

(1)以下實(shí)例以 # 號(hào)為分隔符,指定第二個(gè)參數(shù)為 1,返回兩個(gè)參數(shù)列表。

txt = "Google#Runoob#Taobao#Facebook"

# 第二個(gè)參數(shù)為 1,返回兩個(gè)參數(shù)列表

x = txt.split("#", 1)

print(x)

以上實(shí)例輸出結(jié)果如下:

['Google', 'Runoob#Taobao#Facebook']

2、Python3 join()方法

Python join() 方法用于將序列中的元素以指定的字符連接生成一個(gè)新的字符串。

語(yǔ)法

join()方法語(yǔ)法:

str.join(sequence)

參數(shù)

sequence -- 要連接的元素序列。

返回值

返回通過指定字符連接序列中元素后生成的新字符串。

實(shí)例

以下實(shí)例展示了join()的使用方法:

s1 = "-"

s2 = ""

seq = ("r", "u", "n", "o", "o", "b") # 字符串序列

print (s1.join( seq ))

print (s2.join( seq ))

以上實(shí)例輸出結(jié)果如下:

r-u-n-o-o-b

runoob

3、Python3中 strip lstrip rstrip的使用方法

簡(jiǎn)單來說,三種方法是為了刪除字符串中不同位置的指定字符。其中,strip()用于去除字符串的首尾字符,同理,lstrip()用于去除左邊的字符,rstrip()用于去除右邊的字符

(1)strip()

Python strip() 方法用于移除字符串頭尾指定的字符(默認(rèn)為空格)。

若傳入的是一個(gè)字符數(shù)組,編譯器將去除字符串兩端所有相應(yīng)的字符,直到?jīng)]有匹配的字符。

語(yǔ)法

str.strip([chars])

參數(shù)

chars – 移除字符串頭尾指定的字符。

實(shí)例

1、默認(rèn)方法

string1 = ' Kobe Bryant '

print(string1.strip())

以上實(shí)例輸出結(jié)果如下:

Kobe Bryant

默認(rèn)刪除字符串前后的空格。

2、 參數(shù)傳遞

string2 = 'uuuussssaaaa china aaaassssuuu'

print(string2.strip('usa'))

以上實(shí)例輸出結(jié)果如下:

china

其中, 'u'、's'、'a' 的個(gè)數(shù)可以為任意,不影響最后輸出 > china

(2)lstrip()

Python lstrip() 方法用于截掉字符串左邊的空格或指定字符,默認(rèn)為空格。

實(shí)例

1、默認(rèn)方法

string1 = ' Kobe Bryant '

string1.lstrip()

以上實(shí)例輸出結(jié)果如下:

'Kobe Bryant '

默認(rèn)刪除字符串前的空格。

2、 參數(shù)傳遞

string2 = 'uuuussssaaaa china aaaassssuuu'

print(string2.strip('usa'))

以上實(shí)例輸出結(jié)果如下:

china aaaassssuuu

(3)rstrip()

Python lstrip() 方法用于截掉字符串右邊的空格或指定字符,默認(rèn)為空格。

實(shí)例

1、默認(rèn)方法

string1 = ' Kobe Bryant '

string1.lstrip()

以上實(shí)例輸出結(jié)果如下:

Kobe Bryant'

默認(rèn)刪除字符串后的空格。

2、參數(shù)傳遞

string2 = 'uuuussssaaaa china aaaassssuuu'

print(string2.strip('usa'))

以上實(shí)例輸出結(jié)果如下:

uuuussssaaaa china

4、Python3 replace()方法

描述

replace() 方法把字符串中的 old(舊字符串) 替換成 new(新字符串),如果指定第三個(gè)參數(shù)max,則替換不超過 max 次。

語(yǔ)法

replace()方法語(yǔ)法:

str.replace(old, new[, max])

參數(shù)

old -- 將被替換的子字符串。

new -- 新字符串,用于替換old子字符串。

max -- 可選字符串, 替換不超過 max 次

返回值

返回字符串中的 old(舊字符串) 替換成 new(新字符串)后生成的新字符串,如果指定第三個(gè)參數(shù)max,則替換不超過 max 次。

實(shí)例

以下實(shí)例展示了replace()函數(shù)的使用方法:

str = "wsdixgp.top"

print ("xgp舊地址:", str)

print ("xgp新地址:", str.replace("wsdixgp.top", "wsdlxgp.top"))

str = "this is string example....wow!!!"

print (str.replace("is", "was", 3))

以上實(shí)例輸出結(jié)果如下:

xgp舊地址: wsdixgp.top

xgp新地址: wsdlxgp.top

thwas was string example....wow!!!

八、使用Python分析Apache的訪問日志

1、字符串分割

創(chuàng)建access.log文件(存放日志信息即可)

log = '182.19.31.129 - - [16/JAN/2020:06:05:35 +0200] "GET /index.php HTTP/1.1" 200 0 "-" "Mozilla/5.0 (compatible; PJBot/3.0; +http://craw1.pagesjaunes.fr/robot)" "-"'

log_temp = log.split()

print(log_temp)

print('用戶IP:'+log_temp[0])

print('訪問頁(yè)面:'+log_temp[6])

print('狀態(tài)碼:'+log_temp[8])

from __future__ import print_function

ips = []

with open('access.log') as f:

for line in f:

ips.append(line.split()[0])

print('網(wǎng)站請(qǐng)求數(shù)[PV]:'+ str(len(ips)))

print('網(wǎng)站獨(dú)立的訪客數(shù)[UV]:'+ str(len(set(ips))))

以上實(shí)例輸出結(jié)果如下:

網(wǎng)站請(qǐng)求數(shù)[PV]:120

網(wǎng)站獨(dú)立的訪客數(shù)[UV]:6

2、使用counter類統(tǒng)計(jì)PV和UV

from __future__ import print_function

d = {}

with open('access.log') as f:

for line in f:

key = line.split()[8]

d.setdefault(key,0)

d[key] += 1

print(d)

# 出錯(cuò)的頁(yè)面數(shù)量

error_requests = 0

# 頁(yè)面總訪問量

sum_requests = 0

# 遍歷字典

for key, value in d.items():

if int(key) >= 400:

error_requests += value

sum_requests += value

print('頁(yè)面出錯(cuò)率:{0:2f}%'.format(error_requests * 100.0/sum_requests))

以上實(shí)例輸出結(jié)果如下:

{'200': 115, '500': 1, '248': 1, '210': 1, '203': 1, '400': 1}

頁(yè)面出錯(cuò)率:1.666667%

九、格式化

1、Python字符串格式化

Python 支持格式化字符串的輸出 。盡管這樣可能會(huì)用到非常復(fù)雜的表達(dá)式,但最基本的用法是將一個(gè)值插入到一個(gè)有字符串格式符 %s 的字符串中。

在 Python 中,字符串格式化使用與 C 中 sprintf 函數(shù)一樣的語(yǔ)法。

print ("我叫 %s 今年 %d 歲!" % ('小名', 10))

以上實(shí)例輸出結(jié)果:

我叫 小名 今年 10 歲!

python字符串格式化符號(hào):

符 號(hào)

描述

%c

格式化字符及其ASCII碼

%s

格式化字符串

%d

格式化整數(shù)

%u

格式化無符號(hào)整型

%o

格式化無符號(hào)八進(jìn)制數(shù)

%x

格式化無符號(hào)十六進(jìn)制數(shù)

%X

格式化無符號(hào)十六進(jìn)制數(shù)(大寫)

%f

格式化浮點(diǎn)數(shù)字,可指定小數(shù)點(diǎn)后的精度

%e

用科學(xué)計(jì)數(shù)法格式化浮點(diǎn)數(shù)

%E

作用同%e,用科學(xué)計(jì)數(shù)法格式化浮點(diǎn)數(shù)

%g

%f和%e的簡(jiǎn)寫

%G

%f 和 %E 的簡(jiǎn)寫

%p

用十六進(jìn)制數(shù)格式化變量的地址

格式化操作符輔助指令:

符號(hào)

功能

*

定義寬度或者小數(shù)點(diǎn)精度

-

用做左對(duì)齊

+

在正數(shù)前面顯示加號(hào)( + )

在正數(shù)前面顯示空格

#

在八進(jìn)制數(shù)前面顯示零('0'),在十六進(jìn)制前面顯示'0x'或者'0X'(取決于用的是'x'還是'X')

0

顯示的數(shù)字前面填充'0'而不是默認(rèn)的空格

%

'%%'輸出一個(gè)單一的'%'

(var)

映射變量(字典參數(shù))

m.n.

m 是顯示的最小總寬度,n 是小數(shù)點(diǎn)后的位數(shù)(如果可用的話)

Python2.6 開始,新增了一種格式化字符串的函數(shù) str.format(),它增強(qiáng)了字符串格式化的功能。

練習(xí)

rint( '%d' % 3)

print( '%09f' % 3.14)

print('%s' % 'hello')

以上實(shí)例輸出結(jié)果如下:

3

03.140000

hello

2、format函數(shù)

Python2.6 開始,新增了一種格式化字符串的函數(shù) str.format(),它增強(qiáng)了字符串格式化的功能。

基本語(yǔ)法是通過 {} 和 : 來代替以前的 % 。

format 函數(shù)可以接受不限個(gè)參數(shù),位置可以不按順序。

>>>"{} {}".format("hello", "world") # 不設(shè)置指定位置,按默認(rèn)順序

'hello world'

>>> "{0} {1}".format("hello", "world") # 設(shè)置指定位置

'hello world'

>>> "{1} {0} {1}".format("hello", "world") # 設(shè)置指定位置

'world hello world'

也可以設(shè)置參數(shù):

print("網(wǎng)站名:{name}, 地址 {url}".format(name="xgp", url="wsdlxgp.top"))

# 通過字典設(shè)置參數(shù)

site = {"name": "xgp", "url": "wsdlxgp.top"}

print("網(wǎng)站名:{name}, 地址 {url}".format(**site))

# 通過列表索引設(shè)置參數(shù)

my_list = ['xgp', 'wsdlxgp.top']

print("網(wǎng)站名:{0[0]}, 地址 {0[1]}".format(my_list)) # "0" 是必須的

以上實(shí)例輸出結(jié)果如下:

網(wǎng)站名:xgp, 地址 wsdlxgp.top

網(wǎng)站名:xgp, 地址 wsdlxgp.top

網(wǎng)站名:xgp, 地址 wsdlxgp.top

也可以向 str.format() 傳入對(duì)象:

class AssignValue(object):

def __init__(self, value):

self.value = value

my_value = AssignValue(6)

print('value 為: {0.value}'.format(my_value)) # "0" 是可選的

以上實(shí)例輸出結(jié)果如下:

value 為: 6

3、數(shù)字格式化

下表展示了 str.format() 格式化數(shù)字的多種方法:

數(shù)字

格式

輸出

描述

3.1415926

{:.2f}

3.14

保留小數(shù)點(diǎn)后兩位

3.1415926

{:+.2f}

+3.14

帶符號(hào)保留小數(shù)點(diǎn)后兩位

-1

{:+.2f}

-1.00

帶符號(hào)保留小數(shù)點(diǎn)后兩位

2.71828

{:.0f}

3

不帶小數(shù)

5

{:0>2d}

05

數(shù)字補(bǔ)零 (填充左邊, 寬度為2)

5

{:x<4d}

5xxx

數(shù)字補(bǔ)x (填充右邊, 寬度為4)

10

{:x<4d}

10xx

數(shù)字補(bǔ)x (填充右邊, 寬度為4)

1000000

{:,}

1,000,000

以逗號(hào)分隔的數(shù)字格式

0.25

{:.2%}

25.00%

百分比格式

1000000000

{:.2e}

1.00e+09

指數(shù)記法

13

{:>10d}

13

右對(duì)齊 (默認(rèn), 寬度為10)

13

{:<10d}

13

左對(duì)齊 (寬度為10)

13

{:^10d}

13

中間對(duì)齊 (寬度為10)

11

'{:b}'.format(11) '{:d}'.format(11) '{:o}'.format(11) '{:x}'.format(11) '{:#x}'.format(11) '{:#X}'.format(11)

1011 11 13 b 0xb 0XB

^, <, > 分別是居中、左對(duì)齊、右對(duì)齊,后面帶寬度, : 號(hào)后面帶填充的字符,只能是一個(gè)字符,不指定則默認(rèn)是用空格填充。

+ 表示在正數(shù)前顯示 +,負(fù)數(shù)前顯示 -; (空格)表示在正數(shù)前加空格

b、d、o、x 分別是二進(jìn)制、十進(jìn)制、八進(jìn)制、十六進(jìn)制。

# 精度

print('{: .2f}'.format(3.141592656535897))

# 符號(hào)

print('{: .2f}'.format(3.141592656535897))

# 寬度

print( '{:10.2f}'.format(3.141592656535897))

# 對(duì)齊方式

print('{:^10.2f}'.format(3.141592656535897))

# 逗號(hào)分隔

print('{:,}'.format(23421424231))

以上實(shí)例輸出結(jié)果如下:

3.14

3.14

3.14

3.14

23,421,424,231

此外我們可以使用大括號(hào) {} 來轉(zhuǎn)義大括號(hào),如下實(shí)例:

print ("{} 對(duì)應(yīng)的位置是 {{0}}".format("runoob"))

以上實(shí)例輸出結(jié)果如下:

runoob 對(duì)應(yīng)的位置是 {0}

總結(jié)

以上是生活随笔為你收集整理的python中find函数忽略大小写_python字符串(大小写、判断、查找、分割、拼接、裁剪、替换、格式化)...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。