字符串和字符編碼unicode

python基礎第三天

字符串 str

做用:
用來記錄文本(文字)信息,給人類識別用的,爲人們提供註釋解釋說明
表示方式:
在非註釋中,凡是用引號括起來的部分都是字符串
' 單引號
" 雙引號
''' 三單引號
""" 三雙引號
空字符串的字面值表示方法
''
""
'''
"""
單引號和雙引號的區別:
  單引號的內的雙引號不算結束符
  雙引號的內的單引號不算結束符
擴展:由於解釋執行器根據單引號爲開始符日後找單引號做爲結束符,要是雙引號爲開始符,日後找到雙引號結束爲止。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網站

 

Unicode

同一編碼:分爲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'

 


注:同類型的數據才能相加,相乘只能和整數相乘

in / not in 運算符

做用:
用於判斷某個字符串是否在當前字符串中出現過,若是出現過返回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

 

字符串的索引操做(index)

 

索引

語法:
字符串[整數表達式]
說明:
Python序列均可以用索引來訪問序列中的對象
Python 序列的正向索引是從0開始第二個索引是1,最後一個索引是len(s)-1.
Python 序列的反向索引最後是-1,倒數第二個索引是-2,第一個一個索引是-len(s).

切片(slice)

做用:
從一個字符串序列中取出相應元素從新組成一個字符串序列
語法:
字符串[(開始索引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
相關文章
相關標籤/搜索