1. 程式人生 > >01-Python的基礎知識4

01-Python的基礎知識4

占位符 [1] 十六 %d 制表符 print shu 十六進制 科學計數法

- 字符串

  - 字符串屬於不可變序列,一般使用單引號、雙引號或三引號進行界定,並且單引號,雙引號、三單引號、三雙引號還可以相互嵌套,用來表示復雜的字符串。

  - 字符串類型是一類特殊的數據集對象,稱為序列。序列類型中的對象按一定順序排列,即對象序列。

  - 構建字符串:

    - 字符串構造函

      - 使用函數str()

x = str(123)
print(x,type(x))
y = str(u‘dd456dd‘)
print(y,type(y))

#結果
# 123 <class ‘str‘>
# dd456dd <class ‘str‘>

    - 使用引號:

      - 單引號:‘abc‘、‘a‘、‘123‘。

      - 雙引號:"a"、"123"、"acs"。

        - 單雙引號可以交錯使用

      - 三單或者三雙:"‘Python"‘、"""Python"""。

        - 三引號允許一個字符串跨多行,字符串中可以包含換行符、制表符以及其他特殊字符。

      - 帶 r或者R前綴的Raw字符串:r"abc\n123"。

        - Python不會解析其中的轉義字符。典型應用在表示文件路徑。

# fl = open(‘d:\temp\newlist.py‘, ‘r‘) 
#上面代碼會執行錯誤
fl = open(‘d:\\temp\\newlist.py‘, ‘r‘) #使用反斜杠表示轉義字符

fl = open(r‘d:\\temp\\newlist.py‘, ‘r‘)  #使用Raw字符串表示文件名字字符串

fl = open(‘d:/temp/newlist.py‘, ‘r‘)   # 使用正斜杠表示

      - 帶 u或者U前綴的Unicode字符串:u"asdf"、U"asdss"。 以u或U開頭的字符串表示unicode字符串

          - Unicode是書寫國際文本的標準方法。如果你想要用非英語寫文本,那麽你需要有一個支持Unicode的編輯器。

          - 類似地,Python允許你處理Unicode文本——你只需要在字符串前加上前綴u或U。

print(u‘我‘)
print(u‘458\t\tdd‘)  #不能忽視轉義字符

#結果:
#我
#458		dd

  - 轉義字符

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

  - 訪問字符串中的值

s = "abc"
#直接訪問
print(s)

#註意有反斜杠的字符串,使用Raw字符串
s = "Let‘s go"
print(s)

s1 = "Let\‘s go"
print(s1)

  

  - 字符串運算符

a = 123
b = wwwas

print(a+b)
print(a*2)
print(b*2)

# 123wwwas
# 123123
# wwwaswwwas

  

  - 字符串比較

    - 兩個單字符之間的比較都會轉化為對應得ASCII值之間的關系。

      - 使用ord()函數和chr()可以查看相應的ASCII碼。

#查看ASCII碼
print(ord(‘a‘))
print(chr(97))

#兩個字符的比較
print((‘a‘<‘b‘))

#結果:
#97
#a
#True

    - 多字符之間:從索引為0的位置開始比較,若相等則索引值加一再比較,等待字符串結束。

v1 = "ab" < "abc"
v2 = "ab" < "ac"
v3 = "ab " < "ab"
print(v1,v2,v3)

#結果:
#True True False

    字符串格式化

    - % 格式符方式

      - 格式: %[(name)][flags][width].[precision]typecode - (name): 可選,用於選擇指定的ke - flags: 可選,可供選擇的值有: - +: 指定右對齊輸出 右對齊:正數前加正號,負數前加負號;

        -  -: 指定左對齊輸出
            左對齊:正數前無符號,負數前加負號;
- 空格 , - 右對齊;正數前加空格,負數前加負號 - 右對齊;正數前無符號,負數前加負號;用0填充空白處 - width: 可選,占有寬度 - . precision: 可選,小數點後保留的位數 - typecode: 必選 - s,獲取傳入對象的__str__方法的返回值,並將其格式化到指定位置,字符串(采用str()顯示) - r,獲取傳入對象的__repr__方法的返回值,並將其格式化到指定位置,字符串(采用repr()顯示) - c,單個字符 - 整數:將數字轉換成其unicode對應的值,10進制範圍為 0 <= i <= 1114111(py27則只支持0-255); - 字符:將字符添加到指定位置 - b, 二進制整數 - o,八進制整數 - 將整數轉換成八進制表示,並將其格式化到指定位置 - x,十六進制整數 - 將整數轉換成十六進制表示,並將其格式化到指定位置 - d,十進制整數 - 將整數、浮點數轉換成 十 進制表示,並將其格式化到指定位置 - e,將整數、浮點數轉換成科學計數法,並將其格式化到指定位置(小寫e) - E,將整數、浮點數轉換成科學計數法,並將其格式化到指定位置(大寫E) - f, 將整數、浮點數轉換成浮點數表示,並將其格式化到指定位置(默認保留小數點後6位) - F,同上 - g,自動調整將整數、浮點數轉換成 浮點型或科學計數法表示(超過6位數用科學計數法),並將其格式化到指定位置 (如果是科學計數則是e;) - G,自動調整將整數、浮點數轉換成 浮點型或科學計數法表示(超過6位數用科學計數法),並將其格式化到指定位置 (如果是科學計數則是E;) - %,當字符串中存在格式化標誌時,需要用 %%表示一個百分號
#字符串格式化
#%d 此處應該放入一個整數      %s 此處應該放入一個字符串
s = "I love %s"
print(s)
print("I love %s" % "china")
print(s%"china")

s = "I am %d years old"
print(s)
print(s%18)

s = "I am %s,I am %d yera old"
print(s)
print(s%("shuai ge",18))         #如果出現多個占位符,則相應的內容需要用括號括起來。有幾個占位符就應該用幾個實際的內容代替,或者不要

#Let‘s go
#Let‘s go
#I love %s
#I love chinaI love china
#I am %d years old
#I am 18 years old
#I am %s,I am %d yera old
#I am shuai ge,I am 18 yera old

format函數格式化字符串
    - 直接用format 函數進行格式化
    - 使用:以大括號{}和冒號:  代替%。    
    - :[[fill]align][sign][#][0][width][,][.precision][type]

  - 匹配操作:
    - 通過位置匹配
#通過索引的方式進行匹配
s = "{0},{1}".format("first","second")
print(s)
s = "{1},{0}".format("first","second")
print(s)

#結果
#first,second
#second,first
    - 通過名稱匹配
#名稱一一對應,也可以使用字典
s = "{0},{name}".format("first",name="jack")
print(s)
#結果
#first,jack
    - 通過下標匹配
list1=[1,2,3]
s = "{0[0]},{0[1]}".format(list1)
print(s)
#結果
#1,2
    - 其他
age = 18
name = "xiaoming"
s = "{name} {age} years old".format(**locals())
print(s)

#結果
#xiaoming 18 years old

    - 格式規約:使用(:)引入的,其後可以跟隨可選的字符對。

/*
        - fill         【可選】空白處填充的字符
        - align        【可選】對齊方式(需配合width使用)
            -  <,內容左對齊
            -  >,內容右對齊(默認)
            -  =,內容右對齊,將符號放置在填充字符的左側,且只對數字類型有效。 即使:符號+填充物+數字
            -  ^,內容居中
*/        
s = "left],{:<15},[right".format(789456)
print(s)
s = "left],{:>15},[right".format(789456)
print(s)
s = "left],{:^15},[right".format(789456)
print(s)
#填充
s = "left],{:.<15},[right".format("789456")
print(s)
s = "left],{:*>15},[right".format("789456")
print(s)
s = "left],{:/^15},[right".format("789456")
print(s)
#是否字符串都能夠使用
#結果
#left],789456         ,[right
#left],         789456,[right
#left],    789456     ,[right
#left],789456.........,[right
#left],*********789456,[righ

s = "left],{0:0=15},[right".format(789456)
print(s)
s = "left],{:0=15},[right".format(-789456)
print(s)
s = "left],{0:015},[right".format(789456)
print(s)
s = "left],{0:015},[right".format(-789456)
print(s)

#結果
#left],000000000789456,[right
#left],-00000000789456,[right
#left],000000000789456,[right
#left],-00000000789456,[right
/*
        - sign         【可選】有無符號數字
            - +,正號加正,負號加負;
            - -,正號不變,負號加負;
            - 空格 ,正號空格,負號加負
            
        - #            【可選】對於二進制、八進制、十六進制,如果加上#,會顯示 0b/0o/0x,否則不顯示
        - ,            【可選】為數字添加分隔符,如:1,000,000
        - width       【可選】格式化位所占寬度
        - .precision 【可選】小數位保留精度
        - type         【可選】格式化類型
            - 特例 %,顯示百分比(默認顯示小數點後6位)     
*/ 

01-Python的基礎知識4