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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

[Python学习] 模块三.基本字符串

發(fā)布時間:2023/12/10 python 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [Python学习] 模块三.基本字符串 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

??????? 于Python最重要的數(shù)據(jù)類型包含字符串、名單、元組和字典.本文重點介紹Python基礎(chǔ)知識.

一.字符串基礎(chǔ)

??????? 字符串指一有序的字符序列集合,用單引號、雙引號、三重(單雙均可)引號引起來.如:
??????? s1='www.csdn.net'?? s2="www.csdn.net"???s3='''aaabbb'''
????????當中字符串又包含:
??????? 1.轉(zhuǎn)義字符串
??????? 像C語言中定義了一些字母前加"\"來表示常見的那些不能顯示的ASCII字符,python也有轉(zhuǎn)義字符.例如以下:
??????????????? \\-反斜杠符號 ??\'-單引號? ?\"-雙引號 ?\ a-響鈴? ?\b-退格(Backspace)?
??????????????? \n-換行? ?\r-回車?? \f-換頁? ?\v-縱向制表符? ?\t-橫向制表符? ?\e-轉(zhuǎn)義
??????????????? \000-空? ?\oyy-八進制數(shù)yy代表的字符 ? \xyy-十進制yy代表的字符
??????? 2.raw字符串
??????? Python中原始字符串(raw strings),r關(guān)閉轉(zhuǎn)義機制.告訴Python后面是連串,"\"不當轉(zhuǎn)義字符處理.例:

#轉(zhuǎn)義字符和raw字符 s1="aa\nbb" print s1 s2=r"aa\nbb" print s2#輸出 aa bb aa\nbb#raw原始字符串處理磁盤路徑 open(r'C:\temp\test.txt','a+') open('C:\\temp\\test.txt','a+')

??????? 3.unicode字符串
????????告訴Python是Unicode編碼,Unicode(統(tǒng)一碼、萬國碼)是一種在計算機上使用的字符編碼.在Unicode之前用的都是ASCII碼,Unicode通過使用一個或者多個字節(jié)來表示一個字符.Python里面默認全部字面上的字符串都用ASCII編碼,能夠通過在字符串前面加一個'u'前綴的方式聲明Unicode字符串,這個'u'前綴告訴Python后面的字符串要編成Unicode字符串.例:s=u'aa\nbb'
??????? 中文處理一直非常讓人頭疼,推薦:Unicode和Python的中文處理
??????? 4.格式化字符串
??????? 字符串格式化功能使用字符串格式化操作符%(百分號)實現(xiàn),在%的左側(cè)放置一個字符串(格式化字符串),而右側(cè)放置希望格式化的值,也但是元組和字典.假設須要在字符串里包含百分號,使用%%.假設右側(cè)是元組的話,則當中每個元素都會被單獨格式化,每個值都相應一個轉(zhuǎn)化說明符.例:
??????? "your age %d,sex %s,record %f"%(28,"Male",78.5)
??????? 輸出:'your age 28,sex Male,record 78.500000'
???????
它有點類似于C語言的printf("%d",x),當中百分號%相當于C語言的逗號.當中字符串格式化轉(zhuǎn)換類型例如以下:
??????????????? d,i? 帶符號的十進制整數(shù)
???????????????? o?? 不帶符號的八進制
?????????????????u?? 不帶符號的十進制
???????????????? x?? 不帶符號的十六進制(小寫)
???????????????? X???不帶符號的十六進制(大寫)
?????????????? e,E? 科學計數(shù)法表示的浮點數(shù)(小寫,大寫)
???????????????f,F?? 十進制浮點數(shù)
???????????????? c?? 單字符
???????????????? r????字符串(使用repr轉(zhuǎn)換的隨意Python)
???????????????? s???字符串(使用str轉(zhuǎn)換的隨意Python)
??????????????g,G? 指數(shù)大于4或小于精度值和e同樣,否則和f同樣

二.字符串操作

??????? 字符串的基礎(chǔ)操作包含切割,索引,乘法,推斷成員資格,求長度等.
???????
1.+連接操作
????????如:s1='csdn' s2='Eastmount' s3=s1+s2
???????????? print s1,s2 => 輸出:csdn Eastmount
???????????? print s3 =>?輸出:csdnEastmount
???????
2.*反復操作
??????? 如:s1='abc'*5
???????????? print s1 =>?輸出:abcabcabcabcabc
???????
3.索引s[index]
??????? Python的索引格式string_name[index],能夠訪問字符串里面的字符成員.
???????
4.切片s[i:j]
????????Python中切片的基本格式是s[i:j:step],當中step表示切片的方向,起點不寫從0開始,終點不寫切到最后.如:
??????????????? s='abcdefghijk'
??????????????? sub=s[3:8]
??????????????? print sub => 輸出defgh_
???????????????????????????????????????????? 3????? 78?(起點是3 終點8不取)

??????? 當中當step=-1時表示反方向切片.如:
???????????????
s='abcdefghijk'
??????????????? sub=s[-1:-4:-1]
??????????????? print sub => 輸出kji
?????????由于最后一個"-1"表示從反方向切片,s[9]='j' s[-2]='j',正方向第一個'a'索引下標值為0,最后一個'k'索引下標值為-1.故'j'為-2,而sub[-1:-4:-1]表示從k(-1位置)切到h(-4位置,但不取該值).故結(jié)果為"kji".
?????????假設想完畢字符串逆序,s='www.baidu.com',則可s1=[-1::-1]就可以.起點為m(-1),無終點表示切到最后.
???????? 5.字段寬度和精度
???????? 前面講述的format()函數(shù)中涉及到該知識,如'%6.2f'%12.345678 輸出"口12.35"當中6表示字段寬度,2表示精度,故補一個空格,同一時候採用四舍五入的方法結(jié)果輸出12.35.
?????????同一時候,零(0)可表示數(shù)字將會用0填充,減號(-)用來實現(xiàn)左對齊數(shù)值,空白(" ")意味著正數(shù)前加上空格,在正負數(shù)對其時很實用,加號表示無論正數(shù)還是負數(shù)都標識出符號,對齊時也實用.例:

#字段寬度和精度 num = 12.345678 s1 = '%6.2f'%num print s1 #補充0 s2 = '%08.2f'%num print s2 #減號實現(xiàn)左對齊 s3 = '%-8.2f'%num print s3 #空白 print ('% 5d'%10) + '\n' + ('% 5d'%-10) #符號 print ('%+5d'%10) + '\n' + ('%+5d'%-10)#輸出12.35 00012.35 12.35 10-10+10-10

三.字符串方法

??????? 字符串從string模塊中"繼承"了非常多方法,以下解說一些經(jīng)常使用的方法:
??????? find()
??????? 在一個較長的字符串中查找子字符串,它返回子串所在位置的最左端索引,假設沒有找到則返回-1.其格式為"S.find(sub [,start [,end]]) -> int",當中該方法可接受可選的起始點和結(jié)束點參數(shù).而rfind()從右往左方向查找.

title = 'Hello Python,Great Python' length = len(title) print length print title.find('Python') print title.find('Python',10,30)#輸出: 25 6 19

??????? join()
?????? 其格式為"S.join(iterable) -> string",含義為"Return a string which is the concatenation of the strings in the iterable.?The separator between elements is S."即用來在隊列中加入元素,但隊列中元素必須是字符串.它是split方法的逆方法.

seq = ['1','2','3','4'] sep = '+' print sep.join(seq) #連接字符串列表 sep表示'+'連接dirs = '','usr','bin','env' print '/'.join(dirs) print 'C:'+'\\'.join(dirs)#輸出 1+2+3+4 /usr/bin/env C:\usr\bin\env

??????? split()
??????? 字符串切割函數(shù),格式為"S.split([sep [,maxsplit]]) -> list of strings",將字符串切割成序列,假設不提供切割符,程序?qū)讶靠崭褡鳛榉指舴?

#按空格拆分成4個單詞,返回list s = 'please use the Python!' li = s.split() print li print '1+2+3+4+5'.split('+') #輸出 ['please', 'use', 'the', 'Python!'] ['1', '2', '3', '4', '5']

??????? strip()
??????? 去掉開頭和結(jié)尾的空格鍵(兩側(cè)且不包括內(nèi)部),S.strip([chars])能夠去除指定字符.而函數(shù)lstrip()去除字符串最開始的全部空格,rstrip()去除字符串最尾部的全部空格.
????????replace()
??????? 該方法返回某字符串的全部匹配項均被替換后得到字符串,如文字處理程序中"查找并替換"功能.
??????? translate()
??????? 該方法和replace一樣,能夠替換字符串中某部分,但與前者的差別是translate僅僅處理單個字符,它的優(yōu)勢在于能夠同一時候替換多個,有時候效率比replace高.
????????如:s='eastmount' s1=s.replace('e','E')?=>?替換后'Eastmount'
????????
字符串推斷方法
??????? isalnum()推斷是否都是有效字符(字母+數(shù)字),如推斷password帳號,輸出Ture\False.
??????? isalpha()推斷是否是字母
????????isdigit()推斷是否是數(shù)字
??????? islower()推斷是否全是小寫
??????? isupper()推斷是否全是大寫
??????? isspace()推斷是否是空格(' ')
????????
lower()
??????? 該方法返回字符串的小寫字母版,在推斷username不區(qū)分大寫和小寫時使用.upper()轉(zhuǎn)換為大寫,title()函數(shù)將字符串轉(zhuǎn)換為標題——全部單詞的首字母大寫,而其它字母小寫,可是它使用的單詞劃分方法可能會得到不自然的結(jié)果.

s = 'this is a good idea' s1 = s.upper() print s1 s2 = s.title() print s2#輸出 THIS IS A GOOD IDEA This Is A Good Idea

?????? PS:我主要是通過《Python基礎(chǔ)教程》和"51CTO學院 智普教育的python視頻"學習.所以文中引用了非常多視頻中的知識、書籍知識和自己的知識,感謝那些作者和老師,希望文章對大家有所幫助,才開始學習python知識,假設文章中有錯誤或不足之處,還請海涵,也希望大家提出意見與君共勉.勿噴~
??????? (By:Eastmount 2014-9-28 中午11點?原創(chuàng)CSDN?http://blog.csdn.net/eastmount/)

版權(quán)聲明:本文博客原創(chuàng)文章。博客,未經(jīng)同意,不得轉(zhuǎn)載。

總結(jié)

以上是生活随笔為你收集整理的[Python学习] 模块三.基本字符串的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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