1. 程式人生 > >python 字串學習筆記str

python 字串學習筆記str

字串型別:

說明:今日講解的內容只包含字串所需知識的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: 將十進位制資料轉換為十六進位制資料