迴圈和字串使用

2022-08-23 15:42:14 字數 4172 閱讀 4099

%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

字串和While迴圈

字串是以單引號或雙引號括起來的任意文字 建立字串 字串運算 訪問字串中的某乙個字元 字串名 下標 str11 1 a 字串不可變 會報錯 擷取字串中的一部分 str13 shaoge is a good man str16 str13 0 5 從頭擷取到定下標之前 格式化輸出 字串處理函式 len ...

bool 字串方法 和for迴圈

布林值轉換數字 true int int true int false bool int 注意點 只有0是false 布林值轉字串 a s bool a print s a false print type a s str a print s print type s 注意點 字串轉布林值的時候,只...

字串處理 字串迴圈右移

1 字串迴圈右移 解法 根據題意,編寫的函式能把字串迴圈右移n位。例如字串 abcdefghi 如果n 2,移位後是 hiabcdefg 1 先翻轉前段 gfedcba hi 2 再翻轉後段 gfedcba ih 3 最後翻轉整個 hi abcdefg 得到想要的結果。下面是c語言的指標操作 7 1...