FishC笔记—14 讲 字符串:各种奇葩的内置方法
生活随笔
收集整理的這篇文章主要介紹了
FishC笔记—14 讲 字符串:各种奇葩的内置方法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
本期內容詳解:
| capitalize() | 把字符串的第一個字符改為大寫 |
| casefold() | 把整個字符串的所有字符改為小寫 |
| center(width) | 將字符串居中,并使用空格填充至長度width的新字符串 |
| count(sub[,start[,end]]) | 返回sub在字符串里邊出現的次數,start和end參數表示范圍,可選。encode(encoding=’utf-8’, errors=’strict’)以encoding指定的編碼格式對字符串進行編碼。 |
| endswith(sub[,start[,end]]) | 檢查字符串是否以sub子字符串結束,如果是返回True,否則返回False。start和end參數表示范圍,可選。 |
| expandtabs([tabsize=8]) | 把字符串中的tab符號(\t)轉換為空格,如不指定參數,默認的空格數是tabsize=8。 |
| find(sub[,start[,end]]) | 檢測sub是否包含在字符串中,如果有則返回索引值,否則返回-1,start和end參數表示范圍,可選。 |
| index(sub[,start[,end]]) | 跟find方法一樣,不過如果sub不在string中會產生一個異常。 |
| isalnum() | 如果字符串至少有一個字符并且所有字符都是字母或數字則返回True,否則返回False。 |
| isalpha() | 如果字符串至少有一個字符并且所有字符都是字母則返回True,否則返回False。 |
| isdecimal() | 如果字符串只包含十進制數字則返回True,否則返回False。 |
| isdigit() | 如果字符串只包含數字則返回True,否則返回False。 |
| islower() | 如果字符串中至少包含一個區分大小寫的字符,并且這些字符都是小寫,則返回True,否則返回False。 |
| isnumeric() | 如果字符串中只包含數字字符,則返回True,否則返回False。 |
| isspace() | 如果字符串中只包含空格,則返回True,否則返回False。 |
| istitle() | 如果字符串是標題化(所有的單詞都是以大寫開始,其余字母均小寫),則返回True,否則返回False。 |
| isupper() | 如果字符串中至少包含一個區分大小寫的字符,并且這些字符都是大寫,則返回True,否則返回False。 |
| join(sub) | 以字符串作為分隔符,插入到sub中所有的字符之間。>>> str5 = 'Fishc' >>> str5.join('12345') '1Fishc2Fishc3Fishc4Fishc5' |
| ljust(width) | 返回一個左對齊的字符串,并使用空格填充至長度為width的新字符串。 |
| lower() | 轉換字符串中所有大寫字符為小寫。 |
| lstrip() | 去掉字符串左邊的所有空格 |
| partition(sub) | 找到子字符串sub,把字符串分成一個3元組(pre_sub,sub,fol_sub),如果字符串中不包含sub則返回(‘原字符串’, ’’, ’’) |
| replace(old,new[,count]) | 把字符串中的old子字符串替換成new子字符串,如果count指定,則替換不超過count次。>>> str7 = 'i love fishdm and seven' >>> str7.replace('e','E',2) 'i lovE fishdm and sEven' |
| rfind(sub[,start[,end]]) | 類似于find()方法,不過是從右邊開始查找。 |
| rindex(sub[,start[,end]]) | 類似于index()方法,不過是從右邊開始。 |
| rjust(width) | 返回一個右對齊的字符串,并使用空格填充至長度為width的新字符串。 |
| rpartition(sub) | 類似于partition()方法,不過是從右邊開始查找。 |
| rstrip() | 刪除字符串末尾的空格。 |
| split(sep=None, maxsplit=-1) | 不帶參數默認是以空格為分隔符切片字符串,如果maxsplit參數有設置,則僅分隔maxsplit個子字符串,返回切片后的子字符串拼接的列表。>>> str7.split () ['i', 'love', 'fishdm', 'and', 'seven'] |
| splitlines(([keepends])) | 按照‘\n’分隔,返回一個包含各行作為元素的列表,如果keepends參數指定,則返回前keepends行。 |
| startswith(prefix[,start[,end]]) | 檢查字符串是否以prefix開頭,是則返回True,否則返回False。start和end參數可以指定范圍檢查,可選。 |
| strip([chars]) | 刪除字符串前邊和后邊所有的空格,chars參數可以定制刪除的字符,可選。 |
| swapcase() | 翻轉字符串中的大小寫。 |
| title() | 返回標題化(所有的單詞都是以大寫開始,其余字母均小寫)的字符串。 |
| translate(table) | 根據table的規則(可以由str.maketrans(‘a’,‘b’)定制)轉換字符串中的字符。>>> str8 = 'aaasss sssaaa' >>> str8.translate(str.maketrans('s','b')) 'aaabbb bbbaaa' |
| upper() | 轉換字符串中的所有小寫字符為大寫。 |
| zfill(width) | 返回長度為width的字符串,原字符串右對齊,前邊用0填充。 |
典型課后題
還記得如何定義一個跨越多行的字符串嗎(請至少寫出兩種實現的方法)?
方法一:
>>> str1 = '''待我長發及腰,將軍歸來可好? 此身君子意逍遙,怎料山河蕭蕭。 天光乍破遇,暮雪白頭老。 寒劍默聽奔雷,長槍獨守空壕。 醉臥沙場君莫笑,一夜吹徹畫角。 江南晚來客,紅繩結發梢。'''方法二:
>>> str2 = '待卿長發及腰,我必凱旋回朝。\ 昔日縱馬任逍遙,俱是少年英豪。\ 東都霞色好,西湖煙波渺。\ 執槍血戰八方,誓守山河多嬌。\ 應有得勝歸來日,與卿共度良宵。\ 盼攜手終老,愿與子同袍。'方法三:
>>> str3 = ('待卿長發及腰,我必凱旋回朝。' '昔日縱馬任逍遙,俱是少年英豪。' '東都霞色好,西湖煙波渺。' '執槍血戰八方,誓守山河多嬌。' '應有得勝歸來日,與卿共度良宵。' '盼攜手終老,愿與子同袍。')三引號字符串通常我們用于做什么使用?
三引號字符串不賦值的情況下,通常當作跨行注釋使用
file1 = open(‘C:\windows\temp\readme.txt’, ‘r’) 表示以只讀方式打開“C:\windows\temp\readme.txt”這個文本文件,但事實上這個語句會報錯,知道為什么嗎?你會如何修改?
會報錯是因為在字符串中,我們約定“\t”和“\r”分別表示“橫向制表符(TAB)”和“回車符”,因此并不會按照我們計劃的路徑去打開文件。
Python 為我們鋪好了解決的道路,只需要使用原始字符串操作符(R或r)即可:
有字符串:str1 = ' <a href="http: //www. fishc. com/dvd" target="_blank">魚C資源打包</a>',請問如何提取出子字符串
str1[16:29]
如果使用負數作為索引值進行分片操作,按照第三題的要求你能夠正確目測出結果嗎?
str1[-45:-32]
還是第三題那個字符串,請問下邊語句會顯示什么內容?
str1[20:-36]
‘fishc’
請寫一個密碼安全性檢查的腳本代碼:check.py
程序演示:
方法一:
#密碼安全性檢查代碼 # #低級密碼要求: # 1.密碼由單純的數字或字母組成 # 2.密碼長度小于等于8位 # #中級密碼要求: # 1.密碼必須由數字、字母或特殊字符(僅限:~!@#$%^&*()_=-/,.?<>;:[]{}\|)任意兩種組合 #密碼長度不能低于8位 # #高級密碼要求: # 1.密碼必須由數字、字母及特殊字符(僅限:~!@#$%^&*()_=-/,.?<>;:[]{}\|)三種組合 # 2.密碼只能由字母開頭 # 3.密碼長度不能低于16位 str1 = "~!@#$%^&*()_=-/,.?<>;:[]{}\|" has_str1 = 0 has_num = 0 has_alpha = 0 t = 'y' while t == 'y': password = input("請輸入需要檢查的密碼組合:") length = len(password) while(password.isspace() or length == 0): password = input('您輸入的密碼為空(或空格),請重新輸入:') for i in password: if i in str1: has_str1 = 1 if i.isdigit(): has_num = 1 if i.isalpha(): has_alpha = 1 has = has_str1 + has_num + has_alpha if length <= 8 or password.isalnum(): level = "低" if length > 8 and has ==2: level = "中" if length >= 16 and has == 3 and password[0].isalnum(): level = "高" print("您的密碼安全等級評定為:%s"%level) if level == "高": print("請繼續保持") else: print("""請按以下方式提升您的密碼安全級別: 1.密碼必須由數字、字母及特殊字符三種組合 2.密碼只能由字母開頭 3.密碼長度不能低于16位""") t = input("還要再測試么?(”y“繼續,其他退出)")方法二:
#密碼安全性檢查代碼 # #低級密碼要求: # 1.密碼由單純的數字或字母組成 # 2.密碼長度小于等于8位 # #中級密碼要求: # 1.密碼必須由數字、字母或特殊字符(僅限:~!@#$%^&*()_=-/,.?<>;:[]{}\|)任意兩種組合 #密碼長度不能低于8位 # #高級密碼要求: # 1.密碼必須由數字、字母及特殊字符(僅限:~!@#$%^&*()_=-/,.?<>;:[]{}\|)三種組合 # 2.密碼只能由字母開頭 # 3.密碼長度不能低于16位 symbols = "~!@#$%^&*()_=-/,.?<>;:[]{}\|" chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ' nums = '0123456789' t = 'y' while t == 'y': passwd = input('您輸入的密碼為空(或空格),請重新輸入:') length = len(passwd) #判斷長度 while(passwd.isspace() or length == 0): passwd = input('您輸入的密碼為空(或空格),請重新輸入:') length = len(passwd) if length <= 8: flag_len = 1 elif 8 < length <16: flag_len = 2 else: flag_len = 3 flag_con = 0 #判斷是否包含特殊字符 for each in passwd: if each in symbols: flag_con +=1 break #判斷是否包含字母 for each in passwd: if each in chars: flag_con += 1 break #判斷是否包含數字 for each in passwd: if each in nums: flag_con += 1 break #打印結果 while 1: print("您的密碼安全級別評定為:",end='') if flag_len == 1 or flag_con == 1: print("低") elif flag_len == 2 or flag_con == 2: print("中") else: print("高") print("請繼續保持") break print("""請按以下方式提升您的密碼安全級別: 1.密碼必須由數字、字母及特殊字符三種組合 2.密碼只能由字母開頭 3.密碼長度不能低于16位""") break t = input("還要再測試么?(”y“繼續,其他退出)")方法三:
#密碼安全性檢查代碼 # #低級密碼要求: # 1.密碼由單純的數字或字母組成 # 2.密碼長度小于等于8位 # #中級密碼要求: # 1.密碼必須由數字、字母或特殊字符(僅限:~!@#$%^&*()_=-/,.?<>;:[]{}\|)任意兩種組合 #密碼長度不能低于8位 # #高級密碼要求: # 1.密碼必須由數字、字母及特殊字符(僅限:~!@#$%^&*()_=-/,.?<>;:[]{}\|)三種組合 # 2.密碼只能由字母開頭 # 3.密碼長度不能低于16位 str0 = """請按以下方式提升您的密碼安全級別: 1.必須由數字、字母及特殊字符三種組合(僅限:~!@#$%^&*()_=-/,.?<>;:[]{}\|) 2.密碼只能由字母開頭 3.密碼長度不能低于16位""" str1 = '您的密碼安全級別評定為:低\n' + str0 + """ 4.替王尼瑪給隔壁老王送上一把水果刀 5.告訴你的孩子,他是充話費下送的 6.召集另外三只小甲魚,喂他們突變劑,救紐約人民于水火 """ str2 = '您的密碼安全級別評定為:中\n' +str0 +""" 4.扶老奶奶過馬路,幫室友補襪子 """ str3 = '您的密碼安全評定為:高\n請繼續保持!' special = "~!@#$%^&*()_=-/,.?<>;:[]{}\|" letter = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ' number = '0123456789' t = 'y' while t == 'y': password = input("請輸入需要檢查的密碼組合:") #用num來統計字符類型出現次數 num = 0 a = b = c = 0 #輸入的不能為空 while password == '': password = input("不能為空,請重新輸入:") #計算num的值,如果輸入的全部是字符,那么num=0,所以才會有<=1 if password.isnumeric() or password.isalpha(): num = 1 else: for i in password: if a == 0 and i in special: num += 1 a = 1 elif b ==0 and i in number: num += 1 b = 1 elif c == 0 and i in letter: num += 1 c = 1 if password[0] in letter and num == 3 and len(password) >= 16: print(str3) elif num >= 2 and len(password) >= 8: print(str2) elif num <= 1 and len(password) < 8: print(str1) t = input("還要再測試么?(”y“繼續,其他退出)")總結
以上是生活随笔為你收集整理的FishC笔记—14 讲 字符串:各种奇葩的内置方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql group concat_M
- 下一篇: python局部静态变量_全局变量、局部