1. 程式人生 > 其它 >資料型別之內建方法

資料型別之內建方法

今日內容概要

  • 字串的其他內建方法

  • 列表的內建方法

  • 字典的內建方法

  • 佇列與隊棧

    ..............

     

    今日內容詳細

    字串的其他內建方法

     

     

    # 1.移除字串首尾的指定字元  可以選擇方向
    # s1 = '$$$jason$$$'
     print(s1.strip('$'))  # 輸出 jason
     print(s1.lstrip('$'))  # 將左邊$符號移除
     print(s1.rstrip('$'))  # 將右邊$符號移除


    # 2.大小寫相關操作
    # s2 = 'tomNB'
    # print(s2.lower()) # 將所有的英文字母變為小寫 tomnb
    # print(s2.upper()) # 將所有的英文字母變為大寫TOMNB
    # print(s2.islower()) # 判斷字串找那個所有的英文字母是否是純小寫 結果是布林值 True or False
    # print(s2.isupper()) # 判斷字串找那個所有的英文字母是否是純大寫 結果是布林值 True or False
    學習大小寫操作的目的是為了圖形驗證碼:一串有數字 大寫字母 小寫字母組成
    為什麼以前的認證碼需要一模一樣 大小寫不能忽略 現在的驗證碼卻可以 如何實現
    # code = 'toNY6'
    # print('這是返回給使用者的圖片驗證碼:%s' % code)
    # user_code = input('請輸入驗證碼>>>:').strip()
    # if code.lower() == user.lower(): # 驗證碼忽略大小寫 只需要統一轉大小寫即可
    #     print('驗證碼正確')

    # 3.判斷字串的開頭或者結尾是否是指定的字元
    # s3 = 'jason kevin jason tony 888'
    # print(s3.startswith('j')) # True
    # print(s3.startswith('jason')) # True
    # print(s3.startswith('tony')) # False
    # print(s3.startswith('8')) # True
    # print(s3.startswith('888')) # True
    # print(s3.startswith('jason')) # False

    # 4.格式化輸出
    # 方式1 佔位符:%s %d
    # 方式2 利用format方法》》》:四種用法
    # 用法1:跟佔位符一樣的用法 使用{}佔位
    # print('my name is {} my age is {}'.format('jason',18))
    # 用法2:根據索引取值 可以反覆使用 可以隨意幾個到語句中
    # print('my name mis {0}{0}{1} my age is {1}{1}'.format('jason',18))
    # 用法3:根據指名道姓的方式取值
    # print('my name is {name}{name} my age is {age}{passwoed}'.format(name='tony',age=17,password=123))
    # 用法4:直接使用已經出現過的變數
    # name = 'jason'
    # age = 19
    # print(f'my name is {name} my age is {age}{name}{name}')
    在python官網以前推薦使用format格式化輸出 甚至說要把%s要直接刪除

    # 5.拼接字串join
    # s1 = '舉頭望明月 低頭思故鄉'
    # s2 = '世上無難事 只怕有心人'
    # print(s1+s2) # 舉頭望明月 低頭思故鄉世無難事 只怕有心人(如果是字串很大,加好會加大CPU工作效率,降低電腦的效率 )
    # print(s1*10) # 會重複s1十次
    # print('|'.join(s1)) # 舉|頭|望|明|月| |低|頭|思|故|鄉
    # print('$'.join['jason','kevin','jason','tony'])
    # jason$kevin$jsaon$tony
    join方法相當於是將括號內的元素進行for迴圈,從左往右,一個一個取出來
    # l1 = [11,'jason','kevin']
    # print('|'.join(l1)) # join的元素必須都是字串才可以,否則系統就會報錯

    # 6.替換字串中指定的字元
    # s6 = 'jason is DSB DSB DSB jason jason jason'
    # 將jason替換成tony
    # print(s6.replace('jason','tony')) # 預設一次性替代所有
    # 指定替換的個數
    # print(s6.replace('jason','tony',2)) # 還可以通過控制替換的個數 從左往右
    很多文字編輯器裡面的替換功能 就可以使用replace完成

    # 7.判斷字串中是否是純數字
    # s7 ='jason123'
    # print(s7.isdigit()) # False
    # print('123'.isdigit()) # True
    # print('123.21'.isdigit()) # False
    前面我們在學評分系統時學過一個 score = int(score)在輸入時系統會報錯,為了解決這個問題,,我們可以:
    score = input('score>>>:')
    if score.isdigit():
       score = int(score)
    else:
       print('能不能好好寫')

     

     

    字串需要了解的內建方法

    1.查詢指定字元對應的索引值
    s1 = 'jason justin kevin tony'
    print(s1.find('s'))  # 從左往右查詢 查詢到一個就會結束
    print(s1.find('k',1,9))  # -1 y意思是沒有 找不到
    print(s1.index('s'))
    print(s1.index('k',1,9))  # 找不到會直接報錯 我們在編寫程式碼時最怕的就是報錯,所以不推薦使用會報錯的結果

    2.文字位置改變
    name = 'tony'
    print(name.center(30,'-'))  # 總寬度是30,字串居中顯示,不夠用短橫線填充
    print(name.ljust(30,'*'))  # 總寬度是30,字串左對齊顯示,不夠用*填充
    print(name.rjust(30,'$'))  # 總寬度是30,字串右對齊顯示,不夠用$填充
    print(name.zfill(50))  # 總寬度為50,字串右對齊顯示,不夠用0填充

    3.特殊符號:斜杆與一些英文字母的組合會產生特定的含義
    print('ja\tson\nke\avin')
    \t:表示的是空四格 ja    ton
    \n:表示的是換行
    如果想取消它們的特定含義 可以在字串的前面加上一個字母r
    print('ja\tson\nke\avin')
     
    4.captalize(首字母大寫),swapcase(大小寫翻轉),title(每個單詞首字母大寫)

     

     

    列表內建方法

    1.型別轉換
    print(11)  # 不能轉換
    print(lise(11.11))  # 不能轉換
    print(list('jason'))  # ['j','a','s','o','n']
    print(list({'name':'jason','pwd':123}))  # ['name','pwd']
    print(list((11,22,33,44,55))) # [11,22,33,44,55]
    print(list({1,2,3,4,5}))  # [1,2,3,4,5]
    print(list(True))


    因此可以找出規律list可以轉換支援for迴圈的資料型別
      可以被for迴圈的資料型別:字串 列表 字典 元組 集合

    常見操作
    name_list = ['jason','kevin','tony','tom','jerry']
    1.索引取值
    print(name_list[0])
    print(name_list[-1])
    2.切片操作
    print(name_list[1:4])  # ['kevin','tony','tom']
    print(name_list[-4:-1])  # ['kevin','tony',tom]
    print(name_list[-1:-4:-1])  # ['jerry','tom','tony']
    3.間隔
    print(name_list[0:4:1])  # ['jason','kevin','tony','tom']
    print(name_list[0:4:2])  # ['jason','tony']
    print(name_list[-1:-4:-1])  #
    ['jerry','tom','tony']
    4.統計列表中元素的個數
    print(len(name_list))  # 5
    5.成員運算 最小判斷單位是元素而不是元素內的單個字元
    print('j' in name_list)  # False
    print('jason' in name_list)  # True
    6.列表新增元素的方式
    6.1.尾部追加單個元素
    name_list.append('小李')
    print(name_list)   # ['jason','kevin','tony','tom','小李']
    name_list.append([11,22,33,44])
    print(name_list)  # ['jason','kevin','tony','tom',[11,22,33,44]]
    6.2.指定位置插入單個元素
    name_list.insert(0,123) # 是指在索引零位置處插入一個123元素
    name_list.insert(2,'可以插個隊')  # 是指在索引2位置處插入一個'可以插個隊'的元素
    name_list.insert(1,[11,22,33])  # 是指在索引1位置處插入一個元素[11,22,33]
    6.3.合併列表
    name_list.extend([11,22,33,44,55])
    print(name_list)
    extend其實可以看成是for迴圈+append
       for i in [11,22,33,44,55]:
           name_list.append(i)