循環和字符串使用
%02d 表示該整型數占空兩位,不夠高位補0 0:補0 , 2:占空2位
%-05d 左對齊
數23: %05d >>00023 %-05d >>>23 占空5格,數字放高位,後面不會再補0
%.2f 表示保留兩位小數
偽三目運算
將if else 語句強制性寫在一行的一個簡單運算
result1 if 判斷條件 else result2
result可以是一個語句,也可以是一個值
判斷真假科普
a= # 假:0 False None "" [] {} () 真:" ",非0number.....
?
if a:
?
print("真")
?
else:
?
print("假")
print(6 and 8)
>>8
print(6 or 8)
>>6
循環語句
while循環之else
while 判斷條件:
循環語句
else:
循環語句
while循環正常結束時,else語句正常執行;非正常結束時,else語句不執行,例如break跳出循環屬非正常
註: while 條件:語句 當循環語句只有一條時,可以寫在一行
for循環之else
同while
使用環境:
沒有給定循環次數時,使用while循環
給定循環具體次數,用for循環方便
字符串拼接
1.使用 "," 拼接,會在逗號處產生一個空格
2.使用 "+"拼接,要求數據類型必須相同
3.格式化輸出 %
4.使用函數拼接 " ".join(seq) 拼接,要求序列中元素必須為字符串
例: "*".join(list1) 以" * "連接.
字符串重復輸出:
str1*n 將str1重復輸出n次
獲取字符串中的字符
str1[index] 通過索引值(下標)進行獲取.索引從0開始
取值範圍[0,len(str1))
索引為負數,則從右往左取
字符串截取
str1[start : end : step]
start: 默認0,不給該參數,則從下標0開始
end : 默認len(str1),不給參數則取到末尾
取值範圍[start,end)
字符串反轉: str1[: : -1]
註意: str對象不支持項賦值 ( str[0]="x" :不支持該操作)
判斷包含指定字符
str1 in str2 判斷str1是否是str2的字符串
字符串常用函數
內置函數:
eval(str1) : 將字符串轉為有效的表達式並且返回計算的結果 具體就是去掉引號
len(str1) 返回字符串長度
字符串函數: (操作完後返回的是一個新的字符串)
str1.lower() 將字符串中所有大寫字母轉為小寫字母
str1.upper() 將字符串中所有小寫字母轉為大寫字母
str1.swapcase() 將字符串中大寫變小寫,小寫變大寫
str1.capitalize() 將字符串中的第一個字符轉為大寫,其他都小寫
str1.title() 將字符串中每個單詞首字母大寫,其他都小寫
str1.center(50," * ") 返回一個50長度的字符串,str1居中,兩邊補*
str1.ljust(50," * ") 居左 str1.rjust(50," * ") 居右
str1.zfill(width) 返回一個width長度的字符串 ,str1右對齊,前面補0
str1.count(子串,start,end) 統計 子串 在指定範圍內出現的次數,若不指定範圍,則統計整個字符串
str1.find(子串,start,end) 在str1中查找 字串,若存在則返回子串第一個字母第一次出現時所在下標,若找不到,則返回-1
str1.rfind() 從右往左查找
str1.index() 作用同str1.find,若找不到,則報錯
str1.lstrip(子串) 去掉左邊指定的字符,若不指定,則默認去掉空白符[\n,\r,\t," "]
str1.rstrip(子串) 去掉右邊指定的字符,若不指定,則默認去掉空白符[\n,\r,\t," "]
str1.strip(子串) 去掉兩邊指定的字符,若不指定,則默認去掉空白符[\n,\r,\t," "]
字符串的分割替換
str1.split(子str,maxsplit=3) 參數可以不寫maxslipt 以指定的子字符串str對str1進行切片,若不指定字符串,則默認以空白符進行切. maxsplit=3:最大切割次數;若不指定,則全部切片. 返回結果以列表list形式顯示
str1.splitlines(keepends=False) 按行切片,keepends=true:保留換行符;False默認,不保留
str1.join(seq) 以指定字符串作為分隔符,將序列中的所有元素合並為一個新字符串 (序列中的元素必須為字符串) 返回一個新的字符串
str1.replace(子串,新串,count) 將str1中子串替換為指定的新字符串,count 為替換個數,替換前幾個;若不指定,則全部替換
str.maketrans(oldstr,newstr) 映射替換 translate()
str1.startswith("str2",start,end) 在給定範圍內,判斷字符串是否以給定的字符串開頭,若不指定範圍,則默認整個字符串
str1.endswith("str2",start,end) 在給定範圍內,判斷字符串是否以給定的字符串結尾,若不指定範圍,則默認整個字符串
str1.encode(encoding="utf-8",errors="scrict") 對字符串編碼,若不指定encoding則默認utf-8
str1.decode(encoding="utf-8") 對字符進行解碼,若不指定編碼格式,默認utf-8,例如: "hello".encode("utf-8").decode() 註意:解碼時的編碼格式要與編碼時一致, errors = ignore 的時候,忽略錯誤
判斷是否為字母或數字
str1.isalpha() 判斷字符串至少有一個字符,且所有的字符都是字母,若真返回True,否返回False [不考慮中文]
str1.isalnum() 判斷字符串至少有一個字符,若所有字符都是字母或數字,真則返回True,否返回False [不考慮中文]
判斷大小寫
str1.isupper() 若字符串中包含至少一個字母的字符,若這些字母都是大寫,則返回True,否False
str1.islower() 若字符串中包含至少一個字母的字符,並且這所有的字母都是小寫,則返回True,否False
判斷是否包含特殊字符
str1.istitle() 如果一個字符串是標題化的,則返回True,否則返回False (標題化: 每個首字母大寫 例:"Hello Word")
str1.isdigit() 只識別阿拉伯數字,羅馬數字
str1若為: Unicode數字("1"), byte數字(單字節)(b"1"), 全角數字(雙字節)("1"), 羅馬數字 返回True; 若為: 漢字,字母等其他,返回False; 若為無: error
str.isnumeric() 識別阿拉伯數字,漢字數字(包括大小寫:一,壹)
若字符串中只包含數字,則返回True,否返回False; str1若為: Unicode數字, 全角數字(雙字節), 羅馬數字, 漢字數字 返回True; 若為: byte數字(單字節),error; 若為無: False
str1.isdecimal() 只識別阿拉伯數字
判斷str1是否只包含十進制字符,是True,否False; str1若為: Unicode數字,全角數字(雙字節)返回True; 若為 羅馬數字,漢字數字 返回False; 若為 byte數字 :error
str.isspace() 若果字符串只包含空格 ,則返回True(" ", \t , \n, \r ),否則返回False
ASCLL碼轉換
ord(str1) 獲取字符的ASCLL值 例:A-->65 "你"-->20320
chr(68) 將編碼轉換成對應的字符 例: 68-->D 20190-->"仞"
字符串的大小比較
實際上是比較字符串的ASCII碼, 比較時先比較第一個字符,若相等則比較第二個字符,以此類推.
例:"a">"b" >>False "a"<"b" >>True
循環和字符串使用