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

歡迎訪問 生活随笔!

生活随笔

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

python

python中str是什么_python的str()字符串类型的方法详解

發(fā)布時(shí)間:2025/3/11 python 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python中str是什么_python的str()字符串类型的方法详解 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

字符串一旦創(chuàng)建,不可修改,一旦修改或者拼接,都會(huì)造成重新生成字符串,因?yàn)閮?nèi)存存數(shù)據(jù)是一個(gè)挨著一個(gè)存的,如果增加一個(gè)字符串的話,之前的老位置只有一個(gè)地方,不夠,這是原理性的東西,在其他語言里面也一樣

7個(gè)必須要背會(huì)的方法

join

split

find

strip

upper

lower

replace

4個(gè)必須會(huì)的灰魔法

len

for循環(huán)

索引

切片

1.字符串 str 所有的功能都放在 str里面了

n1 = "frank" n2 = 'root' n3 = """eric""" n4 = '''tony'''

雙引號 單引號 三個(gè)雙引號 三個(gè)單引號 引起來的都是字符串

字符串的加法

>>> n1 = "frank"

>>> n2 = "sb"

>>> n3 = "db"

>>> n4 = n1 + n2 +n3>>> print(n4)

franksbdb>>>字符串的乘法>>> n1 = "frank"

>>> n3 = n1 * 6

>>> print(n3)

frankfrankfrankfrankfrankfrank

字符串類型的魔法,有太多種了,下面列舉幾個(gè)常用的

1.capitalize() 魔法是首字母大寫 [?k?p?t?la?z] 用大寫字母寫

name = "gouguoqi"v=name.capitalize()print(v)

C:\python35\python3.exe D:/pyproject/day10/1.py

Gouguoqi

2.casefold()

3.lower() 這2個(gè)魔法都是把字符串中的大寫字母變成小寫

casefold 最牛逼,它可以把未知的字符串的的對應(yīng)關(guān)系也能變小寫,lower只能我們常用的英文變小寫

upper 使字符串全部變成大寫

name = "GOGUoQi"v1=name.casefold()print(v1)

v2=name.lower()print(v2)

C:\python35\python3.exe D:/pyproject/day10/1.py

goguoqi

goguoqi

4.center(self, width, fillchar=None)

跟ljust (左對齊) rjust(右對齊)相對應(yīng)

self 這個(gè)可以忽略,width,這種后面必須要帶一個(gè)值,就相當(dāng)于買東西必須要帶錢,fillchar=None表示默認(rèn)是None sub代表子序列

#center功能是將字符串居中顯示

#20 代表寬度,- 代表的是空余的地方用什么填充,只能是一個(gè)字符,默認(rèn)是空格

name = "gouguoqi"v= name.center(20,"-")print(v)

C:\python35\python3.exe D:/pyproject/day10/1.py------gouguoqi------

5.count(self, sub, start=None, end=None) [ka?nt] 計(jì)數(shù)

計(jì)算一個(gè)指定的字符出現(xiàn)了幾次,可以是多個(gè)字符

sub代表子序列

專業(yè)說法:在字符串中尋找子序列出現(xiàn)的次數(shù),可以指定從第幾個(gè)字符串開始,第幾個(gè)字符串結(jié)束的范圍,0為第一個(gè)字符 比如 1,4 表示的是從 第二個(gè)字符到第第五個(gè)字符之間的范圍,第五個(gè)字符不算

name = "gouguoqi"v= name.count("u")print(v)

C:\python35\python3.exe D:/pyproject/day10/1.py2name= "gouguoqigougoqi"v= name.count("go")print(v)

C:\python35\python3.exe D:/pyproject/day10/1.py3

從第3個(gè)位置到第5個(gè)位置中u這個(gè)字符出現(xiàn)了幾次,不算第五個(gè)位置,因?yàn)槭莻€(gè)區(qū)間

黃色為區(qū)間范圍內(nèi)

name = "tyuiop"v= name.count("u",2,4)print(v)

C:\python35\python3.exe D:/pyproject/day10/1.py1

6.encode

7.decode

8.endswith(self, suffix, start=None, end=None)

以什么結(jié)尾,判斷結(jié)果是否為真或者假

name = "beiye"v= name.endswith("e")print(v)

C:\python35\python3.exe D:/pyproject/day10/1.py

True

從1到3的范圍內(nèi),以i結(jié)尾,為真

0為第一個(gè)字符,因?yàn)槭菂^(qū)間的概念,所以第四個(gè)字符不算,就是第四個(gè)字符往左的

name = "beiye"v= name.endswith("i",1,3)print(v)

C:\python35\python3.exe D:/pyproject/day10/1.py

True

9.starswith(self, suffix, start=None, end=None)

以什么字符串開頭 判斷結(jié)果是否為真或者假

name = "beiye"v= name.startswith("b")print(v)

C:\python35\python3.exe D:/pyproject/day10/1.py

True

0為第一個(gè)字符,在第二個(gè)字符和第四個(gè)字符這個(gè)范圍,是i開頭,返回正確

name = "beiye"v= name.startswith("i",2,4)print(v)

C:\python35\python3.exe D:/pyproject/day10/1.py

True

10.find(self, sub, start=None, end=None) *****重要

還有一個(gè)index的方法,不過這個(gè)找不到的話程序直接崩潰了,所以肯定是不用的,find找不到是返回-1

從開始往后找,找到第一個(gè)字符之后,獲取其位置就不往后找了

name = "beiyebeiyet"v= name.find("t")print(v)

C:\python35\python3.exe D:/pyproject/day10/1.py10

在2到6的區(qū)間內(nèi)找t這個(gè)子序列,因?yàn)檎也坏剿苑祷?-1

name = "beiyebeiyet"v= name.find("t",2,6)print(v)

C:\python35\python3.exe D:/pyproject/day10/1.py-1

11.format(self, *args, **kwargs) [?f?:m?t] 格式*****重要

格式化,將一個(gè)字符串中的占位符替換為指定的值

test = "i am {name},age {a}"

print(test)

v= test.format(name='gouguoqi',a='28')print(v)

C:\python35\python3.exe D:/pyproject/day10/1.py

i am {name},age {a}

i am gouguoqi,age28

用字典的方式傳進(jìn)去,前面得加**才行

test = "i am {name},age {a}"

print(test)

v= test.format(**{"name":"gouguoqi","a":28})print(v)

C:\python35\python3.exe D:/pyproject/day12列表/dict-way.py

i am {name},age {a}

i am gouguoqi,age28

如果中括號里面什么都不寫,寫{0} {1} {2},代表第一個(gè)占位符,第二個(gè)占位符,第三個(gè)占位符

下面就不用再寫name=啥了。直接寫值就行了,寫3個(gè)值,就對應(yīng)上面3個(gè)占位符,依次從左向右

test = "i am {0} age {1} weight {2}"

print(test)

v= test.format('gouguoqi','28','90kg')print(v)

C:\python35\python3.exe D:/pyproject/day10/1.py

i am {0} age {1} weight {2}

i am gouguoqi age28 weight 90kg

test = "猥瑣的{0},最喜歡在{1}地方干{2}"name= input("請輸入你的名字:")

place= input("請輸入你經(jīng)常去的地方:")

like= input("請輸入你平時(shí)的愛好:")

v=test.format(name,place,like)print(v)

C:\python35\python3.exe D:/pyproject/day11數(shù)據(jù)類型的方法/str-way.py

請輸入你的名字: 修電腦

請輸入你經(jīng)常去的地方: 網(wǎng)吧

請輸入你平時(shí)的愛好: 擼管

猥瑣的修電腦,最喜歡在網(wǎng)吧地方干擼管

12.format_map(self, mapping)

format_map也是格式化,傳入的值必須是這樣的格式{ "name": 'gouguqi',"a": 28 }

這個(gè)格式就是一個(gè)字典格式

test = "i am {name} age {a}"

print(test)

v= test.format_map({ "name": 'gouguqi',"a": 28})print(v)

C:\python35\python3.exe D:/pyproject/day10/1.py

i am {name} age {a}

i am gouguqi age28

(學(xué)了后面才發(fā)現(xiàn),這里的參數(shù)就是字典類型)

(v = test.format(**{"name":"gouguoqi","a":28}))而上面的format用字典的方式得加**

13.isalnum(self)

判斷字符串中只能由字母和數(shù)字,不能有特殊符號

test = "4567ghjkk_!"v=test.isalnum()print(v)

C:\python35\python3.exe D:/pyproject/day10/1.py

False

test= "4567ghjkkKP"v=test.isalnum()print(v)

C:\python35\python3.exe D:/pyproject/day10/1.py

True

14.isalpha(self)

Return True if all characters in S are alphabetic(字母)

and there is at least one character(至少一個(gè)字母) in S, False

otherwise.

翻譯結(jié)果:字符串里面都是字母,并且至少是一個(gè)字母,結(jié)果就為真,(漢字也可以)其他情況為假

S = "2"v=S.isalpha()print(v)

C:\python35\python3.exe D:/pyproject/day11數(shù)據(jù)類型的方法/str-way.py

False

S = "IIKk9123mm"v=S.isalpha()print(v)

C:\python35\python3.exe D:/pyproject/day11數(shù)據(jù)類型的方法/str-way.py

False

S = "IIKkkkkkmnbvgghjj"v=S.isalpha()print(v)

C:\python35\python3.exe D:/pyproject/day11數(shù)據(jù)類型的方法/str-way.py

True

S = "IIKkkkkkmn漢字ghjj"v=S.isalpha()print(v)

C:\python35\python3.exe D:/pyproject/day11數(shù)據(jù)類型的方法/str-way.py

True

15.isdecimal(self) [?des?ml] 十進(jìn)制的

判斷當(dāng)前字符串是否為數(shù)字

Return True if there are only decimal characters (十進(jìn)制字符) in S,

False otherwise.

S = "65434334000000000"v=S.isdecimal()print(v)

C:\python35\python3.exe D:/pyproject/day11數(shù)據(jù)類型的方法/str-way.py

True

S = "66k"v=S.isdecimal()print(v)

C:\python35\python3.exe D:/pyproject/day11數(shù)據(jù)類型的方法/str-way.py

False

16.isdigit(self) [?d?d??t] 數(shù)字的

判斷字符串是否是數(shù)字,特殊的數(shù)字也可以

這個(gè)比isdecimal更牛逼些,一些特殊的數(shù)字也返回True

Return True if all characters in S are digits(數(shù)字)

and there is at least one character in S, False otherwise.

S = "66①56"v1=S.isdecimal()

v2=S.isdigit()print(v1,v2)

C:\python35\python3.exe D:/pyproject/day11數(shù)據(jù)類型的方法/str-way.py

False True

17.isnumeric(self) [nju:'mer?k] 數(shù)字的

判斷如果是數(shù)字的數(shù)值的就返回為真,比isdigit isdecimal 更牛逼,這個(gè)也能識別特殊的數(shù)值,也能識別中,isdigit能識別特殊的值但是不支持中文 ,isdecimal只能是十進(jìn)制的,特殊的不行

以后工作中常用的就是isdecimal,因?yàn)檫@就是判斷十進(jìn)制數(shù)字的,特殊的值和中文并不能做運(yùn)算,所以不常用

Return True if there are only numeric(數(shù)字的,數(shù)值的) characters in S,

False otherwise

S = "66①56"v1=S.isdecimal()

v2=S.isdigit()

v3=S.isnumeric()print(v1,v2,v3)

C:\python35\python3.exe D:/pyproject/day11數(shù)據(jù)類型的方法/str-way.py

False True True

S = "二"v1=S.isdecimal()

v2=S.isdigit()

v3=S.isnumeric()print(v1,v2,v3)

C:\python35\python3.exe D:/pyproject/day11數(shù)據(jù)類型的方法/str-way.py

False False True

18.isprintable(self) [?pr?nt?bl] 可打印的

如果我們能看到真實(shí)的可以打印出來的東西就是True

像\t \n這種我們?nèi)庋鄄豢娠@示的東西是打印不出來的,所以在包含這些的時(shí)候就是false

Return True if all characters in S are considered

printable in repr() or S is empty, False otherwis

S = "556546 ___ 二&*、"v=S.isprintable()print(v)

C:\python35\python3.exe D:/pyproject/day11數(shù)據(jù)類型的方法/str-way.py

True

S = "556546sd\tf"v=S.isprintable()print(v)

C:\python35\python3.exe D:/pyproject/day11數(shù)據(jù)類型的方法/str-way.py

False

S= "55\n6546sdf"v=S.isprintable()print(v)

C:\python35\python3.exe D:/pyproject/day11數(shù)據(jù)類型的方法/str-way.py

False

19.isspace(self)

判斷你的字符是否全部是空格,一個(gè)空格也行,多個(gè)空格也行,如果全部是空格就為真,不全部是空格就是假,什么都不寫也為假

Return True if all characters in S are whitespace

and there is at least one character in S, False otherwise

一個(gè)空格

S = " "v=S.isspace()print(v)

C:\python35\python3.exe D:/pyproject/day11數(shù)據(jù)類型的方法/str-way.py

True

多個(gè)空格為真

S = " "v=S.isspace()print(v)

C:\python35\python3.exe D:/pyproject/day11數(shù)據(jù)類型的方法/str-way.py

True

什么都不寫為假

S= ""v=S.isspace()print(v)

C:\python35\python3.exe D:/pyproject/day11數(shù)據(jù)類型的方法/str-way.py

False

20.istitle (self) [?ta?tl] 標(biāo)題

判斷知否是標(biāo)題(標(biāo)題是每個(gè)字符串的首字母大寫)

S = "follow uncased characters and lowercase characters only cased on"v1=S.istitle()print(v1)

v2=S.title() 這個(gè)方法是把字符串中的首字母變?yōu)榇髮?#xff0c;也就是轉(zhuǎn)換成標(biāo)題print(v2)

v3=v2.istitle()print(v3)

C:\python35\python3.exe D:/pyproject/day11數(shù)據(jù)類型的方法/str-way.py

False 判斷v1 結(jié)果是v1 不是標(biāo)題

Follow Uncased Characters And Lowercase Characters Only Cased On把v1轉(zhuǎn)化成標(biāo)題

True 再次判斷v3,結(jié)果是標(biāo)題了

21.title(self)

這個(gè)方法是可以把字符串的首字母變成大寫,也就是變成標(biāo)題

S = "my name is gouguoqi"v=S.title()print(v)

C:\python35\python3.exe D:/pyproject/day11數(shù)據(jù)類型的方法/str-way.py

My Name Is Gouguoqi

22.isupper(self) uppercase ['?p??ke?s] 大寫字母

判斷全部是大寫字母才是真,至少有一個(gè)字符,否則為假

Return True if all cased characters in S are uppercase and there is

at least one cased character in S, False otherwise

S = "GOUGUOQI"v=S.isupper()print(v)

C:\python35\python3.exe D:/pyproject/day11數(shù)據(jù)類型的方法/str-way.py

True

其中有一個(gè)字符為小寫,結(jié)果就是false了

S = "GOUgUOQI"v=S.isupper()print(v)

C:\python35\python3.exe D:/pyproject/day11數(shù)據(jù)類型的方法/str-way.py

False

23.islower(self) lowercase 小寫字母

判斷全部是小寫字母才是真,至少有一個(gè)字符,否則為假

Return True if all cased characters in S are lowercase and there is

at least one cased character in S, False otherwise

S = "woaini"v=S.islower()print(v)

C:\python35\python3.exe D:/pyproject/day11數(shù)據(jù)類型的方法/str-way.py

True

也可以包含特殊符號和數(shù)字

S = "woaini*&^%$#@!998"v=S.islower()print(v)

C:\python35\python3.exe D:/pyproject/day11數(shù)據(jù)類型的方法/str-way.py

True

就是不能有大寫字母,有大寫字母就為假

S = "woaini*&^%$#@!998Y"v=S.islower()print(v)

C:\python35\python3.exe D:/pyproject/day11數(shù)據(jù)類型的方法/str-way.py

False

24.join(self, iterable)*****非常重要的方法

將字符串中的每個(gè)元素按照指定分隔符進(jìn)行拼接

Return a string which is the concatenation of the strings in the

iterable. The separator between elements

is S

separato [?sep?re?t?(r)] 分隔符

S = "我愛學(xué)習(xí)"v= " ".join(S)print(v)

C:\python35\python3.exe D:/pyproject/day11數(shù)據(jù)類型的方法/str-way.py

我 愛 學(xué) 習(xí)

S = "我愛學(xué)習(xí)"v= "_".join(S)print(v)

C:\python35\python3.exe D:/pyproject/day11數(shù)據(jù)類型的方法/str-way.py

我_愛_學(xué)_習(xí)

25.ljust(self, width, fillchar=None) left 左對齊

給字符串一個(gè)寬度,使字符串左對齊,右邊用指定的字符填滿,默認(rèn)是空格

Return S left-justified in a Unicode string of length width. Padding is

done using the specified fill (使什么填滿)character

(default is a space).

S = "woaini"v= S.ljust(20)print(v

C:\python35\python3.exe D:/pyproject/day11數(shù)據(jù)類型的方法/str-way.py

woaini

用*來填充空白處

S = "woaini"v= S.ljust(20,'*')print(v)

C:\python35\python3.exe D:/pyproject/day11數(shù)據(jù)類型的方法/str-way.py

woaini**************

26.rjust right 右對齊

S = "woaini"v= S.rjust(20)print(v)

C:\python35\python3.exe D:/pyproject/day11數(shù)據(jù)類型的方法/str-way.py

woaini

用*來填充空白處

S = "woaini"v= S.rjust(20,'*')print(v)

C:\python35\python3.exe D:/pyproject/day11數(shù)據(jù)類型的方法/str-way.py**************woaini

27.lower

使字符串變成小寫

S = "GouGuoQi"v=S.lower()print(v)

C:\python35\python3.exe D:/pyproject/day11數(shù)據(jù)類型的方法/str-way.py

gouguoqi

28.upper使字符串變成大寫

S = "gouguoqi"v=S.upper()print(v)

C:\python35\python3.exe D:/pyproject/day11數(shù)據(jù)類型的方法/str-way.py

GOUGUOQI

29. lstrip 去除字符左邊的空格(包括\t \n),還可以去除指定的字符串

移除指定字符的時(shí)候,按照字符最多匹配

也叫按照最長公共子序列匹配,什么是最長公共子序列

beiye

woaiye iye就是最長公共子序列

Return a copy of the string S with leading whitespace removed.

If chars is given and not None, remove characters in chars instead.

given 指定的

S = "gouguoqi"v=S.lstrip()print(v)

C:\python35\python3.exe D:/pyproject/day11數(shù)據(jù)類型的方法/str-way.py

gouguoqi

去除左邊的g

S = "gouguoqi"v= S.lstrip('g')print(v)

C:\python35\python3.exe D:/pyproject/day11數(shù)據(jù)類型的方法/str-way.py

ouguoqi

30.rstrip 去除字符串右邊的空格 (包括\t \n)還可以去除指定的字符串

S = "gouguoqi"v=S.rstrip()print(v)

C:\python35\python3.exe D:/pyproject/day11數(shù)據(jù)類型的方法/str-way.py

gouguoqi

去除右邊的qi

S = "gouguoqi"v= S.rstrip('qi')print(v)

C:\python35\python3.exe D:/pyproject/day11數(shù)據(jù)類型的方法/str-way.py

gouguo

31.strip *****重要

去除字符串左右兩邊的空格(包括\t \n)還可以去除指定的字符串

S = "goug uoqi"v=S.strip()print(v)

C:\python35\python3.exe D:/pyproject/day11數(shù)據(jù)類型的方法/str-way.py

goug uoqi

去除開頭和結(jié)尾

S= "gouguoqi"v= S.strip('goi')print(v)

C:\python35\python3.exe D:/pyproject/day11數(shù)據(jù)類型的方法/str-way.py

uguoq

32.maketrans(self, *args, **kwargs)

33.translate(self, table)

32和33是一起用的,首先得創(chuàng)建一個(gè)對應(yīng)關(guān)系

S1和S的字符是一一對應(yīng)的

v是定義了一個(gè)字符串的變量

m是創(chuàng)建了一個(gè)對應(yīng)關(guān)系

n是v這個(gè)變量用translate的這個(gè)方法,以對應(yīng)關(guān)系是("aeiou","12345")進(jìn)行替換

意思是字符串中的a會(huì)用1替換,e會(huì)用2替換,i會(huì)用3替換,o用4替換,u用5替換

#S = "aeiou"#S1 = "12345"

v = "asdfifkjsedfkom,s.u.sdfasdfa"m= str.maketrans("aeiou","12345")

n=v.translate(m)print(n)

C:\python35\python3.exe D:/pyproject/day11數(shù)據(jù)類型的方法/str-way.py

1sdf3fkjs2dfk4m,s.5.sdf1sdf1

34. partition(self, sep) [pɑ:?t??n] 分割,分開 *****(會(huì)用到)

用指定的字符分割,找到第一個(gè)指定的分割字符之后就不再繼續(xù)找了,直接把字符串分成3部分,第二部分是分割字符本身,剩下的就是一組,開頭是一組,這個(gè)方法只能把字符串分割成3份

S = "tesdfsffgbnhjjsghj"v= S.partition('s')print(v)

C:\python35\python3.exe D:/pyproject/day11數(shù)據(jù)類型的方法/str-way.py

('te', 's', 'dfsffgbnhjjsghj')

35. rpartition 從字符串右邊開始以指定的字符分割符進(jìn)行分割

也是只能分割成3份

S = "tesdfsffgbnhjjsghj"

#v = S.partition('s')#print (v)

v1 = S.rpartition('s')print(v1)

C:\python35\python3.exe D:/pyproject/day11數(shù)據(jù)類型的方法/str-way.py

('tesdfsffgbnhjj', 's', 'ghj')

36.split [spl?t] 分裂 分開 *****重要

不加參數(shù)默認(rèn)是以指定的分割字符分割成n份,但是不顯示分割字符

S = "tesdfsffgbnhjjsghj"v2= S.split('s')print(v2)

C:\python35\python3.exe D:/pyproject/day11數(shù)據(jù)類型的方法/str-way.py

['te', 'df', 'ffgbnhjj', 'ghj']

加了一個(gè)參數(shù)2,代表以s這個(gè)字符為分隔符,進(jìn)行分割2次操作,后面就不分割了

如果是3的話,就是分割3次,后面就不分割了

S = "tesdfsffgbnhjjsghj"v2= S.split('s',2)print(v2)

C:\python35\python3.exe D:/pyproject/day11數(shù)據(jù)類型的方法/str-way.py

['te', 'df', 'ffgbnhjjsghj']

37. rsplit 從字符串右邊開始,以指定的分割字符串進(jìn)行分割,不加參數(shù)默認(rèn)是以指定的分割字符分割成n份,但是不顯示分割字符,跟split用法一致,只不過這個(gè)是從右邊開始

S = "tesdfsffgbnhjjsghj"v3= S.rsplit('s',2)print(v3)

C:\python35\python3.exe D:/pyproject/day11數(shù)據(jù)類型的方法/str-way.py

['tesdf', 'ffgbnhjj', 'ghj']

正則表達(dá)式也可以進(jìn)行分割,可以自己設(shè)置是否想要顯示分割字符,自己來定的

正則表達(dá)式是partiton和split的這2個(gè)方法的功能合集

比如要計(jì)算一大堆運(yùn)算的結(jié)果

9*7/5+9-9/3*1

先拿2個(gè)做例子吧

9*7

如果我用partition這個(gè)方法進(jìn)行分割,得到的結(jié)果是

9 * 7

如果我用split這個(gè)方法進(jìn)行分割,得到的結(jié)果是

9 7

38. splitlines 以換行為分割符進(jìn)行分割,默認(rèn)參數(shù)是False,True參數(shù)代表保留換行符

Return a list of the lines in S, breaking at line boundaries.

Line breaks are not included in the resulting list unless keepends

is given and true

S = "sdfggh\nqe\nedd"v=S.splitlines()print(v,)

C:\python35\python3.exe D:/pyproject/day11數(shù)據(jù)類型的方法/str-way.py

['sdfggh', 'qe', 'edd']

S = "sdfggh\nqe\nedd"v=S.splitlines(True)print(v,)

C:\python35\python3.exe D:/pyproject/day11數(shù)據(jù)類型的方法/str-way.py

['sdfggh\n', 'qe\n', 'edd']

39. swapcase(self)

把大寫變小寫,把小寫變大寫

Return a copy of S with uppercase(大寫) characters converted to lowercase(小寫)

and vice versa

S = "GOUguoQI"v=S.swapcase()print(v)

C:\python35\python3.exe D:/pyproject/day11數(shù)據(jù)類型的方法/str-way.py

gouGUOqi

40. replace(self, old, new, count=None) 替換 *****重要

S = "gouguoqi"v= S.replace('o','n')print(v)

C:\python35\python3.exe D:/pyproject/day11數(shù)據(jù)類型的方法/str-way.py

gnugunqi

后面加參數(shù)1,表示替換1個(gè),2,表示只替換2個(gè),3,表示只替換3個(gè)

S = "gouguoqi"v= S.replace('o','n',1)print(v)

C:\python35\python3.exe D:/pyproject/day11數(shù)據(jù)類型的方法/str-way.py

gnuguoqi

#######################################灰魔法--開始#############################

1.索引,下標(biāo),獲取字符串中的某一個(gè)字符,0為第一個(gè)字符串

S = "beiy"v=S[0]print(v)

C:\python35\python3.exe D:/pyproject/day11數(shù)據(jù)類型的方法/str-way.py

b

2.獲取一個(gè)范圍內(nèi)的字符串叫:切片

S = "beiy"v= S[0:2] 這個(gè)范圍是大于等于0小于2print(v)

C:\python35\python3.exe D:/pyproject/day11數(shù)據(jù)類型的方法/str-way.py

be

S = "beiy"v= S[0:-1] -1代表字符串的結(jié)尾print(v)

C:\python35\python3.exe D:/pyproject/day11數(shù)據(jù)類型的方法/str-way.py

bei

3.len 獲取字符串由幾個(gè)字符組成

S = "beiye"v=len(S)print(v)

C:\python35\python3.exe D:/pyproject/day11數(shù)據(jù)類型的方法/str-way.py5

在python2.7里面中文拿到的結(jié)果就不是下面的3了

S = "苗經(jīng)理"v=len(S)print(v)

C:\python35\python3.exe D:/pyproject/day11數(shù)據(jù)類型的方法/str-way.py3

如果想讓字符串一個(gè)一個(gè)的輸出該怎么寫,用我們之前學(xué)過的就是可以用while來寫

test = "北爺沖我來"index=0while index

v=test[index]print(v)

index+=1

print ('####end####')

C:\python35\python3.exe D:/pyproject/day11數(shù)據(jù)類型的方法/str-way.py

來####end####

4.for循環(huán)就更簡單了

test = "北爺沖我來"

for n in(test):print(n)

C:\python35\python3.exe D:/pyproject/day11數(shù)據(jù)類型的方法/str-way.py

break結(jié)束當(dāng)前循環(huán)

test = "北爺沖我來"

for n in(test):print(n)breakC:\python35\python3.exe D:/pyproject/day11數(shù)據(jù)類型的方法/str-way.py

continue 滿足條件后不繼續(xù)往下,回到for開始繼續(xù)循環(huán),然后又滿足條件了,又回去繼續(xù)循環(huán),所以print n 永遠(yuǎn)打印不出來,直到循環(huán)結(jié)束也不會(huì)執(zhí)行continue下面的print,也就是終止當(dāng)前循環(huán),開始下一次循環(huán)

test = "北爺沖我來"

forn in(test):

continueprint

(n)

C:\python35\python3.exe D:/pyproject/day11數(shù)據(jù)類型的方法/str-way.py

5.range 創(chuàng)建連續(xù)的數(shù)字,也可以通過指定步長創(chuàng)建不連續(xù)的數(shù)字

在python2.7里面,range可以直接幫我們打印出來范圍內(nèi)的數(shù)字,這個(gè)就有缺點(diǎn)了,比如我打印出來1萬個(gè)數(shù)字,它得先把一萬個(gè)數(shù)字打印出來,這個(gè)時(shí)候我們得等著了。并且占用很多內(nèi)存

在python2.7中有一個(gè)xrange跟python中的range效果是一樣的,python3中,直接就保留了range這一種了,相當(dāng)于優(yōu)化升級了

在python3里面,range創(chuàng)建之后,并不會(huì)把這些數(shù)字打印出來,而是在什么時(shí)候調(diào)用的時(shí)候才去一個(gè)一個(gè)的打印,比如我for循環(huán)調(diào)用的時(shí)候才會(huì)挨個(gè)打印,這樣就省內(nèi)存了

v = range(10)print(v)for n in(v):print(n)

C:\python35\python3.exe D:/pyproject/day11數(shù)據(jù)類型的方法/str-way.py

range(0,10)

01

2

3

4

5

6

7

8

9

range的范圍是大于等于左邊的數(shù)字,小于右邊的數(shù)字,后面可以加參數(shù)指定“步長”,步長就是幾個(gè)位置算一步(是一組),下面的10,31就是指的大于等于10,小于31的里面的數(shù)字,5就是步長

v = range(10,31,5)print(v)for n in(v):print(n)

C:\python35\python3.exe D:/pyproject/day11數(shù)據(jù)類型的方法/str-way.py

range(10, 31, 5)10

15

20

25

30

把數(shù)字按照倒敘排列

S = range(10,0,-1)for n inS:print(n)

C:\python35\python3.exe D:/pyproject/day11數(shù)據(jù)類型的方法/str-way.py10

9

8

7

6

5

4

3

2

1

練習(xí):讓用戶輸入一堆字符串,我們最終打印出來每個(gè)字符串的下標(biāo)和源每個(gè)字符串

S = input('>>>>')

n=len(S) 獲取字符串的長度

m=range(n)for item inm:print(item,S[item])

C:\python35\python3.exe D:/pyproject/day11數(shù)據(jù)類型的方法/str-way.py>>>>asd

0 a1s2 d

我們在簡化一下就是

S = input('>>>>')for item inrange(len(S)):print(item,S[item])

C:\python35\python3.exe D:/pyproject/day11數(shù)據(jù)類型的方法/str-way.py>>>>ert

0 e1r2 t

第二種寫法

a = input("請輸入>>>>")

c=0for n ina:print(c,n)

c+=1

C:\python35\python3.exe D:/pyproject/day11數(shù)據(jù)類型的方法/str-way.py

請輸入>>>>我是

0 我

1 是

7.字符串里面的in操作,判斷字符是否在字符串中

S = "abcdef"v= "b" inSprint(v)

C:\python35\python3.exe D:/pyproject/day12列表/dict-way.py

True

###################灰魔法------結(jié)束####################在其他的數(shù)據(jù)類型里面都能用

isidentifier(self) [a??dent?fa??(r)] 標(biāo)識符

Return True if S is a valid identifier according

to the language definition

字母、數(shù)字、下劃線

只要符合這3個(gè)條件就是標(biāo)識符,如果寫上def class 只要符合標(biāo)識符的規(guī)則,我們就認(rèn)為真

S = "_123"v=S.isidentifier()print(v)

C:\python35\python3.exe D:/pyproject/day11數(shù)據(jù)類型的方法/str-way.py

True

S= "123"v=S.isidentifier()print(v)

C:\python35\python3.exe D:/pyproject/day11數(shù)據(jù)類型的方法/str-way.py

False

S= "sdfsdf"v=S.isidentifier()print(v)

C:\python35\python3.exe D:/pyproject/day11數(shù)據(jù)類型的方法/str-way.py

True

expandtabs(self, tabsize=8) 這個(gè)可以做(表格對齊)

表示默認(rèn)以8位一組為分割,如果這8位里面包含了\t,不夠的話\t就用幾個(gè)空格補(bǔ)齊,下面的例子就是

lp234567oiutr0987hggtsjjs

因?yàn)槟J(rèn)是8位一組,lp占了2位了所以\t就得用6個(gè)空格補(bǔ)全,234567就代表空格

Return a copy of S where all tab characters are expanded using spaces.

If tabsize is not given, a tab size of 8 characters is assumed

S = "lp\toiutr0987hggtsjjs"v=S.expandtabs()print(v)

C:\python35\python3.exe D:/pyproject/day11數(shù)據(jù)類型的方法/str-way.py

lp oiutr0987hggtsjjs

因?yàn)榍懊嬲檬?位,后面\t自己就占8位,也是8個(gè)空格

S= "lpoiutr0\t987hggtsjjs"v=S.expandtabs()print(v)

lpoiutr0 987hggtsjjs

再看下面這個(gè),前8位是黃色,后面是四位加一個(gè)\t因?yàn)槭?位一組,所以就用4個(gè)空格補(bǔ)齊了

S = "lpoiutr0987h\tggtsjjs"v=S.expandtabs()print(v)

C:\python35\python3.exe D:/pyproject/day11數(shù)據(jù)類型的方法/str-way.py

lpoiutr0987h ggtsjjs

下面我們指定一下 以6位為單位分割

黃色是6個(gè),綠色是6個(gè),所以后面的\t自己就占6位

S = "lpoiutr0987h\tggtsjjs"v= S.expandtabs(6)print(v)

C:\python35\python3.exe D:/pyproject/day11數(shù)據(jù)類型的方法/str-way.py

lpoiutr0987h ggtsjjs

遇到\t是一組,因?yàn)橹付?位一組,lp只占2位,所以\t就是用四個(gè)空格補(bǔ)齊

S = "lp\toiutr0987hggtsjjs"v= S.expandtabs(6)print(v)

C:\python35\python3.exe D:/pyproject/day11數(shù)據(jù)類型的方法/str-way.py

lp oiutr0987hggtsjjs

第一組黃色,第二組綠色,都是6位一組,第三組hgg占用了3位,所以\t就是用3個(gè)空格補(bǔ)齊

S = "lptoiutr0987hgg\ttsjjs"v= S.expandtabs(6)print(v)

C:\python35\python3.exe D:/pyproject/day11數(shù)據(jù)類型的方法/str-way.py

lptoiutr0987hgg tsjjs

用expandtabs這個(gè)方法做個(gè)表格

S = "username\temail\tpasswd\ngouguoqi\t564039852@qq.com\t123456\nbeiye\t564039852@qq.com\t123456\nmiaoye\t564039852@qq.com\t123456"v= S.expandtabs(20)print(v)

C:\python35\python3.exe D:/pyproject/day11數(shù)據(jù)類型的方法/str-way.py

username email passwd

gouguoqi564039852@qq.com 123456beiye564039852@qq.com 123456miaoye564039852@qq.com 123456

總結(jié)

以上是生活随笔為你收集整理的python中str是什么_python的str()字符串类型的方法详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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