Python 字符類型


Python 字符類型

一、字符串

  • 定義:a = 'Python'  a = '123'  a = "Python"  a = """123"""  a = '''Python'''
    • 單引、雙引和三引對字符串來說並無區別。其中含特殊意義的並未做轉換,如果需要將引號中數據正常輸出直接在前邊加r

   如下:

     print("a\nb")  輸出:a 和 b(注意:此處是換行了的)

     print(r"a\nb")  輸出:a\nb (注意:r表示不進行轉義)

     print('i'm Python') 報錯.原因:程序走到第二個'就當結束了。m會當成變量,但是這里並非變量,所以報錯。正確寫法如下:

     print("i'm Python")  只要含字母的都需要加引號。否則會報錯。

  • 字符串內置方法 
#定義變量
msg = "i'm YHL"
 
    capitalize()           注解:首字母大寫. 如:已經大寫還是大寫 其他大寫變成小寫
print (msg.capitalize())   
輸出:I'm yhl
 
  lower()                 注解:將大寫字母轉成小寫
print(msg.lower())         
輸出:i'm yhl
 
  upper()                 注解:將所有小寫轉成大寫
print(msg.upper())         
輸出:I'M YHL
 
  center(長度,填充的值)     注解:定義長度.讓其變量中字符串劇中顯示
print (msg.center(20))     
輸出:      i'm YHL       :
print (msg.center(20,"*")) 
輸出:******i'm YHL*******
 
  count("值")              注解:統計某一字符串出現的次數
print (msg.count("Y"))     
輸出:1
print (msg.count("Y",0,3)) 
輸出:0     PS:從下標開始找. 下標0-3之間找Y出現過幾次.  注意:顧頭不顧尾.這里是0-3實際是0-2
print (msg.count("Y",0,-1))
輸出:0     PS:從下標開始找. 下標0--1之間找Y出現過幾次. 注意:此處的-1表示最后
print (msg.count("Y",3))   
輸出:1     PS:從下標開始找. 下標3之后開始找Y出現過幾次.
 
  endswith("值")            注解:判斷以什么結尾.真返回True  否則返回Fales
print (msg.endswith("d"))  
輸出:False PS:意思是以什么結尾.如果是返回True 否則返回False  
 
=====================================================================================================================
#定義變量    PS:變量中的\t表示空格.默認是一個tab鍵
msg1 = "a\tb"
 
  xpandtabs()                注解:設置空格大小.默認是八個空格.意思就是說括號中不寫數字
print(msg1.expandtabs(10))
輸出:設置a and b之間的空格大小.
 
  find("值")                 注解:查找字符下標或坐標.注意:\t默認占1位.鍵盤上空格敲1下占1位.敲2下占2位.以此類推.一個tab鍵就占1位
print(msg1.find("b"))
輸出:2    PS:空格也算.  注意:如果找不到會返回-1
print(msg1.find("b",0,8))            
輸出:2    PS:如果字符串中出現多個只回顯第一個的下標.還有就是這樣寫是規定一個范圍
 
  format("值","值")           注解:格式化字符串
print("{0}{1}{0}".format("name","age"))  
輸出:nameagename  ps:{0}-name{1}-age{0}-name 注意:相當於是下標一一對應
print("{name}".format(name="YHL"))     
輸出:YHL      ps:相當於打印變量name對應的值.
print("{}{}{}".format("name","age","YHL")) 
輸出:nameageYHL   ps:前邊中括號有幾個后台值就必須有幾個.否則會報錯. 注意括號不能多.值可以多
 
  index("值")                  注解:查找索引
print(msg1.index("a"))            
輸出:1              PS:如果一個變量中出現多個相同的字母.那么也只返回第一個
  PS:find 和 index 都是查找下標.
  兩個的區別在於:
    find:是不知道有沒有.是去找. 如果有正常返回.如果沒有返回-1
    index:是知道有.通過已知的去找對應的下標.  如果有正常返回.如果沒有直接報錯
 
=====================================================================================================================
#定義變量   
msg2 = "a123"
 
  isalnum()                    注解:判斷變量是否由數字和字母組成.是返回True.否則返回False  純數字和純字母都可以.不能是數字和字母之外的
print(msg2.isalnum())      
輸出:True
 
  isalpha()                    注解:是字母返回True  否則返回False. 必須全是字母
print(msg2.isalpha())      
輸出:False
 
=====================================================================================================================
#定義變量
msg3 = "10"
 
  isdecilmal()                 注解:判斷是否是十進制數. 是返回True 否則返回False   注意:只能是數字.
print(msg3.isdecimal())    
輸出:True     PS:如果是10.2則會報錯.
 
  isdigit()                    注解:判斷是不是整型    注意:只能整數.
print(msg3.isdigit())      
輸出:True
 
=====================================================================================================================
#定義變量
msg4 = "if"
 
  isidentifier()               注解:判斷字符串中是否存在關鍵字. 是返回True 否則返回False
print(msg4.isidentifier()) 
輸出:True     PS:如果是ifa的話就直接返回True  一定要清楚是關鍵字.(包含)
 
  islower()                    注解:判斷字符串是否為小寫. 是返回True 否則返回False
print(msg4.islower())      
輸出:True     PS:必須全都是小寫. 否則返回False
 
  isupper()                    注解:判斷字符串是否為大寫. 是返回True 否則返回False
print(msg4.isupper())      
輸出:False    PS:必須全都是大寫. 否則返回False
 
=====================================================================================================================
#定義變量
msg5 = " "
 
  isspace()                    注解:判斷是否為空格.是空格返回True 否則返回False. 注意:\t也是空格. tab  \n  敲鍵盤空格一樣
print(msg5.isspace())      
輸出:True     PS:不能有其他的.必須全是空格
 
=====================================================================================================================
#定義變量
msg6 = "Hello Word"
 
  istitle()                     注解:判斷抬頭.  就是首字母是不是大寫.是就返回True.  否則返回False.
print(msg6.istitle())      
輸出:True     PS:是單詞的首字母.如果單詞中還有別的是大寫也是False
 
=====================================================================================================================
#定義變量
msg7 = "Yhl"
 
  ljust(值,"*")                  注解:左對齊.
print(msg7.ljust(10,"*"))  
輸出:Yhl*******   PS:左對齊,缺少的部分用*填充.長度是10
print(msg7.ljust(10))      
輸出:Yhl          PS:左對齊,缺少的部分用空格填充.長度是10
 
  ljust(值,"*")                  注解:右對齊.
print(msg7.rjust(10,"*"))  
輸出:*******Yhl   PS:右對齊,缺少的部分用*填充.長度是10
print(msg7.rjust(10))      
輸出:       Yhl   PS:右對齊,缺少的部分用空格填充.長度是10
 
=====================================================================================================================
#定義變量
msg8 = "  abcd  "
 
  strip()                        注解:去掉空格(前后都去). 如果:"  SA  SAS"那么中間的空格無法去除
print(msg8.strip())        
輸出:abcd
 
  lstrip()                       注解:只去掉左邊的空格.右邊的不去掉
print(msg8.lstrip())       
輸出:abcd  "
 
  rstrip()                       注解:只去掉右邊的空格.左邊的不去掉
print(msg8.rstrip())       
輸出:  abcd
 
  maketrans("值","值")             注解:制作翻譯表.下邊是用法.   長度必須是一一對應否則會報錯.
msg9 = "my name is abcd"
table = str.maketrans("a","2")
print(msg9.translate(table))
輸出:my n2me is 2bcd
 
=====================================================================================================================
#定義變量
msg10 = "abcdefg"
 
  zfill(10)                       注解:右對齊.左邊不夠的用0填充
print(msg10.zfill(10))
輸出:000abcdefg
 
python 字符串相關方法
  • 字符串常用操作
1.移除空白
    msg01 = "   dsadasi21 \n  "
    print(msg01.strip())       
    輸出:dsadasi21
     
2.分割
    msg02 = "www.baidu.com"
    print(msg02.split("i"))
    輸出:['www.ba', 'du.com']    PS:以i為點進行分割.
     
    print(msg02.split(".",1))
    輸出:['www', 'baidu.com']    PS:以.進行分割1次.
     
    print(msg02.split(".",2))
    輸出:['www', 'baidu', 'com'] PS:以.進行分割2次. 注意:如果.在字符串中不夠分的次數.那么不會報錯.按最多分
     
    print(msg02.split(".")[0])
    輸出:www                     PS:以.進行分割.並打印出下標為0的數據
     
    print(msg02.split(".")[-1])
    輸出:com                     PS:以.進行分割.並打印出最后一個數據
     
    print(msg02.split(".")[0:2])
    輸出:['www', 'baidu']        PS:以.進行分割.並打印出下標是0,1的數據
     
3.長度
    msg03 = "www.baidu.com"
    print(len(msg02))
    輸出:13       PS:計算字符串長度 
     
4.索引(和切片很像)
    msg04="welcometobeijingYhl"
    print(msg04[2])
    輸出:l        PS:通過索引獲取字符串中對應的值
    print(msg04.index("o"))
    輸出:4        PS:通過字符串中的值找對應的下標(索引)
 
5.切片
    msg04="welcometobeijingYhl"
    print(msg04[0:3])
    輸出:wel
     
    print(msg04[0:])
    輸出:welcometobeijingYhl
     
    print(msg04[0:-1])
    輸出:welcometobeijingYh
     
    print(msg04[:])
    輸出:welcometobeijingYhl
     
    print(msg04[2])
    輸出:l                        PS:通過索引取對應的值
     
    print(msg04[2:7:2])
    輸出:loe                      PS:步長. 各幾個取幾次.   
  • 轉義字符

    下表是一個逃跑或反斜線符號可以代表的非打印字符的清單。

注:在doublequoted字符串,轉義字符被解釋;在singlequoted字符串,轉義字符被保留。

反斜線 符號 十六進制字符 描述
\a 0x07 Bell or alert
\b 0x08 Backspace
\cx   Control-x
\C-x   Control-x
\e 0x1b Escape
\f 0x0c Formfeed
\M-\C-x   Meta-Control-x
\n 0x0a Newline
\nnn   Octal notation, where n is in the range 0.7
\r 0x0d Carriage return
\s 0x20 Space
\t 0x09 Tab
\v 0x0b Vertical tab
\x   Character x
\xnn   Hexadecimal notation, where n is in the range 0.9, a.f, or A.F
  • 字符串運算符

  假設A持有'hello'和變量b擁有'Python'的字符串變量:

操作符 描述 例子
+ 串聯 - 添加操作兩邊的值 a + b 將得到 HelloPython
* 重復 - 創建新的字符串,相同的字符串連接的多個副本 a*2 將得到 -HelloHello
[] 切片 - 從給定的索引字符 a[1] will give e
[:]     范圍切片 - 從給定范圍內的字符 a[1:4] will give ell
in 成員關系 - 返回true,如果存在一個字符在給定的字符串 H in a will give 1
not in 成員關系 - 返回true,如果不存在一個字符在給定的字符串 M not in a will give 1
r/R 原始字符串 - 禁止轉義字符的實際意義。必須放在緊接第一個引號。正常輸出

print r'\n' 

prints \n

print R'\n'

prints \n

% 格式化 - 執行字符串格式 See at next section

  萬惡的字符串拼接:

    pythom中的字符串在C語言中體現為師一個字符數組,每次創建字符串的時候需要在內存中開辟一塊連續的空間,並且一旦修改字符串的話,就需要在次開辟一塊新的連續空間,萬惡的加號(+)每出現一次,就會在內存中重新開辟一塊新的空間。

  • 下面是一套完整的符號可用%的列表:
符號 轉換含義 符號  轉換含義
%c character %X hexadecimal integer (UPPERcase letters)
%s string conversion via str() prior to formatting %e exponential notation (with lowercase 'e')
%i signed decimal integer %E exponential notation (with UPPERcase 'E')
%d signed decimal integer %f floating point real number
%u unsigned decimal integer %g the shorter of %f and %e
%o octal integer %G the shorter of %f and %E
%x    hexadecimal integer (lowercase letters)            
  • 其他支持的符號和功能下表中列出:
符號 功能
* argument specifies width or precision
-     left justification
+ display the sign
  leave a blank space before a positive number
# add the octal leading zero ( '0' ) or hexadecimal leading '0x' or '0X', depending on whether 'x' or 'X' were used.
0 pad from left with zeros (instead of spaces)
% '%%' leaves you with a single literal '%'
(var) mapping variable (dictionary arguments)
m.n. m is the minimum total width and n is the number of digits to display after the decimal point (if appl.)


免責聲明!

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



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