python核心数据类型_Python核心数据类型——字符串
字符串
Python的字符串是一個有序的字符集合,有序指的是可以通過偏移來訪問每個字符,每個字符有嚴格的從左到右的位置順序,類似于數組。Python中沒有單個字符的類型(C語言中的char),取而代之的是使用一個字符的字符串。字符串是不可變序列,不可以在原處修改,也就是無法執行類似str[0] = 'x'的操作,而執行合并(str1 + str2)、修改字符串(str.replace(..))及分片(s[1:3])等字符串操作都是生成新的對象。
1.?字符串的編寫方式
單引號括起來
>>> 'spa"m' #不可寫成'spa'm',這變成'spa' + m',第2個不完整。
'spa"m'
>>> 'spa''m' #'spa' + 'm'
'spam'
雙引號括起來(不是兩個單引號)
>>> "spa'm"
"spa'm"
三引號括起來(三個單引號或三個雙引號)
>>> '''spam'''
'spam'
>>> """spam"""
'spam'
只要不引起歧義,可以在字符串中直接嵌入單引號(')或雙引號(")而不用通過轉義字符(\',\")。
還可以利用三引號(三個單引號或三個雙引號)來注釋代碼塊
x = 1
'''
import os
print os.getcwd()
'''
y = 2
2. 轉義字符
轉義字符
說明
\
忽視(連續),如果語句太長一行寫不下,用\可以接到下一行。
\\
反斜線(保留\)
\'
單引號(保留')
\”
雙引號(保留”)
\a
響鈴
\b
倒退
\f
換頁
\n
換行
\r
回到行首
\t
水平制表符
\v
垂直制表符
\xhh
十六進制值,如\x00,\x08,\xff,h對應十六進制數。
\0oo
十六進制值,如\000,\077,o對應八進制數。
\0
NULL(不是字符串結尾),等價于\x00,Python中不是用\0來判斷字符串結尾,
每個字符串都存有字符串的長度,通過計數來判斷是否到達結尾。
raw字符串:如果字母r(大寫或小寫)出現在字符串的第一個引號前面,它將會關閉轉義機制
>>> myFile = open(r'c:\new\text.dat', 'w')
>>> myFile = open('c:\new\text.dat', 'w') #出錯,因為\n和\t是轉義字符,解析錯誤。
unicode字符串:在第一個引號前增加字母u(大寫或小寫),unicode字符串每個字符使用2個字節編碼,可以支持更豐富的字符集。
>>> u'spam'
u'spam'
>>> 'eggs' + u'spam' #混合數據類型,自動轉換成unicode
u'eggsspam'
>>> str(u'spam') #轉換成正常字符串
'spam'
>>> unicode('spam') #轉換成unicode字符串
u'spam'
允許混合row和unicode字符串,但是u必須在r前面(ur'.....')
>>> ur'c:\new\txt.dat'
u'c:\\new\\txt.dat'
3. 字符串格式化
字符串格式化語法:包含格式化代碼的要格式化的字符串% 要格式化的對象(多個的話,放在括號內)
格式化代碼
說明
%s
字符串(或任何對象),不是字符串會自動轉成字符串
%r
字符串,但使用repr,而不是str,repr顯示的是解釋器可讀的,str顯示的是人可讀的。也就是說repr是面向解釋器的,str是面向人的。在大部分情況下兩者顯示的值是相同的,但在一些特定的對象是不同的,如字符串。Str('a') == 'a',repr('a') == "'a'" ?('a'由雙引號“括起來)
%c
字符
%d
有符號整數(十進制)
%i
整數
%u
無符號整數(十進制)
%o
八進制整數
%x
十六進制整數
%X
十六進制整數,但打印時大寫
%e
浮點數,科學計數法表示
%E
浮點數,科學計數法表示,使用大E
%f
浮點數
%g
浮點數(根據值大小采用%e或%f)
%G
浮點數(根據值大小采用%E或%f)
%%
百分號標記
>>> '%d %s %d you' % (1, 'spam', 4)
'1 spam 4 you'
>>> '%s %s %s' % (42, 3.14, [1, 2, 3])
'42 3.14 [1, 2, 3]'
更高級的格式化,左側的格式化代碼:%[(name)][flags][width][.precision]code
[]:方括號內的表示可選
當要格式化的對象為字典時可以使用(name),name替換成鍵,但鍵必須是字符串才行。
flags:有三種標志,左對齊(-)、正負號(+)、補零(0)
width:寬度,不夠補零或空格,寬度包括小數點和正負號
.precision:精度,小數的位數
code:對應格式化代碼,如d,s
>>> x = 123
>>> '%d.%5d.%-5d.%05d' % (x, x, x, x)
'123. 123.123 .00123'
>>> x = 1.23
>>> '%-5.2f.%05.2f.%+06.1f' % (x, x, x)
'1.23 .01.23.+001.2'
>>> '%(n)d %(3)s' % {'n': 1, '3': 'spam'}
'1 spam'
4. 一些字符串相關方法介紹
單個字符轉換
>>> ord('a') #將字符轉換成對應的ASCII碼
97
>>> chr(97) #將ASCII碼轉換成對應的字符
'a'
replace方法:s.replace(源字符串, 目的字符串, n),第三個參數為可選,表示將第n個出現源字符串替換成目的字符串,默認為所有。
>>> s = 'aba'
>>> s.replace('a', 'c') #將所有的'a'替換成c
'cbc'
>>> s.replace('a', 'c', 1) #將第一個'a'替換成c
'cba'
join方法:分隔字符串.join(字符串列表),將字符串列表串在一起,成為一個新的字符串,用分隔字符串隔開。
>>> '123'.join(['eggs', 'ham'])
'eggs123ham'
>>> 'x'.join(['a', 'b', 'c'])
'axbxc'
split方法:s.split(分隔字符串),分隔字符串為可選參數,默認為空格,返回一個字符串列表。
>>> s = 'a b c'
>>> s.split()
['a', 'b', 'c']
>>> s = 'a,b,c'
>>> s.split(',')
['a', 'b', 'c']
>>> s = 'axxbxxc'
>>> s.split('xx')
['a', 'b', 'c']
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的python核心数据类型_Python核心数据类型——字符串的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 无监督和有监督的区别_无监督元学习(Un
- 下一篇: python socket tcp远控_