1. 程式人生 > 其它 >Android 的非同步訊息處理機制

Android 的非同步訊息處理機制

目錄

字串內建方法

移除首尾的指定字元,可以自己選定方向

s1 = '1111jason111'
print(s1.strip('1'))  # 去除首尾的 1
>>>jason
print(s1.lstrip('1'))  # 
>>>jason111
print(s1.rstrip('1')) # 去除字串左邊的
>>>1111jason

大小寫的相關操作

s = POIlkj000
print(s.lower()) # 字串內的字母全部轉換成小寫
>>>poilkj000

print(s.upper())  #字串內的字母全部轉換成大寫
>>>POILKJ00

print(s.isupper())  #判斷字串中所有字母是否全部為大寫,結果為布林值

print(s.islower())  #判斷字串中所有字母是否全部為小寫,結果為布林值

#關於驗證碼
驗證碼由數字和字母組成,而驗證碼校驗,對大小寫不做要求
code = 'Xj4N'
user_code = input('請輸入驗證碼:').strip()
if user_code.upper() == code.upper()
print('驗證碼正確')
'''
通過將他們統一轉換成大寫或者小寫,再進行比較
'''


判斷首尾是否為指定字元

s3 = 'today is wednesday 1212'
print(s3.startswith('t'))  #True
print(s3.startswith('today'))  #True
print(s3.endswith('2'))  #True
print(s3.endswith('21'))  #False

格式化輸出

#format方法
print('my name is {} my age is {}'.format('Tom', 88))  #跟佔位符類似,通過{}來佔位
>>>my name is Tom my age is 88

print('my name is {1} {0} {1} my age is {0}'.format('Tom', 88))  #可一通過索引取值,可以反覆取值
>>>my name is 88 Tom 88 my age is Tom

print('my name is {age} my age is {name}'.format(name = 'Tom', age = 88))  #可以通過變數名來進行取值
>>>my name is 88 my age is Tom

name = Tom
age = 88
print('my name is {age} my age is {name}')  #可以使用已經出現的變數名來進行取值
>>>my name is 88 my age is Tom

字串拼接

s5 = '仰天大笑出門去'
s6 = '我輩豈是蓬蒿人'
print(s5 + s6)  #效率低,當字串很大時不適合使用
>>>仰天大笑出門去我輩豈是蓬蒿人

print(s5 * 5)  #重複輸出字串s5
>>>仰天大笑出門去仰天大笑出門去仰天大笑出門去仰天大笑出門去仰天大笑出門去

print('.'.join(s5))  #在字串每個字元間加入指定字元
>>>仰.天.大.笑.出.門.去
print('.'.join([1, 2, 2, 3]))  #新增的元素或者等待被新增的元素必須為數字,否則報錯
>>>erro

替換字串中指定的字元

s6 = 'hello world hello world hello'
print(s6.replace('hello', 'the'))  # 預設將s6中的所有hello都替換成the
>>>the world the world the
print(s6.replace('hello', 'the', 2)) #可以通過數字控制替換的個數 方向為從左到右
>>>the world the world hello

判斷字串中的字元是否為純數字

s7 = 'lkjklkl123'
s8 = '231223'
print(s7.isdigit())  #False
print(s8.isdigit())  #True

查詢指定字串對應的索引值

s9 = 'today is wednesday 1212'
print(s9.find('d'))  #從左到右進行查詢,找到第一個後結束
>>>2
print(s9.find('z')) #查詢不到 值為 -1
>>>-1
'index方法也可以查詢指定字元的索引值,但如果找不到就會報錯,不推薦使用'

文字位置改變

name = 'Tom'
print(name.center(20, '*')) #輸出指定位數的字串,位數不夠,用指定字元填充,文字居中
>>>********Tom*********
print(name.ljust(20,'*'))  #輸出指定位數的字串,位數不夠,用指定字元填充,文字在左邊
>>>Tom*****************
print(name.rjust(20,'*'))  #輸出指定位數的字串,位數不夠,用指定字元填充,文字在右

特殊符號

print('k\akkk\nlkk\tlkj')  
>>>kkkk
>>>lkk	lkj
'''
如果想取消他們的特殊含義,可以在字串前面加上r
'''
print(r'k\akkk\nlkk\tlkj')
>>>k\akkk\nlkk\tlkj

captalize, swapcase, title

s11 = 'today is wendnesday'
print(s11.captalize())  #首字母大寫
>>>Today is wednesday

print(s11.swapcase())  #大小寫反轉
>>>TODAY IS WEDNESDAY

print(s11.title())  #每個字母首字母大寫
>>>Today Is Wednesday

列表內建方法

型別轉換

print(list(11))  #報錯
print(list(11.11)) 
print(list('tom'))  # ['t', 'o', 'm']
print(list({'name':'jason', 'age':15})) # ['name','age']
print(list({1,2,3}))  #[1,2,3]
'''
list可以轉換可以for迴圈的資料型別,例如字典,集合,元組等
'''

索引取值

#索引取值
list = [1,2,3,4,5]
print(list[0])
>>>1

切片操作

#切片操作
list = [1,2,3,4,5]
print(list[1:3])
>>>[2, 3]
print(list[-3:-1])
>>>[3, 4]
print(list[-1:-3:-1])
>>>[4, 3]

統計列表中元素的個數

list = [1,2,3,4,5]
print(len.(list))  
>>>5

成員運算

name = ['jason', 'tom', 'jack']
print('j' in name)  #False,最小單元為一個元素,不能說元素裡的單個字元
print('jason' in name) #True

列表新增元素的方法

name = ['jason', 'tom', 'jack']
#尾部追加單個元素
print(name.append('bob'))  
>>>None
name.append('bob')
>>>['jason', 'tom', 'jack', 'bob']
#指定位置插入單個元素
name.insert(0,'jjj')
print(name)
>>>['jjj', 'jason', 'tom', 'jack']
name.insert(2, [1, 2])
print(name)
>>>['jason', 'tom', [1, 2], 'jack']

合併列表

name = ['jason', 'tom', 'jack']
name.extend([1, 2, 3])
print(name)
>>>['jason', 'tom', 'jack', 1, 2, 3]
'''
extend可以看成for迴圈+append
'''

刪除元素

name = ['jason', 'tom', 'jack']
#通用刪除
del name[0]
print(name)
>>>['tom', 'jack']
#就地刪除
name.remove('jason')
print(name)
>>>['tom', 'jack']
#延遲刪除
print(name.pop()) #預設彈出尾部
print(name.pop(2))  #指定刪除下標為2 的元素

修改列表元素

name = ['jason', 'tom', 'jack']
print(id(name[0]))  #1793290965264
name[0] = 'jerry'
print(id(name[0]))  #1943218393864
print(name)
>>>['jerry', 'tom', 'jack']

排序

s = [1,3,8,2,4,4,9]
s.sort()  #預設的是升序
print(s)
>>>[1, 2, 3, 4, 4, 8, 9]

s.sort(reverse = True) # 修改為降序排列
print(s)
>>>[9, 8, 4, 4, 3, 2, 1]

翻轉

s = [1,3,8,2,4,4,9]
s.reverse()   #對列表中的元素進行翻轉
print(s)
>>>[9, 4, 4, 2, 8, 3, 1]

比較運算

s1 = [1,3,5]
s2 = [2,1,3]
print(s1 < s2) #比較的是第一個元素的大小,與元素的數量沒有關係
>>>True

s1 = ['a', 'B', 'f']
s2 = ['C', 'b']
print(s1 > s2)   #比較的是字母對應的ASCII碼
>>>True

統計列表中某個元素出現的次數

s = [1,1,2,2,1,3,4,5,5]
print(s.count(1))  #統計列表s中1出現的次數
>>>3

清空列表

s = [1,1,2,2,1,3,4,5,5]
s.clear() #清空列表中的元素
print(s)
>>>[]

可變型別與不可變型別

可變型別

s = [1, 2, 3]
print(id(s))  # 1877014933064
s[2] = 0
print(id(s))  # 1877014933064
'''
值改變,記憶體地址不變,修改的是本身
'''

修改前

修改後

不可變型別

s1 = '    Tom'
print(id(s1)  #1992037274376
res = s1.strip()
print(id(res))  #1992037274768
'''
值改變,記憶體地址也跟著變,修改過程產生了新的值
'''

修改前

修改後

佇列與堆疊

佇列

#先進先出是佇列
list = []
list.append(1)
list.append(2)
list.append(3)
for i in list:
	print(i)
>>>1
>>>2
>>>3

堆疊

#先進後出是堆疊
list = []
list.append(1)
list.append(2)
list.append(3)
print(list.pop())
print(list.pop())
print(list.pop())
>>>3
>>>2
>>>1