1. 程式人生 > >循環和字符串使用

循環和字符串使用

居右 dig 字符串截取 make ade encoding 循環 uil sla

格式化輸出

%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

循環和字符串使用