python 字串學習筆記str
阿新 • • 發佈:2018-11-04
字串型別: 說明:今日講解的內容只包含字串所需知識的50%,還有50%後續再講(函式) 2.1.字串資料的特點: 1).是不可變的資料型別 2).它是容器型別資料,有長度,也有下標/索引(index) 掌握如下幾個概念: 1).開始索引 0表示 2).結束索引 -1表示/length-1 如何訪問字串資料? 訪問分為兩部分考慮!! 1).獲取字串中的某個元素 通過字串名字配合下標得到想要的元素內容 例如:str1[-1] 2).設定字串中的元素 是不可以的,原因:字串不可變 2.2.常見的一些錯誤 1).下標越界了 --> 執行時異常 錯誤型別:IndexError 理解:下標越界了 【注意】左右邊界都有可能超出,所以要避免... 程式碼如下:錯誤現象 str1 = 'abcdefg123' print(str1[10]) print(str1[-11]) 2).字串一旦定義了,不能改變其任何元素的內容 錯誤型別:TypeError 理解:字串是不可變的資料型別,一旦定義了,不能單獨修改其某個元素的內容 但是我們可以直接給變數賦一個新的字串資料,此操作可以認為是直接改變了記憶體中的引用地址,這是合法的... 程式碼如下:錯誤現象 str1 = 'abcdefg123' str1[2] = 'C' print(str1) 2.3.字串的切片操作 字串的切片操作: 作用:可以得到原字串中某索引開始到某索引結束範圍內的子串, 原串不變(不受到影響) 格式:字串名[start:end:step] 解釋: start:起始索引 end:結束索引 step:步長 預設為1 【注意事項】 切片操作,滿足含特頭不含尾的點(計算機領域99%的情況) 舉例:str1[2:5] --> 範圍:[2,5) 程式碼如下: str2 = "唧唧復唧唧,木蘭當戶織,不聞機杼聲,惟聞女嘆息" # print(len(str2)) str3 = str2[3:5] # print(str3,type(str3)) # print(str2) print(str2[5:]) print(str2[:5]) print(str2[:-5]) print(str2[2:-2]) print(str2[:10:2]) print(str2[::]) print(str2[:]) print(str2[::-1]) print(str2[-7:11:-1]) 2.4.字串的定義 如果字串的內容比較少,我們可以使用單個單/雙引號開始和結尾來定義, 但是如果字串的內容比較多,而且還需要以我自定義的樣式進行列印顯示的話, 我們可以使用三個單/雙引號開始和結束來定義 符號:和註釋相同 '''...''' """...""" 注意:需要有變數來接受 程式碼如下: content = '''遙想公瑾當年,小喬初嫁了; 雄姿英發,羽扇綸巾; 談笑間,檣櫓灰飛煙滅 ''' content = """遙想公瑾當年,小喬初嫁了; 雄姿英發,羽扇綸巾; 談笑間,檣櫓灰飛煙滅 """ 2.5.轉義字元 以下內容涉及到轉義字元的使用: 什麼是轉義字元? 在python語言中已經失去其原本含義,比如不想將n表示為n,將其轉義\n就表示為換行了; 常用的轉義字元如下: \n:換行符 \t:製表符 \":雙引號 \':單引號 \b:退格 r的作用以及使用場景: 如果字串記錄的是一串實體地址,那麼地址內容中可能涉及到轉義字元的存在, 但是在路徑層面是不允許轉義的,所以我們需要將轉義字元的含義全部剔除, 只需要在路徑第一個引號的前面顯示的定義一個r即可 程式碼如下: address = "D:\\baisc\\tpython1808\\day02\\hello.html" address = r"D:\baisc\tpython1808\day02\hello.html" print(address) 2.6.字串的*和+操作: 對於*操作而言:將字串資料連續執行多次 對於+操作而言:將兩個字串資料拼接起來,得到一個更長的串 程式碼如下: content = "猥瑣發育別浪" print(content * 5) print('*' * 50) print(content + ',滅團了') 2.7.佔位符 佔位符的使用: 作用:如果字串中某些元素的內容一開始並不確定,我們可以先用佔位符佔個位置, 等到之後明確了資料內容,再講資料放入到佔位符中; 分類學習: 第一類:百分號原則 符號: %d:表示整數資料字元 %f:表示浮點資料字元 %s:表示字元資料(萬能符) 第二類:format()傳參的方式來實現/大括號原則 注意:format()函式不是內建函式,它屬於str的函式,必須通過str.的形式進行呼叫 程式碼如下: name = "韓梅梅" age = 23 height = 165.5 print("姓名:%s,年齡:%d歲,身高:%.1fcm" %("李雷",25,175.5)) print("姓名:%s,年齡:%010d歲,身高:%.1fcm" %("李雷",25,175.5)) print("姓名:%s,年齡:%d歲,身高:%.1fcm" %(name,age,height)) print('-' * 60) print('我是:{},最喜歡的男歌星:{},最喜歡看的電影是:{},我最喜歡的老師是:{}'.format('班長','tfboys','鐵血戰士','老郭')) print('我是:{3},最喜歡的男歌星:{1},最喜歡看的電影是:{0},我最喜歡的老師是:{2}'.format('小電影','張學友','蒼老師','班長')) print('我是:{name},最喜歡的男歌星:{star},最喜歡看的電影是:{film},我最喜歡的老師是:{teacher}'.format(teacher='小澤老師',star='劉德華',name='班長',film='老郭的教學視訊')) 補充佔位符: %o: 將十進位制資料轉換為八進位制資料 %x: 將十進位制資料轉換為十六進位制資料