Python基礎【day02】:字符串(四)

在Python中字符串本身有帶很多操作,字符串的特性,不可以被修改

0、字符串常用功能匯總

1、字符串的定義

#定義空字符串
>>> name=''
#定義非空字符串 >>> name="luoahong"
#通過下標訪問 >>> name[1] 'u'
#不能修改字符串的值,否則會報錯 >>> name[2] = "3" Traceback (most recent call last):File "<stdin>", line 1, in <module> TypeError: 'str' object does not support item assignment

  特別提醒:字符串如果修改的話,字符串所在的內存地址也跟著變化,所以不可被修改,但是對于列表來說,可以修改是因為列表的內存是不變的,可以直接在上面修改

2、切片

特別提醒:字符串其實和列表,元組一樣,也是可以切片的

>>> name="ahong luo"
>>> name[1:4]  #取1到4之間的字符,包括1,不包括4
'hon'
>>> name[1:-1]  #取1到-1之間的字符,包括1,不包括-1
'hong lu'
>>> name[0:3] 
'aho'
>>> name[:3]   #從頭開始取,0可以省略,效果等同于name[0:3]
'aho'
>>> name[3:]   #想取到最后一個值,必須不能寫-1,只能這么寫
'ng luo'
>>> name[0::2]  #后面的2表示:每隔一個字符就取一個
'aoglo'
>>> name[::2]   #從頭開始0可以省略,效果跟上一句一樣
'aoglo'

3、首字母大寫(capitalize())

>>> name="ahong luo"
>>> name.capitalize()
'Ahong luo'
>>>

4、統計(count(sub,start=None,end=None))

sub:統計的字符,start:開始位,end:結束位,start和end默認為空時,則表示全部字符中去統計

>>> name="ahong luo"
#有開始和結束符

>>> name.count("o",1,5) 1
#從整個字符串中統計字符 >>> name.count("o")
2 >>>

5、center(width,fillchar)

如果width(字符寬度)小于等于(<=)字符串的長度,則返回原字符串,如果大于(>)字符串的,則用fillchar(填滿字符)填滿,處理結果等于width,字符串位于fillchar的中間

>>> name="ahong luo"
>>> len(name)
9
#10小于等于字符串寬度 >>> name.center(12,'-') '-ahong luo--'
#50大于字符串長度,并且字符串位于填充字符的中間 >>> name.center(50,'-') '--------------------ahong luo---------------------' >>> len(name.center(50,'-')) 50

6、ljust(width,fillchar)

如果字符串的長度大于width(字符寬度),則返回原字符串,如果小于width,則用fillchar(填滿字符)填滿,處理結果等于width,fillchar位于字符串的最右邊

>>> name="ahong luo"
>>> len(name)
9
#小于等于字符串的長度 >>> name.ljust(8,'-') 'ahong luo'
#大于字符串的長度 >>> name.ljust(50,'-') 'ahong luo-----------------------------------------'

?特別提醒:ljust中的l表示left的意思,表示從右向左

7.rjust(width,fillchar)

如果字符串的長度大于width(字符寬度),則返回原字符串,如果小于width,則用fillchar(填滿字符)填滿,處理結果等于width,fillchar位于字符串的最左邊

>>> name="ahong luo"
>>> len(name) 9 >>> name.rjust(8,'-') 'ahong luo' >>> name.rjust(50,'-') '-----------------------------------------ahong luo' 

?特別提醒:ljust中的l表示left的意思,表示從左向右

8、編碼(encode)

字符串的編碼和解碼,在這邊不用說了,我專門寫了一篇博客,詳細地址:猛擊這里

9、endwith(suffix,start=None,end=None)

判斷是否已suffix結尾,是返回True,否返回Fales

suffix:表示字符,start:開始位,end:結束位,start和end默認為空是,表示從整個字符串的結尾去判斷>>> name="ahong luo"

>>> name.endswith('0',1,4)
False
>>> name.endswith('o') True >>> name.endswith('o',1,4) False

10、find(sub,start=None,end=None)

全文查找sub中第一個字符所在整個字符串中的索引值,沒有找到則返回-1

sub:字符或者字符串,start:開始位,end:結束位,start和end默認為空時,則在整個字符串中查找

>>> name="ahong luo"

#沒找到,則返回-1 >>> name.find("lu",1,4) -1 >>> name.find("a",2) -1 >>> name.find("lu") 6 >>> name.find("lu",1,6) -1 >>> name.find("lu",1,10) 6 >>>

11、rfind(sub,start=None,end=None)

從左向右查找sub中第一個字符所在整個字符串中的索引值,沒有找到則返回-1

>>> name="ahong luo"
#找到 >>> name.rfind("a") 0
#未找到 >>> name.rfind("a",2) -1

12、format()

①關鍵字拼接也是官方推薦1
2
3
4
5
6
7
8
9
name = "alex"
age = 18info = '''----info-----
name:{_name}
age:{_age}'''.format(_name=name,_age=age)print(info)②占位符拼接1
2
3
4
5
6
7
8
9
name = "alex"
age = 18info = '''----info-----
name:{0}
age:{1}'''.format(name,age)print(info)

13、format_map()

數據格式,以字典形式傳入

>>> name="name:{name},age:{age}"
>>> name.format_map({"name":"luoahong",'age':23})
#輸出結果 'name:luoahong,age:23'

14、isalnum()

是否是一個阿拉伯數字和字母,它包含因為英文字符+(1-9)數字,中間不能有特殊字符

>>> age='23'
>>> age.isalnum()
True
#有特殊字符的 >>> age='ab23' >>> age='ab' >>> age.isalnum() True >>> age='ab' >>> age.isalpha() True >>>

15、isalpha()

是否是一個純的英文字符,包含大寫

1
2
3
4
5
6
7
8
9
10
11
>>> age?=?'ab'
>>> age.isalpha()
True
#夾著數字
>>> age?=?'ab23'
>>> age.isalpha()
False
#大寫
>>> age?=?'Ab'
>>> age.isalpha()
True

?16、isdigit()

判斷是否是一個整數

17、isspace()

判斷是否是一個空格

1
2
3
4
5
6
7
8
#不是空格
>>> age?=?' age'
>>> age.isspace()
False
#是空格
>>> age?=?' '
>>> age.isspace()
True

?18、istitle()

?是否是一個標題(字符串中的每個單子首字母大寫)

#每個單詞的首字母是小寫
>>> name="luoahong" >>> name.istitle() False >>> name="luo a hong" >>> name.istitle() False
#每個單詞的首字母大寫 >>> name="Luo A Hong" >>> name.istitle() True >>> name="Luoahong" >>> name.istitle() True 

19、isupper()

是否是大寫,注意字符串必須全部是大寫才會返回True,否則返回False

#全部大寫
>>> name="LUO" >>> name.isupper() True
#小寫 >>> name="Luo" >>> name.isupper() False >>>

?20、join()

序列用某個字符拼接成一個字符串,注意的是,序列的元素必須是str類型

1
2
3
>>> a?=?['1','2','3']
>>>?'+'.join(a)
'1+2+3'

?21、lower()

字符串中的大寫字母轉換為小寫字母

>>> name="LuoAHong"
>>> name.lower()
'luoahong'
>>>

?22、upper()

字符串中的小寫字母轉換為大寫字母

>>> name="LuoAHong"
>>> name.upper()
'LUOAHONG'

?23、strip()

去掉左右兩邊的空格(space)和回車(\n)

>>> name= " \n luoahong \n"
>>> name.strip()
'luoahong'

?24、lstrip()

刪掉左邊到右的空格(space)和回車(\n)

>>> name= " \n luoahong \n"
>>> name.lstrip()
'luoahong \n'

?25、rstrip()

刪掉右邊到左邊的空格(space)和回車(\n)

>>> name= " \n luoahong \n"
>>> name.rstrip()
' \n luoahong'

至此,方法前有l(left)和r(right)的函數,都是對之前函數的一個擴展,帶l的表示至始至終從右到左操作,記住左邊才是最終目的地,而帶r的至始至終都是從左到右,因為右邊才是它的終極目標

26、split()

分割函數,默認是以空格分割(space)生成一個列表,如果其他字符分割,輸入其他字符參數

>>> name="ahong luo"
#默認為空,按空格分割 >>> name.split() ['ahong', 'luo'] >>> name="ahong+luo"
#以"+"字符分割
>>> name.split("+") ['ahong', 'luo']
#以'\n'分割 >>> name="ahong\nluo" >>> name.split("\n") ['ahong', 'luo']

?27、splitlines()

以換行符分割,這個一般在windows上開發,移到Linux上執行,或者在Linux上開發,移到Windows上執行,因為換行在windows上是"\r\n",linux上是'\n'

>>> name="ahong\nluo"
>>> name.splitlines()
['ahong', 'luo']

?28、swapcase()

把大寫換成小寫,把小寫換成大寫

>>> name="Luo"
>>> name.swapcase()
'lUO'

29、startswith(prefix, start=None,end=None)

判斷是否以prefix開始,是返回True,否返回Fales

prefix:表示字符或者字符或者字符串,start:開始位,end:結束位,start和end默認為空是,表示從整個字符串的結尾去判斷

>>> name="ahong luo"
>>> name.startswith("luo")  #開頭找到"luo"字符串
False
>>> name.startswith("h",3,5)  #在索引3到5之間沒有找到以字符'h'開頭
False 

30、replace(old,new[,?max])

old:將被替換的子字符串; new:新字符串,用于替換old子字符串;max:可選字符串, 替換不超過 max 次

>>> name="wo shi luo a hong"
>>> name.replace("shi","bushi")
'wo bushi luo a hong'
#原字符串沒有改變 >>> name.replace("shi","bushi",0) 'wo shi luo a hong' >>> name.replace("shi","bushi",1) 'wo bushi luo a hong'

31、zfill(width)

字符的長度是否大于等于(>=)with,如果比width小,則在字符串錢用0填充,如果>=width,則返回原字符串

>>> name="luoahong"
>>> len(name)
8
#width大于字符串長度 >>> name.zfill(11) '000luoahong'
#width小于等于字符串長度 >>> name.zfill(8) 'luoahong' >>>

  

  

轉載于:https://www.cnblogs.com/luoahong/p/7171938.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/369995.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/369995.shtml
英文地址,請注明出處:http://en.pswp.cn/news/369995.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

cryptojs vue 使用_VueJs里利用CryptoJs實現加密及解密

第一步 安裝安裝crypto-js第二步 創建在js文件目錄下創建一個js文件secret/*** 對頁面上輸入的密碼進行加密傳輸給后臺進行驗證&#xff0c;對返回的數據進行解密&#xff0c;在頁面展示*/let CryptoJS require(crypto-js); // 引入AES源碼jsexport default {/** 對密碼進行加…

html5 窗口變形,HTML5畫布(變形)

坐標變換案例1&#xff1a;function draw(){var cdocument.getElementById("myCanvas");var cxt c.getContext("2d");cxt.translate(200,50);cxt.fillStylergba(255,0,0,0.25);for(var i0;i<40;i){cxt.translate(25,25);cxt.scale(0.9,0.9);cxt.rotate(…

appium GUI介紹

Appium作為APP端的自動化測試工具&#xff0c;具有很多的有點&#xff0c;今天主要介紹一下它的UI界面&#xff0c;包含其中的一些參數等。主要說的是windows下的APPIUM GUI。 先看一眼它的界面(版本為1.4.16.1) 注: 1.android Settings - Android設置按鈕&#xff0c;所有和安…

迭代器模式和Java

大家好&#xff0c;在本文中&#xff0c;我們將檢查Iterator Pattern 。 我知道你們中許多人已經使用過一種設計模式&#xff0c;但是也許您沒有意識到它是模式&#xff0c;或者不知道它的巨大價值。 根據《 Head First Design 》一書&#xff1a; 迭代器模式提供了一種在不暴…

不使用JavaScript實現菜單的打開和關閉

我在寫有菜單欄的網頁時&#xff0c;基本都會用響應式設計來適配移動端&#xff0c;例如把不重要的菜單選項隱藏&#xff0c;或者創建一個菜單按鈕來控制的菜單的打開和關閉之類的。而我之前一直是使用JavaScript來實現菜單的打開和關閉的&#xff0c;但最近在網上看到有人使用…

負載均衡的幾種方式

&#xff08;1&#xff09;HTTP重定向負載均衡。 這種負載均衡方案的優點是比較簡單&#xff0c;缺點是瀏覽器需要每次請求兩次服務器才能拿完成一次訪問&#xff0c;性能較差。&#xff08;2&#xff09;DNS域名解析負載均衡。 DNS域名解析負載均衡的優點是將負載均衡工作交給…

芝枝.計算機與人文科學,計算機與人文科學

計算機與人文科學(2013-03-13 13:24:17)標簽&#xff1a;文化戰爭名著《靜靜的頓河》可以說從它誕生起便沒有平靜過&#xff0c;圍繞它的作者所引起的爭議&#xff0c;就像它獲得諾貝爾文學獎一樣&#xff0c;撼動文壇&#xff0c;有人指控肖洛霍夫是個騙子&#xff0c;《靜靜的…

rto初始化和計算_TCP系列13—重傳—3、協議中RTO計算和RTO定時器維護

從上一篇示例中我們可以看到在TCP中有一個重要的過程就是決定何時進行超時重傳&#xff0c;也就是RTO的計算更新。由于網絡狀況可能會受到路由變化、網絡負載等因素的影響&#xff0c;因此RTO也必須跟隨網絡狀況動態更新。如果TCP過早重傳&#xff0c;則可能會向網絡中注入很多…

在Java 8 Lambda上使用Apache Commons Functor功能接口

Apache Commons Functor &#xff08;以下稱為[functor]&#xff09;是一個Apache Commons組件&#xff0c;它提供功能性的編程API和已實現的幾種模式&#xff08;訪問者&#xff0c;生成器&#xff0c;聚合器等&#xff09;。 Java 8具有幾個不錯的新功能&#xff0c;包括lamb…

HTML5 Canvas游戲開發實戰 PDF掃描版

HTML5 Canvas游戲開發實戰主要講解使用HTML5 Canvas來開發和設計各類常見游戲的思路和技巧&#xff0c;在介紹HTML5 Canvas相關特性的同時&#xff0c;還通過游戲開發實例深入剖析了其內在原理&#xff0c;讓讀者不僅知其然&#xff0c;而且知其所以然。在本書中&#xff0c;除…

多線程之創建線程

在Java中&#xff0c;線程能區分兩種不同類型的線程&#xff1a;前臺線程和后臺線程。這兩者的區別就是&#xff1a;應用程序必須運行完所有的前臺線程才可以退出&#xff1b;而對于后臺線程&#xff0c;應用程序則可以不考慮其是否已經運行完畢而直接退出&#xff0c;所有的后…

阿 Q 的停車場

問題描述 剛拿到駕照的 KJ 總喜歡開著車到處兜風&#xff0c;玩完了再把車停到阿 Q 的停車場里&#xff0c;雖然 她對自己停車的水平很有信心&#xff0c;但她還是不放心其他人的停車水平&#xff0c;尤其是 Kelukin。于是&#xff0c; 她每次都把自己的愛車停在距離其它車最遠…

css3圖片垂直居中

圖片相對父元素垂直居中, css3屬性給父級元素設置 display: -webkit-box; -moz-box-align: center; -webkit-box-align: center; -moz-box-pack: center; -webkit-box-pack: center; 需要注意的是&#xff1a; 父級元素要有確定的高度&#xff01;

聲明式的理解【gpt】

一 MyBatis采用了聲明式語法來進行SQL映射配置【mybatis聲明式】 MyBatis是一款優秀的持久層框架&#xff0c;支持自定義SQL、存儲過程以及高級映射&#xff0c;使得開發人員能夠專注于SQL本身而不是數據庫訪問。MyBatis提供了兩種配置方式&#xff1a;XML配置和注解配置&…

網絡局域網看不到其它計算機,局域網中看不到其它計算機怎么辦

通過網上鄰居或查看網絡計算機時&#xff0c;看不到局域網中其它計算機&#xff0c;這是怎么回事呢?下面是學習啦小編給大家整理的一些有關看不到局域網中其它計算機的解決方法&#xff0c;希望對大家有幫助!局域網中看不到其它計算機的解決方法打開“控制面板”-“網絡和Inte…

iconfont 圖標轉為字體_iconfont字體圖標的使用方法--超簡單!

我之前因為項目用bootstrap比較多,所以使用font awesome字體圖標比較多,后來接觸到了iconfont,發現想要的什么圖標都有,還可以自定義圖標,非常強大!之前看了一波教程,覺得繁瑣,自己弄明白后感覺如此簡單,做了這么個簡單教程,直接上圖,簡單粗暴,避免新手走彎路,這里講解的默認是…

一罐來統治所有人

跳下內存通道 早在1998年&#xff0c;當我是一名C / C 開發人員時&#xff0c;嘗試使用Java時&#xff0c;有關該語言的一些內容對我來說就顯得有些惱火了。 我記得很擔心這些 為什么沒有合適的編輯器呢&#xff1f; C / C 有很多。 我為Java擁有的只是舊的記事本。 當我想要…

Django集合Ueditor

語言版本環境&#xff1a;python3.6 1、win安裝步驟&#xff1a; 1 git下載源碼https://github.com/zhangfisher/DjangoUeditor 2 解壓DjangoUeditor3-master.tar 3 cd C:\Users\fj\Desktop\DjangoUeditor3-master 4 python setup.py install 官方建議使用pip install Djang…

計算機二級高級應用考題,2016計算機二級MSOFFICE高級應用考試真題

2016計算機二級MSOFFICE高級應用考試真題離2016上半年的計算機等級考試只有一個多月了&#xff0c;為了幫助大家盡快考試過關&#xff0c;小編整理了計算機二級office考試題&#xff0c;希望能幫助到大家!(1)下列敘述中正確的是A)一個算法的空間復雜度大&#xff0c;則其時間復…

ANTLR –語義謂詞

用antlr解析簡單的語法很簡單 。 您要做的就是使用正則表達式描述您的語言&#xff0c;并讓antlr生成詞法分析器和解析器。 解析大型或復雜的語言有時會需要更多&#xff0c;因為僅使用正則表達式描述它們是困難的&#xff0c;甚至是不可能的。 語義謂詞是在語法內部編寫的Jav…