字符串:str
用來記錄文本信息
字符串的表示方式:
在非注釋中凡是用引號括起來的部分都是字符串
‘’ 單引號
“” 雙引號
''' ''' 三單引
""" """ 三雙引
有內容代表非空字符串否則是空字符串
區別:
單引號內的雙引號不算結束符
雙引號內的單引號不算結束符
三引號內的換行會自動轉換為換行符
三引號內可以包含單引號和雙引號
隱式字符串拼接:
s = "I'm a I'm a programmer" 'heoll "wored"'
轉移符:
\' 單引號
\" 雙引號
\\ 單反斜杠
\n 換行
\r 返回光標至行首
\t 水平制表符
\v 垂直制表符
\f 換頁
\b 倒退
\0 空字符,字符值為0
\xXX ,XX為兩位16進制表示的自符
\uXXXX ,XXXX為4個16進制的Unicode16字符
\UXXXXXXXX ,8個16進制表示的Unicode32字符
ASCII編碼:
man ASCII :查看幫助文檔命令
常用ASCII編碼:
字符 十進制 十六進制
0 48 0x30
A 65 0x41
a 97 0x61
Unicode:
統一編碼,分為Unicode16、Unicode32
序列的概念:
字符串就是序列
函數:
len(x) 返回字符串的字符個數
raw 字符串:
讓轉義符號\無效
格式:
r‘字符串內容’
print(r“\n\\\t”)
字符串的運算:
+ 用於拼接字符串
* 用於生成重復字符串
字符串的相乘只能與整數
+= *= 與其他符合運算符相同
in / not in 運算符:
用於判斷某個字符串是否在
相當於字符串出現過 如果出現過返回true 否則返回false
字符串的比較運算:
> >= < <= == !=
依次按照編碼進行比較,直到最短字符串結束為止
索引(下標):
Python的字符串是不可以改變字符序列的
index:
字符串[整數表達式]
Python序列都可以用索引來訪問序列中的對象
Python的序列正向索引是沖0開始的最后一個索引為len(s)-1
Python序列的反響索引是從-1開始的 -1是最后一個 第一個是 -len(s)
切片:
slice
從一個字符串序列中取出相應的元素重新組成一個字符串系列
語法:
字符串序列[(開始索引b):(結束索引e):(步長s)]
小括號括起的部分代表可省略
說明:
開始索引是切片開始切下的位置,0代表第一個元素,1代表第二個,-1代表最后一個
結束索引是切片的終止索引(但不包括終止點)
步長:
是切片每次獲取當前元素后移動的方向和偏移量
沒有步長,相當於取值完成后向右移動一個索引的位置默認1
當步長代表為正數時取正向切片 步長默認為1 開始位置為0 結束為len(s)步長代表下一次索引的取值增長值
當步長為負數時 取反向切片 默認的起始位置是最后一個元素,終止位置是第一個元素的前一個位置
Python3中常用於序列函數:
len(x)返回序列長度
max(x)返回序列最大值元素
min(x)返回序列最小止元素
字符串編碼轉換函數:
ord(c)返回一個字符的Unicode值(十進制)
chr(i)返回 i這個整數的值所對應的字符
整數轉字符串函數:
bin(i) 將整數轉換為二進制的字符串
oct(i) 將整數轉換為八進制的字符串
hex(i) 將整數轉換為十六進制的字符串
二進制轉換其他進制是非常好轉的 如圖:
100=4 101=5 10=2 156=0o452 (八進制)
1100=c 1001=9 156=0x9c (十六進制)
字符串的構造函數:
str(obj=“”) 將對象轉換為字符串
常用的字符串方法:
文檔參見:
對象.方法名(方法傳參)
"abc".isalpha() # 語法是對的
123.isalpha() # 語法是錯的
方法 說明
S.isdigit() 判斷字符串中的字符是否全為數字
S.isalpha() 判斷字符串是否全為英文字母
S.islower() 判斷字符串所有字符是否全為小寫英文字母
S.isupper() 判斷字符串所有字符是否全為大寫英文字母
S.isspace() 判斷字符串是否全為空白字符
S.center(width[,fill]) 將原字符串居中,左右默認填充空格 width:所居中字符串的長度 fill:默認填充空格
S.count(sub[, start[,end]]) 獲取一個字符串中子串的個數 sub:所要獲取的字符串 start:起始位置 end:結束位置
S.find(sub[, start[,end]]) 獲取字符串中子串sub的索引,失敗返回-1 start:起始位置 end:結束位置
S.strip() 返回去掉左右空白字符的字符串
S.lstrip() 返回去掉左側空白字符的字符串
S.rstrip() 返回去掉右側空白字符的字符串
S.upper() 生成將英文轉換為大寫的字符串
S.lower() 生成將英文轉換為小寫的字符串
S.replace(old, new[, count]) 將原字符串的old用new代替,生成一個新的字符串 count:更換的次數
S.startswith(prefix[, start[, end]]) 返回S是否是以prefix開頭,如果以prefix開頭返回True,否則返回False,
S.endswith(suffix[, start[, end]]) 返回S是否是以suffix結尾,如果以suffix結尾返回True,否則返回False
以下是不常用的
S.title() 生成每個英文單詞的首字母大寫字符串
S.isnumeric() 判斷字符串是否全為數字字符
練習:
1.
輸入一個字符串用s綁定
判斷輸入有幾個人空格
將原字符串的左右空格空白符去掉
打印剩余的字符個數
判斷輸入的是否是數字
如果是數字判斷這個數是否大於100
答案:
print("Answer to question 1:", "\n") s = input("plaese input at will string:") print("you input string blank have ", s.count(" ")) print("string surplus:", len(s.strip())) if s.isdigit() is True: if int(s) > 100: print("input integer:", s, ">100") else: print("input integer:", s, "<100") else: print("you input contain alpha:", s)
2.
輸入3行文字,讓這三行文字在一個方框內居中顯示
顯示如下:
+---------------+
| hello |
| 123123 |
| |
+---------------+
注:請不要輸入中文
答案:
print("Answer to question 2:", "\n") a = input("plaese input at will string 1:") b = input("plaese input at will string 2:") c = input("plaese input at will string 3:") top = a if top < b: top = b if top < c: top = c print("+" + "-" * (len(top) * 2 + 10) + "+") print("|" + a.center(len(top) * 2 + 10) + "|") print("|" + b.center(len(top) * 2 + 10) + "|") print("|" + c.center(len(top) * 2 + 10) + "|") print("+" + "-" * (len(top) * 2 + 10) + "+")