github:
# --coding:utf-8--
# file: string_test.py
# author: dxj728
# time: 2023年08月18日21時
# 說明:string方法學習
import string
# 注:string 不支援單字元型別,單字元在python也視為乙個字串使用
str = 'hello world!'
r_str = r'hello world\n' # 原始字串,所見即所得(系統內部自動轉義)
u_str = u'你好!' # 僅python2中使用,表示utf-8字元(python2預設為8位ascii碼),python預設均為unicode字元
print(str, r_str, u_str)
str1 = str[0:5] # 字串擷取,返回擷取後字串
print(str, str1) # ('hello world!', 'hello')
# 運算子
str2 = str * 2 # 重複輸出字串
str3 = 'a' in str # 包含指定字串則返回true
str4 = 'a' not in str # 不包含指定字串返回false
print(str2, str3, str4) # ('hello world!hello world!', false, true)
# 字串格式化: 格式化引數 = 備註1
str5 = 'my name is %s, and %d years old' % ('dxj', 18)
str6 = 'my name is , and years old'.format('dxj', 18)
print(str5, str6) # my name is dxj, and 18 years old
# 編譯碼
str7 = str.encode(encoding='utf-8') # 以指定編碼格式編碼字串(該處返回bytes物件)
str8 = str7.decode(encoding='utf-8') # 以指定編碼格式解碼字串
print(str7, str8)
# 字串合併與分割:行界符定義 = 備註2
str9 = str.split('e', maxsplit=1) # 以特定字串分割擷取字串(分割後生成子字串均不攜帶該字串),若最大擷取次數maxsplit指定,則擷取maxsplit次,返回maxsplit+1個字串
str10 = str.splitlines(keepends=false) # 以行界符分割,返回字串列表list,若引數keepends=false,則返回值不包括換行符,為true則包含
str11 = str.strip('a') # 去掉字串兩邊的指定字元(預設指定字元為空格)
str12 = str.lstrip('a') # 去掉字串左邊(前面)的指定字元(預設指定字元為空格)
str13 = str.rstrip('a') # 去掉字串右邊(後面)的指定字元(預設指定字元為空格)
str14 = str.join('a') # 以指定字串為分隔符,將list或tuple中各元素合併為乙個新的字串
str15 = str.partition('a') # 以指定的分隔符將字串(從左往右)進行分割,返回乙個3元的元組,[1]為分隔符左邊的子串,[2]為分隔符本身嗎,[3]為分隔符右邊的子串
str16 = str.rpartition('a') # 同上,方向換為從右往左(從後往前)
str17 = str.replace('old', 'new', 1) # 使用new子字串替換字串中的old子字串,若指定第3引數,則替換不超過max次
str18 = str.ljust(50, '*') # 返回指定長度字串,字串內容居左,若原始長度超過指定長度,則返回原始字串,否則填充指定字串(預設為ascii空格)
str19 = str.rjust(50, '*') # 同上,字串內容居右
str20 = str.center(50, '*') # 同上,字串內容居中
str21 = str.zfill(10) # 同上,從左開始用0填充字串至指定長度
# 字串查詢與判斷
str22 = str.find('a', 0, 10) # 檢測字串中是否包含子字串,如果指定 beg(開始)和 end(結束)範圍,則檢查是否包含在指定範圍內,如果包含子字串,則返回開始的索引值(下標,從0開始),否則返回-1。
str23 = str.rfind('a', 0, 10) # 同上,從右開始(從後往前)
str24 = str.count('a', 0, 10) # 查詢指定字串出現的次數,並可指定查詢開始和結束範圍
str25 = str.index('a', 0, 10) # 同find()方法,但指定子字串找不到時會報valueerror異常
str26 = str.isdigit() # 判斷字串是否只由數字構成,是返回true,否則返回false
str27 = str.isalpha() # 判斷字串是否只由字母構成,是返回true,否則返回false
str28 = str.isalpha() # 判斷字串是否只由字母或數字構成,是返回true,否則返回false
str29 = str.isspace() # 判斷字串是否只由空格構成,是返回true,否則返回false
str30 = str.istitle() # 判斷字串是否標題化(首字母大寫,忽略非字母),是返回true,否則返回false
str31 = str.isupper() # 判斷字串中所有的字母是否都為大寫
str32 = str.islower() # 判斷字串中所有的字母是否都為小寫
str33 = str.startswith('a') # 判斷字串是否以指定字元開始
str34 = str.endswith('a') # 判斷字串是否以指定字元結束
# 字串變換
str35 = str.title() # 返回標題化字串(首字母大寫)
str36 = str.swapcase() # 字串大小寫反轉
str37 = str.upper() # 字串均轉為大寫
str38 = str.lower() # 字串均轉為小寫
str39 = str.expandtabs(tabsize=8) # 將字串中的tab符號('\t')轉換為空格,預設的空格數(tabsize引數)是8;
map = string.maketrans('abc', '123') # 建立字元對映的轉換表,第1,2引數逐一對應轉換關係
str40 = str.translate(map, 'de') # 對字串執行轉換,第2引數為需要刪除的引數
每天進步一點點
很多朋友總喜歡問 成功靠什麼?其實,成功很難單一的歸納為靠什麼條件,如果一定要回答,只能從某種意義上說 很多人的成功就是靠他們每天比別人 多做一點點 正如古人有云 業精於勤,荒於嬉。這裡所說的勤,也就是比別人多做一點點,即付出多一點的勞動和努力。不要小看這一點點,又如古語說 集腋成裘,積沙成丘。如果...
每天進步一點點
在模組化程式設計時,在子模組中宣告變數 例如unsigned char aa 不需要在標頭檔案中宣告 要在主函式中呼叫,要寫成 extern unsigned char aa 而不能寫成 extern aa 寫成extern aa 則無法改變aa的值。2014年9月22日 21 12 00 品質因數...
每天進步一點點(一)
最近接了第乙個商業專案,一人獨立完成從前台到後台,做了有幾天的時間,每天進步一點點,把每天看到的學到的記錄下來,以後也堅持。後台繼續用自己的extjs老本行,因為相比其他js庫,extjs用的比較熟,現成的 也有所以開發起來也比較容易,今天學到了兩個ext的新東西。一 ext和後台進行互動大部分用的...