day8----總結 字符串

day8-字符串


  • 1.什么是字符串(str)

1)字符串
字符串是容器型數據類型(序列),單引號和雙引號是標志。引號中所有內容都是字符串的元素
2)字符串元素
字符串中元素又叫字符(在python中長度是1的字符串就可以看成字符)
a.轉義字符:特殊符號前加\,表示特殊意義和功能
\'  -  '
\"  - "
\n  -  換行
\\  -  \
\t -   相當于縮進

b.編碼字符:\u4位16進制數   將4位16進制數對應的編碼打印
1)字符編碼
2)ASCII和Unicode編碼表
中文對應的Unicode中的范圍:0x4e00  -  0x9fa5
3)字符編碼相關方法:
chr(編碼值)   -   將編碼值轉換成字符
ord(字符)   -   獲取字符對應的編碼值
str1 = 'abc\'123'
print(str1)    # abc'123
str2 = 'abc\n123'
print(str2)     # abc
                # 123
str2 = 'abc\\n123'
print(str2)    # abc\n123

print('\u5e00')    # 幣

# 2.字符編碼
print(chr(97))   # a
print(chr(0x1800))   # ?    蒙語
for x in range(0x1800, 0x18af):
    print(chr(x), end=' ')
print()

for x in range(0x1100, 0x11ff):
    print(chr(x), end=' ')
print()

# 打印中文
# num = 0
# for x in range(0x4e00, 0x9fa5):
#     num += 1
#     print(chr(x), end=' ')
#     if num % 50 == 0:
#         print()
# print()

# ord
print(ord('蔣'), ord('南'), ord('軻'))    # 33931 21335 36722
print(hex(ord('蔣')), hex(ord('南')), hex(ord('軻')))   # 0x848b 0x5357 0x8f72

print(ord('a'))  # 97

字符串相關操作

  • 1.獲取字符 - 和列表獲取元素一樣
str1 = 'hello world!'
# 1)獲取單個字符
print(str1[0])   # 'h'
print(str1[-2])   # 'd'

# 2)字符串切片
print(str1[2:6:2])   # 'lo'
print(str1[-2:-6:-1])   # 'dlro'
print(str1[2:6:-2])    # ''   空串
print(str1[3::-1])  # 'lleh'
print(str1[3:0:-1])   # lle
# 3)遍歷
for char in 'abc':
    print(char)
  • 2.字符串操作:
    1)+ 和 *
    字符串1 + 字符串2 - 將字符串1和字符串2拼接在一起,產生一個新的字符串
    字符串N、N字符串 - - 字符串重復出現N次產生一個新的字符串
str1 = 'abc'
str2 = '123'
print(str1 + str2)   # abc123
print(3 * str2)   # 123123123
  1. == !=:
print('abc' == 'abc')   # True
print('abc' == 'acb')   # False
  1. , <, <=, >=
    只能兩個字符串比較大小 -- 注意:從前往后按順序比較對應字母編碼的大小

# '0' <= char <= '9'  判斷是否是數字
# '\u4e00' <= char <= '\u9fa5'   判斷是否是中文
# 'a' <= char <= 'z'  判斷是否是小寫字母
# 'A' <= char <= 'Z'  判斷是否是大寫字母
  1. in /not in
    字符串1 in字符串2 - 判斷字符串2中是否包含字符串1

5)len, max, min, sorted, str
字符串轉換:所有數據都可以轉換成字符串,轉換時候是將數據放在引號中

    注意:轉義字符和編碼字符的長度都是1

6)r語法:
在字符串的最前面加r/R,可以阻止字符串中所有的轉義字符轉義

str1 = '\tabc\nare\'you!\u4e00'
print(str1)   # abc
            # are'you!一
str1 = r'\tabc\nare\'you!\u4e00'
print(str1)   # \tabc\nare\'you!\u4e00
str1 = '\tabc\\nare\'you!\u4e00'
print(str1)   # abc\nare'you!一

7)格式化字符串

在字符串中用格式占位符表示字符串中不確定的部分
a.語法:包含格式占位符的字符 % (數據1, 數據2 ,...) -()中數據的個數和類型要和前面的格式占位符一一對應
b.格式占位符:
%s   -   字符串
%d   -   整數
%.Nf  -  浮點數,N控制小數點后小數的位數 
%c    -  字符(可以將數字轉換成字符)
注意:1)不清楚數據類型時候,都可以用 %s 來作格式占位符
     2)所有的數據都可以使用%s來接收
str4 = 'a:%s, b:%d, c:%.2f, d:%f' % ('how', 100, 1.23456, 1.232)
print(str4)   # a:how, b:100, c:1.23, d:1.232000

字符串相關方法

1.對齊方式:
  • 字符串.center(寬度, 填充字符='') - 居中
str1 = 'abc'
print(str1.center(9, '+'))     # +++abc+++    居中
  • 字符串.ljust(寬度, 填充字符='') - 左對齊
print(str1.ljust(9, '+'))       # abc++++++   左對齊
  • 字符串.rjust(寬度, 填充字符= '') - 右對齊
print(str1.rjust(9, '+'))      # ++++++abc
  • 字符串.zfill(寬度) == 字符串.rjust(寬度, 0)
print(str1.zfill(9))   # 000000abc
2.統(tǒng)計子串個數
  • 字符串1.count(字符串2) - 統(tǒng)計字符串1中字符串2的個數
str1 = 'abcdbcgfa'
print(str1.count('a'))    # 2
3.獲取子串下標
  • 字符串.find(子串) - 查找到子串第一次出現的位置,不存在時候,返回-1
str1 = 'sdfghjkfdhsgasd'
print(str1.find('d'))     # 1
  • 字符串.index(子串) - 如果不存在,會報錯
str1 = 'sdfhsgasd'
print(str1.index('g'))   # 5
4.join方法
  • 字符串.join(序列) - 將序列中的元素用字符串連接產生一個新的字符串
    要求:序列中的元素必須是字符串,如果是字典,key是字符串
str2 = '+'.join('123')
print(str2)   # 1+2+3
5.替換
  • 字符串1.replace(字符串2,字符串3) - 將字符串1中的字符串2全部替換成字符串3
str1 = 'how are you! Im fine, thank you! and you?'
new_str1 = str1.replace('you', 'YOU') 
print(new_str1)    # how are YOU! Im fine, thank YOU! and YOU?
  • 字符串1.replace(字符串2, 字符串3,N) -- 將字符串1中的前N個字符串2替換成字符串3
new_str1 = str1.replace('you', 'me', 2) 
print(new_str1)   # how are me! Im fine, thank me! and you?
6.字符串切割
  • 字符串1.split(字符串2) - 將字符串2作為切割點切割字符串1, 返回一個列表
str1 = 'how are you! Im fine, thank you! and you?'
str_list = str1.split(' ')
print(str_list)   # ['how', 'are', 'you!', 'Im', 'fine,', 'thank', 'you!', 'and', 'you?']
str_list = str1.split('!')
print(str_list)  # ['how are you', ' Im fine, thank you', ' and you?']
7.將第一個字符變成大寫
  • 字符串.capitalize()
str = 'this is string' 
print (str.capitalize())      # This is string
8.endswith()方法
  • 字符串1.endswith(字符串2) - 判斷字符串1是否以字符串2結尾
str1 = 'hello world!!'
print(str1.endswith('!!'))   # True
9.lower() - 將字符串中所有大寫字符轉小寫
  • 字符串.lower()
str1 = 'JNKGJDsjdjjmc'
print(str1.lower())   # jnkgjdsjdjjmc
10.upper() - 將字符串中小寫字母全部轉成大寫
  • 字符串.upper()
str1 = 'ghjkcvb'
print(str1.upper())  # GHJKCVB
11.max() - 獲取字符串中最大的字母
  • max(字符串)
str1 = 'ghjkslieukd'
print(max(str1))   # u
12.rfind() - 類似find函數,不過是重右邊查找
  • 字符串1.rfind(字符串2,開始下標,結束下標)
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 1.什么是字符串(str) 1)字符串字符串是容器型數據類型(序列);以單引號或者雙引號作為容器的標志(引號中所有...
    舉顆鳳梨閱讀 680評論 0 1
  • 1 字符編碼 python中的編碼采用的是Unicode編碼。什么是編碼?就是數字和字符的一一對應的,其中字符對應...
    barriers閱讀 490評論 0 1
  • 一.認識字符串 什么是字符串(str)字符串是python中一種常用的有序但是不可變的容器類的數據類型,可以同時存...
    2ez4ddf閱讀 627評論 0 0
  • 1.什么是字符串 a.使用單引號或者雙引號括起來的字符集就是字符串。 b.引號中單獨的符號、數字、字母等叫字符 c...
    PIECE_MAN閱讀 1,913評論 0 6
  • 字符串 1.什么是字符串 序列:有序,不可變的。用單引號或者雙引號括起來的任意字符(集)。 2.字符串中的字符 a...
    落幕丶丶閱讀 901評論 0 0

友情鏈接更多精彩內容