1、ord和chr函數的應用
在python中,涉及到單字元的ASCII或者Unicode編碼轉換。例如子母A的ASCII碼為65,子母X的ASCII碼為88。同樣的,知道十進制的數字碼,通過chr函數就可以将數字碼轉換為對應的子母。
print(ord('A')) 運作結果為65
print(ord('X')) 運作的結果為88
print(chr(88)) 運作的結果為X
print(chr(122)) 運作的結果為z
2、簡單判斷子母類型并應用ord與chr函數
①判斷首字母是為元音子母(即字元串首字母是否為“aeiou”)及非元音子母
英文字母表中共有5個元音子母(aeiou),其他均為非元音子母(輔音子母),是以在邏輯上隻要判斷首子母是否在5個元音子母之内就可以完成判定
s='elephant'
if s[0] in 'aeiou':
print('first char. is a vowel.')
這行代碼運作的結果即為first char. is a vowel.
但是很多時候首字母并非一定是小寫字母,是以有兩種方式來解決這個問題。
第一種方式:将in後面的字元串範圍擴大至“aeiou和AEIOU”,直接覆寫全部的大小寫元音字母,代碼如下:
s='elephant'
if s[0] in 'aeiouAEIOU':
print('first char. is a vowel')
這行代碼的運作結果也為first char. is a vowel.
第二種方式:将單詞中的每個子母全部大寫或者小寫,在in後面的字元串中編寫對應的大小寫元音子母,也可以進行判斷。代碼如下:
s='Helephant'
if s[0].upper() in "AEIOU":
print('first char. is a vowel')
這行代碼的運作結果也為first char. is a vowel.
當判斷的首個子母為非元音子母的時候,可以提示為輔音子母,需要添加一個else語句。代碼如下:
s='Helephant'
if s[0].upper() in "AEIOU":
print('first char. is a vowel')
else:
print('first char. is not a vowel, it is a consonaut.')
首先将字元串中全部子母調整為大寫字母,然後判斷大寫的首字母是否在元音字元串中,根據判斷結果,如果在字元串中,則顯示首字母為元音子母;如果不在字元串中,則顯示首字母為輔音字母;
②周遊字元串,并通過ord轉換
代碼如下:
s='elephant'
for ch in s:
print(ch,', type:',type(ch))
print(ord(ch),end='')
首先列印字元串中的每一個字元,判斷每一個字元的類型;然後通過ord,将其轉換為對應的ASCII碼。
3、通過ord和chr函數建立所有字元串
通過一個簡單的循環函數就可以建立所有字元串,代碼如下:
n=ord("A")
s=''
for i in range (n,n+26):
s+=chr(i)
print(s)
首先将A轉換為ASCII碼,通過循環,每次在ASCII碼中+1,就可以列印出完整的字母表。當然也可以嘗試将26這個參數設定為其他的數字,會有意外的驚喜。例如當我将參數設定為55的時候,列印的結果為:
ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvw
這裡面仿佛可以發現一些ASCII碼的編寫規律
4、通過join函數在清單中添加字元串
當明确知道準備添加的字元串長度的時候,可以通過+=的方式直接添加。但是當準備添加的字元串長度不明确的時候,可以建立新清單,通過在清單中添加元素的方式,來添加字元串。
代碼如下:
n=ord("A")
a_list=[]
for i in range (n,n+55):
a_list.append(chr(i))
s=''.join(a_list)
print(s)
運作的結果也為:
ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvw
#加油!
#一點一滴的努力,未來都會有回報。
#歲月靜好,不去羨慕旁人,隻做好自己,花朵總會綻放。
#以上學習感悟來自于《高階Python代碼精進之路》([美]Brain Overland, John Bennett著,李輝,韓慧昌譯,中國工信出版集團電子工業出版社2022年4月出版)