dos = r"c:\news"
「例如r"c:\news",由r開頭引發的字符串就是聲明瞭後面引號裏的東西是原始字符串,在裏面聽任何字符都表示該字符的原始含義。
這種方法在作網站設置和網站目錄結構的時候很是有用,使用了原始字符串就不須要轉義了。」
做用:
用來記錄文本(文字)信息,給人類識別用的,爲人們提供註釋解釋說明
表示方式:
在非註釋中,凡是用引號括起來的部分都是字符串
' 單引號
" 雙引號
''' 三單引號
""" 三雙引號
空字符串的字面值表示方法
''
""
'''
"""
單引號和雙引號的區別:
單引號的內的雙引號不算結束符
雙引號的內的單引號不算結束符
擴展:由於解釋執行器根據單引號爲開始符日後找單引號做爲結束符,要是雙引號爲開始符,日後找到雙引號結束爲止。python
三引號字符串的做用:多行字符串
三引號字符串中的換行會自動轉換爲換行符
三引號內能夠包含單引號和雙引號
示例:git
1 s = 'welcome to beijing!\nI like python!\nI am Studing!' 2 print(s)
隱式字符串字面值鏈接:注意:只用常量值才能夠函數
1 s = "I'm a tencher!" 'My name is liuzhihua' 2 >>> s 3 "I'm a tencher!My name is liuzhihua"
若是一個字符串同時包含以下字符該怎麼辦?
用轉義序列表明特殊字符
字符串字面值中,用字符反斜槓(\)
後跟一些字符表明特殊的一個字符
反斜槓轉義字符表:
\' 單引號
\" 雙引號
\''' 三單引號
\""" 三雙引號
\\ 一個反斜槓
\n 換行
\r 返回光標至首行
示例: post
1 >>> print('ABCD\rab') 2 abCD
\t 水平製表符(有的終端默認4空格,有的默認8個空格)
\v 垂直製表符
\f 換頁
\b 倒退
\0 空字符,字符值爲空
\xXX XX爲兩位十六進制表示的字符 ASCII編碼:ASCII表:$ man ascii
示例:print('\x41','\x42') 輸出 A B
經常使用的ASCII編碼:(0-127共128個(十進制))
字符 十進制 十六進制
'0' --'9' 48 --57 0x30--0x39
'A' --'Z' 65 --90 0x41--0x5a
'a' --'z' 97 --122 0x61--0x7a網站
同一編碼:分爲Unicode16字符和Unicode32字符
\uXXXX XXXX個十六進制表示的Unicode16字符2**16=65536(0-65535)
\UXXXXXXXX 8個X十六進制表示的Unicode32字符2**32
計算機存儲文字,是以圖片形式保持,用整數返回編碼
ascii 編碼 美國的信息交換標準碼(記錄128個英文字符對應的編碼)
Unicode (記錄65536個文字(包含英文128個ascii編碼))
ascii編碼和Unicode的區別:
ascii編碼:用8個位表示文字,最高位必定爲0,低7位表示數值(0-127共128個)
Unicode編碼:用16個位組成的(0-65535共65536個)0x0000-0xffff
原始字符串:
r
字符串的比較運算:比較是的編碼值
< > <= >= == =!
字符串的運算
+ +=拼接
* *=重複
in / not in 成員檢查運算 字符在字符串中返回True,不然返回False
字符串的索引 index(數學含義:下標)
字符串的切片 slice
字符串函數
len(s)
max(s)
min(s)
ord(單個字符) 返回十進制編碼值
chr(整數) 返回整數對應的編碼值的字符 最大範圍110000
python基礎第四天正式
字符串的格式化表達式
做用:
生產必定格式的字符串
語法格式:
格式字符串 % 參數值
格式字符串 % (參數值1,參數值2,...)
說明:
格式化字符串%以開頭的爲佔位符,佔位符的位置將用參數值替換。
示例:
fmt = 'name:%s,age:%d'
name = 'tarena'
age = 15
s = fmt % (name,age)
格式化字符串的佔位符和類型碼
%s 字符串 使用str(obj)轉爲字符串
%r 字符串,使用repr(obj)轉爲字符串
%c 整數轉爲字符串,使用chr(i)函數
%d 十進制整數
%o 八進制整數
%x 十六進制整數(字符小寫a--f)
%X 十六進制整數 (字符大寫A--F)
%e 指數型浮點數(e小寫)如:2.9e+4
%E 指數型浮點數(E大寫)如:2.9E+4
%f,%F 浮點十進制形式
%g,%G 進制進形式浮點或指數浮點自動轉換
%% 等同於一個%字符
格式化字符串的佔位符和類型碼語句:
%[- + 0 寬度.精度]類型碼
- 左對齊
+ 右對齊
0 左側空白位置補零(只有數字才能夠)
寬度:整個數據輸出的寬度
精度:保留小數點後多少位,默認6位。
示例:spa
1 '%10d' % 123 #' 123' 2 '%+10d' %123 #' +123' 3 '%-10d' %123 #'123 ' 4 '%10s' % 'ABC' #' ABC' 5 '%f' % 3.1415926535 # '3.141592' 6 '%7.2f' % 3.1415926535 # ' 3.14'
序列的概念
字符串就是序列
求序列的長度函數len
len(x) 返回字符串的字符個數code
raw 字符串(原始字符串)
格式:
r'字符串內容'
r"字符串內容"
r'''字符串內容'''
r"""字符串內容"""
做用:
讓轉義符號\ 無效對象
在Python中,由「r」開頭的做用=字符串的原始含義blog
dos = r"c:\news"
「例如r"c:\news",由r開頭引發的字符串就是聲明瞭後面引號裏的東西是原始字符串,在裏面聽任何字符都表示該字符的原始含義。
這種方法在作網站設置和網站目錄結構的時候很是有用,使用了原始字符串就不須要轉義了。」
示例:
1 s = 'C:\newfile\test.py' 2 print(s) 3 print(len(s)) 4 5 s = r'C:\newfile\test.py' 6 print(s) 7 print(len(s))
字符串的運算:
+ 加號運算符用於拼接字符串
* 運算符用於生產重複的字符串
示例:
1 s = "ABC" +"DEF" # s = "ABCDEF" 2 s1 = '123' * 3 # s1 = '123123123'
注:同類型的數據才能相加,相乘只能和整數相乘
做用:
用於判斷某個字符串是否在當前字符串中出現過,若是出現過返回True,不然返回False。
擴展:字符串只要完整在當前字符串出現過就返回True
語法:
對象 in 字符串
示例:
s = 'welcome to tarena'
'to' in s # True
'wei' in s # False
'welc' in s # True
字符串的比較運算
運算符:
> >= < <= == !=
規則:
依次從左到右按編碼值進行比較,直到最短字符串結束爲止。
比較的它們在計算機內數字編碼(ASCII編碼),比較出結果就不在比較。
示例:
1 'a' < 'b' #True 2 'abc' < 'abd' #True 3 'a' < 'ab' #True 4 'abc' < 'acb' #False 5 'a' > '1232443545' #True 6 'a' > 'ASAADASDAAS' #True
語法:
字符串[整數表達式]
說明:
Python序列均可以用索引來訪問序列中的對象
Python 序列的正向索引是從0開始第二個索引是1,最後一個索引是len(s)-1.
Python 序列的反向索引最後是-1,倒數第二個索引是-2,第一個一個索引是-len(s).
做用:
從一個字符串序列中取出相應元素從新組成一個字符串序列
語法:
字符串[(開始索引b):(結束索引e)(:(步長))]
注:小括號()括起的部分表明能夠省略
說明:
1.開始索引是切片開始切下的位置,0表明第一個元素,1表明第二元素,-1表明最後一個元素
2.結束索引是切片的終止索引(但不包含終止點)
3.步長是切片每次獲取完當前元素後移動的方向和偏移量。沒有步長,至關於取值完成後向右移動一個索引位置
(步長默認是1)。
3.1.當步長爲正數時,取正向切片:
開始索引爲0,結束索引默認爲len(s)
3.2.當步長爲負數時,取反向切片:
默認的起始位置是最後一個元素,終止位置是第一個元素的前一個位置。
python字符串格式化符號
符 號 | 描述 |
---|---|
%c | 格式化字符及其ASCII碼 |
%s | 格式化字符串 |
%d | 格式化整數 |
%u | 格式化無符號整型 |
%o | 格式化無符號八進制數 |
%x | 格式化無符號十六進制數 |
%X | 格式化無符號十六進制數(大寫) |
%f | 格式化浮點數字,可指定小數點後的精度 |
%e | 用科學計數法格式化浮點數 |
%E | 做用同%e,用科學計數法格式化浮點數 |
%g | 根據值的大小決定使用%f活%e |
%G | 做用同%g,根據值的大小決定使用%f活%e |
%p | 用十六進制數格式化變量的地址 |
格式化操做符輔助指令:
符號 | 功能 |
---|---|
* | 定義寬度或者小數點精度 |
- | 用作左對齊 |
+ | 在正數前面顯示加號( + ) |
<sp> | 在正數前面顯示空格 |
# | 在八進制數前面顯示零('0'),在十六進制前面顯示'0x'或者'0X'(取決於用的是'x'仍是'X') |
0 | 顯示的數字前面填充'0'而不是默認的空格 |
% | '%%'輸出一個單一的'%' |
(var) | 映射變量(字典參數) |
m.n. | m 是顯示的最小總寬度,n 是小數點後的位數(若是可用的話) |
Python轉義字符
在須要在字符中使用特殊字符時,python用反斜槓(\)轉義字符。以下表:
轉義字符 | 描述 |
---|---|
\(在行尾時) | 續行符 |
\\ | 反斜槓符號 |
\' | 單引號 |
\" | 雙引號 |
\a | 響鈴 |
\b | 退格(Backspace) |
\e | 轉義 |
\000 | 空 |
\n | 換行 |
\v | 縱向製表符 |
\t | 橫向製表符 |
\r | 回車 |
\f | 換頁 |
\oyy | 八進制數yy表明的字符,例如:\o12表明換行 |
\xyy | 十進制數yy表明的字符,例如:\x0a表明換行 |
\other | 其它的字符以普通格式輸出 |
python3中經常使用與序列的函數
len(x) 返回序列的長度
max(x) 返回序列的最大值
min(x) 返回序列的最小值
示例:
1 s = 'hello' 2 len(s) >>> 5 3 max(s) >>> 'o' 4 min(s) >>> 'e'
字符串編碼轉換函數:
ord(c) 返回一個字符的Unicode值
1 >>> ord("宋") 2 23435 3 >>> ord("紅") 4 32418
chr(i) 返回這個整數值所對應的字符
整數轉字符串函數
bin(i) 把整數轉換給二進制字符串
oct(i) 把整數轉換給八進制字符串
hex(i) 把整數轉換給十六進制字符串
字符串構造函數:
str(obj = '') 將對象轉換爲字符串
示意:
'123' + 456 # 出錯,不合法
str(True) #'True'
str(None) #'None'
str(3.14) #'3.14'
經常使用的字符串方法(method):
語法:
對象名.方法(方法傳參)
示例:s = 'abc'
s.alpha()
文檔參見:
isdigit() :判斷所有是否爲數字,所有爲數字則返回True,不然返回False。
isalpha() :判斷所有是否爲字母,所有爲字母則返回True,不然返回False。
isupper() :判斷字母否是所有爲大寫,是則返回True,不然返回False。
islower() :判斷字母否是所有爲小寫,是則返回True,不然返回False。
count(s,start,end) :返回子串在字符串個數,開始和結束位置能夠不選擇
find(s,start,end) :返回子串在字符中索引的位置,沒有找到則返回-1
upper() :把字符串的字母所有轉化爲大寫
lower() :把字符串的字母所有轉化爲小寫
strip() :刪除字符串左右兩邊的空格
lstrip() :刪除字符串右兩邊的空格
rstrip() :刪除字符串左兩邊的空格
startswith(s,start,end) :檢查開始的字符是否
endswith(s,start,end) :檢查結束的字符是否
center(number,[fill]) :把字符按照輸入的數字空格排放在中心,其餘的地方填充
replace(old,new,count) :
練習:
1.輸入一個字符串用變量s綁定
1.1判斷你輸入的字符串有幾個空格
1.2講原字符串的左右空白字去掉,打印出剩餘的字符個數
1.3判斷你輸入的是否數字
1.4若是是數字,判斷這個數字是否大於100.
2.輸入三行文字,讓這三行文字在一個方框內居中顯示:
如輸入:
hello!
I'm studing python
I like python
顯示以下:
+----------------------------+
| hello! |
| I'm studing python |
| I like python |
+----------------------------+
注意:請不要輸入中文
1 #符串work.py 2 #1.寫一個程序,輸入一段字符串,若是字符串不爲空,把第一個字符的編碼值打印出; 3 #2.寫一個程序,輸入整數值(0--65535),打印出這個數值對應的字符。 4 while True: 5 6 s = input('請輸入:') 7 if s == '': 8 print('你輸入的是空的字符串') 9 else: 10 print(s,'這個字符串第一個字符的編碼值是',ord(s[0])) 11 i = int(input('請輸入0至65535之間的一個整數:')) 12 print(i,"這個整數對應的字符是",chr(i)) 13 choice = input("輸入0退出,按其餘繼續輸入") 14 if choice == '0': 15 break
1 #字符串.py 2 #輸入一個字符串,把字符串的第一個字符和最後一個字符去掉,打印出處理的結果。 3 #輸入任意字符串,判斷這個字符串是否迴文:迴文示例:上海自來水來自海上 4 while True: 5 s = input("請輸入:") 6 print('原來字符串:',s,"去掉第一和最後一個字符的處理結果:",s[1:-1]) 7 #l=len(s)//2 8 #if s[0:l+1] == s[-1:-(l+2):-1]: #拿先後半段來對比 9 if s == s[::-1]: #直接反向排序來對比 10 print(s,'是迴文') 11 else: 12 print(s,'不是迴文') 13 choice = input('輸入0退出,按其餘繼續輸入:') 14 if choice == '0': 15 break
1 # 1.輸入一個字符串用變量s綁定 2 # 1.1判斷你輸入的字符串有幾個空格 3 # 1.2將原字符串的左右空白字去掉,打印出剩餘的字符個數 4 # 1.3判斷你輸入的是否數字 5 # 1.4若是是數字,判斷這個數字是否大於100. 6 while True: 7 s = input('請輸入:') 8 space = s.count(' ') 9 s1 = s.replace(' ','') 10 l = len(s1) 11 print(s,"你輸入的字符串有",space,'空格') 12 print('去掉',space,'空格後','剩餘的字符個數:',l) 13 if s.isdigit(): 14 if int(s) <= 100: 15 print(int(s),'小於等於100') 16 else: 17 print(int(s),'大於100') 18 else: 19 print(s,'不是一個純數字字符串') 20 choice = input("按0退出,按其餘請繼續輸入") 21 if choice == '0': 22 break
1 # 2.輸入三行文字,讓這三行文字在一個方框內居中顯示: 2 # 如輸入: 3 # hello! 4 # I'm studing python 5 # I like python 6 # 顯示以下: 7 # +----------------------------+ 8 # | hello! | 9 # | I'm studing python | 10 # | I like python | 11 # +----------------------------+ 12 # 注意:請不要輸入中文 13 while True: 14 s = input('請輸入') 15 s1 = input('請輸入') 16 s2 = input('請輸入') 17 print('+'+'-'*30+'+') 18 print('|'+s.center(30)+'|') 19 print('|'+s1.center(30)+'|') 20 print('|'+s2.center(30)+'|') 21 print('+'+'-'*30+'+') 22 print('='*(lenght+4)) 23 #方法2 24 lenght = max(len(s),len(s1),len(s2))#來控制寬度 25 print('+'+'-'*(lenght+2)+'+') 26 print('|'+s.center(lenght+2)+'|') 27 print('|'+s1.center(lenght+2)+'|') 28 print('|'+s2.center(lenght+2)+'|') 29 print('+'+'-'*(lenght+2)+'+') 30 choice = input("按0退出,按其餘請繼續輸入") 31 if choice == '0': 32 break