1. 程式人生 > 其它 >3.9python學習筆記

3.9python學習筆記

字串的內建方法

1. strip

strip方法:可以移除字串首尾的指定字元,可以選擇方向
s1 = '&&&zhangqiang&&&'
print(s1.strip('&'))  #  zhangqiang
print(s1.lstrip('&')) #  zhangqiang&&&
print(s1.rstrip('&')) #  &&&zhangqiang

2.大小寫操作

s2 = 'NIhAo'
s2.lower() #將所有的英文字母變為小寫的 nihao
s2.upper() #所有字母變成大寫 NIHAO
s2.islowe()  #判斷字串中所有字母是否都是小寫 結果是布林值
s2.isupper() #判斷字串中所有字母是否都是大寫 結果是布林值

3.判斷字串的開頭或者結尾是否有指定的字元

s3 = 'hi 你今天過的怎麼樣'
print(s3.startswith('h'))  # True
print(s3.startswith('i'))  # False
print(s3.startswith('hi')) # True
print(s3.endswith('樣'))  # True
print(s3.endswith('麼'))  # False
print(s3.endswith('你今天過的怎麼樣'))  # True

4.格式化輸出

format方法的四種用法:
1、跟佔位符一樣,使用{}佔位:
print('你好我叫{}今年{}歲 身高是{}'.format('name',20,183))
2、根據索引取值:
print('my name is {0} {0} my age is {0} {1}'.format('jason', 18))
3、根據指名道姓的方式取值
print('我們一個有{su}人,分別是{name},{name2},{name3}'.format(name="zq",name2='cy',name3='ajr',su=3))
4.直接使用已經出現的變數
print(f'你的賬號是{name},密碼是{password}')
#注意這個方法需要在字串前加一個f

5.拼接字串

s1 = '年少不知富婆香'
s2 = '錯把少女當成寶'
print(s1 + s2) #如果資料較大,會佔用比較大的空間,並且時間花的多
print(s * 10) #直接重複10次
print('|',join(s1))  #年|少|不|知|富|婆|香
print('$'.join(['jason', 'kevin', 'justin', 'tony']))
# jason$kevin$justin$tony
'''join方法相當於是將括號內的元素進行for迴圈'''
l1 = [11, 'jason', 'kevin']  #報錯!!!
print('|'.join(l1))  #報錯!!!join的元素必須都是字串才可以

6.替換字串中指定的字元

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

7.判斷字串中是否是純數字

s7 = 'jason123'
print(s7.isdigit())  # False
print('123'.isdigit())  # True
print('123.21'.isdigit())  # False
score = input('score>>>:')
if score.isdigit():
    score = int(score)
else:
    print('你他喵的能不能好好寫')

8.需要了解的一些字串操作

1.查詢指定字元對應的索引值
s1 = '今天是個好日子'
print(s1.find('好'))  #從左往右查詢
print(s1.find('n',1,5)) #輸出-1 就是沒有找到
print(s1.index('好'))
print(s1.index('n')) #找不到直接報錯,沒有返回值
2.文字位置改變
 name = 'zhangqiang'
 print(name.center(30, '-'))  # ------------tony-------------
 print(name.ljust(30, '*'))  # zhangqiang**************************
 print(name.rjust(30, '$'))  # $$$$$$$$$$$$$$$$$$$$$$$$$$zhangqiang
 print(name.zfill(50))  # zero 零  0000000000000000000000000000000000000000000000zhangqiang
3.特殊符號:斜槓與一些英文字母的組合會產生特殊的含義
 print('ja\tson\nke\avin')
'''如果想取消它們的特殊含義 可以在字串的前面加一個字母r'''
 print(r'ja\tson\nke\avin')
4.captalize,swapcase,title
4.1 captalize:首字母大寫
 message = 'hello everyone nice to meet you!'
 message.capitalize()
 Hello everyone nice to meet you!
4.2 swapcase:大小寫翻轉
 message1 = 'Hi girl, I want make friends with you!'
 message1.swapcase()
 hI GIRL, i WANT MAKE FRIENDS WITH YOU!
4.3 title:每個單詞的首字母大寫
  msg = 'dear my friend i miss you very much'
  msg.title()
  Dear My Friend I Miss You Very Much

列表的內建方法

1.型別轉換

    print(list(123))  # 報錯
    print(list(123.4))  # 報錯
    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]
    """
    list可以轉換支援for迴圈的資料型別
        可以被for迴圈的資料型別
            字串 列表 字典 元組 集合
    """

2.取值的相關操作

   name_list = ['張三','李四','王五','牛六','狗蛋']
1.索引取值
    print(name_list[0])    # '張三'
    print(name_list[-1])   # '狗蛋'
2.切片操作
    print(name_list[1:3])  # ['李四', '王五']
    print(name_list[-3:-1]) #['王五', '牛六']
3.統計列表中元素的個數
	print(len(name_list))  # 5
4.成員運算 最小判斷單位是元素不是元素裡面的單個字元
    print('張' in name_list)  # False   
    print('李四' in name_list)  # True
5.列表新增元素的方式
    5.1name_list.append('狗剩')
    #name_list = ['張三','李四','王五','牛六','狗蛋','狗剩']
  指定位置插入'單個'元素 #可以插入各種型別
	5.2name_list.insert(1, '狗剩')
    #name_list = ['張三','狗剩','李四','王五','牛六','狗蛋']
  	5.3合併列表
  	#name_list =['張三', '李四', '王五', '牛六', '狗蛋', 11, 22, 33, 44, 55]
6.刪除元素
	6.1通用的刪除方式
	del name_list[0]
	print(name_list)
    6.2指定刪除元素
    name_list.remove('張三')
    6.3延遲刪除
    print(name_list.pop()) #從尾部開始彈出 資料並沒有直接刪除
    print(name_list.pop(2))  # 還可以指定索引值 
8.修改列表元素
	name_list[0] = '張蛋'
    #name_list = ['張蛋','李四','王五','牛六','狗蛋']
9.排序
 ss = [44, 77, 99, 11, 22, 33, 88, 66]
 ss.sort()  # 預設是升序
 print(ss)  # [11, 22, 33, 44, 66, 77, 88, 99]
 ss.sort(reverse=True)  # 可以修改尾降序
 print(ss)  # [99, 88, 77, 66, 44, 33, 22, 11]
10.翻轉
 ss = [44, 77, 99, 11, 22, 33, 88, 66]
 ss.reverse()  # 前後顛倒
 print(ss)
 # ss = [66, 88, 33, 22, 11, 99, 77, 44]
11.比較運算
 s1 = [11, 22, 33]
 s2 = [1, 2, 3, 4, 5, 6, 7, 8]
 print(s1 > s2)  # True
"""列表在做比較的時候 其實比的是對應索引位置上的元素"""
 s1 = ['A', 'B', 'C']  # A>>>65
 s2 = ['a']  # a>>>97
 print(s1 > s2)  # False
 ss = [44, 77, 99, 11, 22, 33, 88, 66]
 print(ss.index(99))
12.統計列表中某個元素出現的次數
l1 = [11, 22, 33, 44, 33, 22, 11, 22, 11, 22, 33, 22, 33, 44, 55, 44, 33]
print(l1.count(11))  # 統計元素11出現的次數
l1.clear()  # 清空列表
print(l1)

可變型別與不可變型別

"""
可變型別與不可變型別
    可變型別     列表
        值改變 記憶體地址不變 修改的是本身
    不可變型別   字串
        值改變 記憶體地址肯定遍 修改過程產生了新的值
如何檢視變數的'記憶體地址'
"""
 s1 = '$$$jason$$$'
 print(s1.strip('$'))  # jason  本身並沒有修改 可變型別與不可變型別
 print(s1)  # $$$jason$$$
 s2 = [1, 2, 3]
 print(s2.extend([11, 22, 33, 44, 55]))  # None 空
 print(s2)  # [1, 2, 3, 11, 22, 33, 44, 55]