Python--基本的對象類型(字符串_不可變的數據類型)


1.1.4字符串

Python中的字符串也是一種對象類型,用str表示,通常用單引號或者雙引號包裹起來(多行字符串通常用三重引號表示),可以用type()查看對象類型。

--"abc"

--"""qwer"""

--'asd'

--'''zxc'''(注意多行注釋也是3重單引號)

1.1.4.1字符串的連接和復制

--用 + 來連接兩個字符串(注意:用 + 連接的兩個對象必須是同一類型

--用*來復制一個字符串(注意:不能將字符串復制小數次)

 1.1.4.2轉義字符和原始字符串

--當字符串中有特殊符號時,需要用到轉義字符;

轉義字符 描述
\(在行尾時) 續行符
\\ 反斜杠符號
\' 單引號
\" 雙引號
\a 響鈴
\b 退格(Backspace)
\e 轉義
\000
\n 換行
\v 縱向制表符
\t 橫向制表符
\r 回車
\f 換頁
\oyy 八進制數,yy代表的字符,例如:\o12代表換行
\xyy 十六進制數,yy代表的字符,例如:\x0a代表換行
\other 其它的字符以普通格式輸出

 

 

 

 

 

 

 

 

 

 

 

 

--原始字符串是指字符串里面的每個字符都是原始含義,由r開頭引起的字符串就是原始字符串

 1.1.4.3切片和索引

--切片和索引適用於序列(列表、元組、字典、集合)

--索引:用下標來表示字符串中個每個元素(python中下標從0開始),用index()函數來查找字符串中元素的索引

--切片:通過下標來獲取整體或者部分的字符串(注意切片的讀取順序),切片得到的字符串並不改變原字符串(根本原因是字符串為不可變對象

注意:序列的切片完整表示為 seq[start:end:step],start是開始的索引,如果為空就表示從第一個元素開始;end是結束的索引,如果為空就表示到末尾;step是步長,如果為空就表示步長為1

 1.1.4.4字符串的基本操作

字符串也是一種序列,序列都有以下操作。

--len()  求序列的長度,返回值默認為int

--+  連接兩個序列

--*  重復序列元素

--in  判斷元素是否在序列中(not in ),注意判斷的元素必須為連續元素

--max  返回最大值,順序為ASCII中的順序

--min  返回最小值

  --ord()得到一個字符所對應的的ASCII的數字編碼

  --chr()得到數字對應的字符編碼

 1.1.4.5字符串的格式化輸出

--作用:使得輸出內容具有連續性和可讀性。可以使用format()方法來對字符串進行格式化輸出,可以用dir(str)查看字符串的其他方法;help(str.format)可以查看具體用法。

dir()函數:不帶參數時,返回當前范圍內的變量、方法和定義的類型列表;帶參數時,返回參數的屬性、方法列表

 1.1.4.5字符串的常用方法

 --基本方法如下:

#字符串的常用方法   交互式模式下可以用dir(str)查看 print(dir(str))

# 1:首字母大寫
# test = "qwerdf"
# a = test.capitalize() #將字符串的首字母變為大寫
# print(a)

#2:元素變小寫
# test = "qWErfΓ"
# a = test.casefold()   #對於其他語言(非漢語或英文)中把大寫轉換為小寫的情況只能用casefold()方法
# b = test.lower()      #lower()方法只對ASCII編碼,就是‘A-Z’有效,
# print(a,b)

#3:字符串填充以及對齊
# test = "qwerdf"
# a = test.center(10,"啊")    #設置寬度以及填充符並將字符串居中
# b = test.ljust(15,"@")      #左對齊字符串並用填充符填充
# c = test.rjust(20,"%")      #右對齊字符串並用填充符填充
# d = test.zfill(25)          #右對齊字符串並用0作為填充符填充
# print(a)
# print(b)
# print(c)
# print(d)

#4:在字符串中尋找子字符串出現的次數
# test = "qwerdfqwerzxcv"
# a = test.count("er",2,15)     #傳入的兩個參數分別為字符串中的始末下標
# print(a)

#5:判斷字符串及其子字符串的開頭和結尾是否為特定字符
# test = "qwerdf"
# a = test.startswith("qw",0,8)     #判斷字符串的開始字符
# b = test.endswith("df",1,3)       #判斷字符串的結束字符
# print(a,b)

#6:將字符串中的制表符\t轉為空格,可以用來格式化輸出
# test = "username\tpassword\temail\nqingyu\t12345678\tqingyu@qq.com"
# a = test.expandtabs(20)     #按照傳入的值進行斷句,將\t和之前的字符串加起來等於20
# print(a)

#7:查找元素
# test = "qwerdf"
# a = test.find("q",1,5)             #獲取元素的下標,若元素不存在字符串中返回值為-1,反之為其索引
# a1 = test.rfind("f")
# b = test.index("q",0,5)            #獲取元素的下標,若元素不存在字符串中則報錯,反之為其索引
# b1 = test.rindex("q")
# print(a,b)

#8:格式化字符串
# a = "my name is {0},i am{1} old"
# b = "my name is {name},i am{age} old"   #可以以變量名來格式化
# c = {"name": "qingyu", "age": 20}       #針對字典類型的使用format_map()方法
# print(a.format("qingyu","20"))
# print(b.format(name = "qingyu",age = "20"))
# print("my name is {name},i am{age} old".format_map(c))

#9:判斷字符串組成
# a = "qwerdf123"
# b = "漢字qwe"
# c = "  "
# d = "123"
# e = "三四五123"
# f = "①123"
# print(a.isalnum())      #字符串中是否只由含字母(漢字)和數字組成,一個漢字占3個字節,占一個字符
# print(b.isalpha())      #字符串中是否只由含字母(漢字)組成
# print(c.isspace())      #字符串中是否只由空格組成
# print(d.isdecimal())    #字符串中是否只由十進制數字組成
# print(e.isnumeric())    #字符串中是否只由數字字符組成
# print(f.isdigit())      #字符串中是否只由數字組成

#10:字符串中是否存在不可顯示的字符,\t制表符,\n換行符
# test = "oiuas\tdfkj"
# a = test.isprintable()
# print(a)

#11:判斷字符串是否是標題格式,將字符串轉換為標題格式
# test = "i am a student"
# a = test.istitle()        #判斷字符串是否是標題格式
# print(a)
# b = test.title()          #將字符串轉換為標題格式
# print(b)
# c = b.istitle()
# print(c)

#12:判斷字符串是否全部是大小寫,將字符串轉換為大小寫
# test = "qingyu"
# a = test.islower()    #斷字符串是否全部是小寫
# b = test.lower()      #將字符串轉換為小寫
# print(a,b)
# c = test.isupper()    #斷字符串是否全部是大寫
# d = test.upper()      #將字符串轉換為大寫
# print(c,d)

#13:將字符串中的每一個元素按照指定分隔符進行拼接
# test = "qwerdf"
# a = "*".join(test)
# print(a,type(a))

#14:使用字符串中的元素來分割字符串,返回字符串中單詞的列表
# test1 = "qwer1234asdf1234adxf1adff35134"
# a = test1.split("w")         #默認分割完全(會拿掉分割的元素)
# b = test1.split("1",3)       #3表示分割次數,即就是分割成3+1個元素的列表,默認分割順序為由左到右
# print(a,b)
# c = test1.rsplit("1")        #分割順序為從右到左
# print(c)
# test2 = "qwrrd\n213211\n213214"
# d = test2.splitlines()          #默認不顯示保留換行符
# e = test2.splitlines(True)      #按照換行符來分割,參數為True則顯示保留換行符
# f = test2.splitlines(False)
# print(d,e,f)

#15:
# test = "qwer1234asdf1234adxf1adff35134"
# a = test.partition("f")     #按照指定字符分割,若能分割則分割為3部分(保留分割元素)
# b = test.rpartition("f")    #從末尾開始分割
# print(a,b)

#16:移除字符串中的特定字符串(空格也是字符串)
# test = "  qwerdf  "
# a = test.strip()        #1:移除空白,\t,\n
# print(a)
# print(test)
# test1 = "qwerdf"
# b = test1.strip("qwdf")       #2:刪除字符串開頭和結尾指定qwdf的字符
# c = test1.lstrip("qwdf")      #2:從左到右移除特定字符,優先最多匹配(刪除開頭)
# d = test1.rstrip("exrdf")     #2:從右到左移除特定字符,優先最多匹配(刪除結尾)
# print(b)
# print(c,d)

#17:按照對應關系替換相應字符串
# test1 = "qwerdf"
# test2 = "123456"
# m = str.maketrans(test1,test2)      #創建對應關系
# test = "reassytvxqf7qeqeqteihoqweqwesaaqerdft"
# a = test.translate(m)               #按照對應關系進行替換
# print(a)

#18:大小寫轉換
# test1 = "QWERdf"
# test2 = "qwerDF"
# print(test1.swapcase())
# print(test2.swapcase())

#19:查看字符串是否是標識符    符合數字,字母,下划線就是標識符
# import keyword
# print(keyword.kwlist)
# test = "a123"
# print(test.isidentifier())

#20:替換字符串
# test = "123qwe456w3qrwt344314"
# a1 = test.replace("3","999")       #默認參數為-1,即就是替換字符串中所有滿足要求的元素
# print(a1)
# a2 = test.replace("3","999",2)     #將默認參數設置為指定值,可以替換指定次數
# print(a2)

字符串的基本方法
字符串的基本方法

--字符串一旦創建,不可修改;一旦修改或者拼接,都會重新生成新字符串

--字符串常用方法如下:

#!/usr/bin/env  python
# -*- coding: utf-8 -*-
#1:元素變小寫
# test = "qWErfΓ"
# a = test.casefold()   #對於其他語言(非漢語或英文)中把大寫轉換為小寫的情況只能用casefold()方法
# b = test.lower()      #lower()方法只對ASCII編碼,就是‘A-Z’有效,
# print(a,b)

#2:字符串填充以及對齊
# test = "qwerdf"
# a = test.center(10,"啊")    #設置寬度以及填充符並將字符串居中
# b = test.ljust(15,"@")      #左對齊字符串並用填充符填充
# c = test.rjust(20,"%")      #右對齊字符串並用填充符填充
# d = test.zfill(25)          #右對齊字符串並用0作為填充符填充
# print(a)
# print(b)
# print(c)
# print(d)

#3:查找元素
# test = "qwerdf"
# a = test.find("q",1,5)             #獲取元素的下標,若元素不存在字符串中返回值為-1,反之為其索引
# a1 = test.rfind("f")
# b = test.index("q",0,5)            #獲取元素的下標,若元素不存在字符串中則報錯,反之為其索引
# b1 = test.rindex("q")
# print(a,b)

#4:格式化字符串
# a = "my name is {0},i am{1} old"
# b = "my name is {name},i am{age} old"   #可以以變量名來格式化
# c = {"name": "qingyu", "age": 20}       #針對字典類型的使用format_map()方法
# print(a.format("qingyu","20"))
# print(b.format(name = "qingyu",age = "20"))
# print("my name is {name},i am{age} old".format_map(c))

#5:判斷字符串是否全部是大小寫,將字符串轉換為大小寫
# test = "qingyu"
# a = test.islower()    #斷字符串是否全部是小寫
# b = test.lower()      #將字符串轉換為小寫
# print(a,b)
# c = test.isupper()    #斷字符串是否全部是大寫
# d = test.upper()      #將字符串轉換為大寫
# print(c,d)

#6:將字符串中的每一個元素按照指定分隔符進行拼接
# test = "qwerdf"
# a = "*".join(test)
# print(a,type(a))

#7:使用字符串中的元素來分割字符串,返回字符串中單詞的列表
# test1 = "qwer1234asdf1234adxf1adff35134"
# a = test1.split("w")         #默認分割完全(會拿掉分割的元素)
# b = test1.split("1",3)       #3表示分割次數,即就是分割成3+1個元素的列表,默認分割順序為由左到右
# print(a,b)
# c = test1.rsplit("1")        #分割順序為從右到左
# print(c)
# test2 = "qwrrd\n213211\n213214"
# d = test2.splitlines()          #默認不顯示保留換行符
# e = test2.splitlines(True)      #按照換行符來分割,參數為True則顯示保留換行符
# f = test2.splitlines(False)
# print(d,e,f)

#8:移除字符串中的特定字符串(空格也是字符串)
# test = "  qwerdf  "
# a = test.strip()        #1:移除空白,\t,\n
# print(a)
# print(test)
# test1 = "qwerdf"
# b = test1.strip("qwdf")       #2:刪除字符串開頭和結尾指定qwdf的字符
# c = test1.lstrip("qwdf")      #2:從左到右移除特定字符,優先最多匹配(刪除開頭)
# d = test1.rstrip("exrdf")     #2:從右到左移除特定字符,優先最多匹配(刪除結尾)
# print(b)
# print(c,d)

#9:按照對應關系替換相應字符串
# test1 = "qwerdf"
# test2 = "123456"
# m = str.maketrans(test1,test2)      #創建對應關系
# test = "reassytvxqf7qeqeqteihoqweqwesaaqerdft"
# a = test.translate(m)               #按照對應關系進行替換
# print(a)

#10:替換字符串
# test = "123qwe456w3qrwt344314"
# a1 = test.replace("3","999")       #默認參數為-1,即就是替換字符串中所有滿足要求的元素
# print(a1)
# a2 = test.replace("3","999",2)     #將默認參數設置為指定值,可以替換指定次數
# print(a2)
字符串常用方法

 --注意事項如下:

#注意事項1:序列的的遍歷可以用for循環實現
# test = "我愛你中國"
# for a in test:
#     print(a)

#注意事項2:range()用法是生成連續或者不連續但有規律的整數序列,按照開始,結束,步長來生成整數序列
# a = range(1,100,5)
# print(a)            #python3中只有在for中時才會創建序列,Python2中會直接創建
# for i in a:
#     print(i)

#小練習:根據用戶輸入的值,輸出每一個字符以及當前字符所在的索引位置
# user_word =  input("請輸入:")      #input()返回值是str類型,len()返回值是int類型
# for i in range(len(user_word)):
#     print(user_word[i],i)
注意事項

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM