1. 程式人生 > >python基礎系列一:字符串

python基礎系列一:字符串

scan 比較 utf eol aaa 分配 計算 string replace

1.常用數據類型
int 整型
string 字符串
boolean 布爾型
list 列表
dict 字典
tuple 元組
2.可變數據類型:list,dict
不可變數據類型:int,string,tuple

----可變數據類型----
>>> a
[1, 2, 3, 4]
>>> id(a)----內存分配地址不變
140488352611576
>>> a.append(5)
>>> a
[1, 2, 3, 4, 5]
>>> id(a)
140488352611576

----不能強制進行類型轉換----
>>> a="111aaa"
>>> a
‘111aaa‘
>>> int(a)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: ‘111aaa‘

>>> a=‘111‘ --帶引號是字符串賦值
>>> a
‘111‘
>>> type(a)
<type ‘str‘>
>>> int(a) --強制轉換為整型輸出
111
>>> a --再次打印a的時候,還是字符串
‘111‘
>>> type(a)
<type ‘str‘>

----boolean數據類型----
>>> print 1==1 --兩個等於號是比較,比較值是否相等,比較數據類型是否一致
True
>>> print 1=="1" --類型不一樣
False
>>> bool(1==1) --布爾函數,比較判斷
True
>>> a=bool(1==1)
>>> a
True

字符串:用雙引號括起來
子字符串:a="abc123" b="abc" b就是a的子字符串

----計算中文字符串長度----
>>> a="12" #長度2個字節
>>> len(a)
2
>>> a="李晶" #長度6個字節,每個中文字符占3個字節
>>> len(a)
6
>>> a=u"李晶" #轉換為unicode碼,長度就變為兩個字節
>>> len(a)
2
>>> a="李晶"
>>> g=a.decode(‘utf-8‘) #第二中轉換方式
>>> len(g)
2
>>> len(a)
6
>>>

-----轉義符----
>>> a="adsf"" #想要輸出adsf" 報錯
File "<stdin>", line 1
a="adsf""
^
SyntaxError: EOL while scanning string literal
>>>
>>> a = "asdf\"" #加轉義符 \ 成功輸出
>>> print a
asdf"

>>> print "ab\n" #輸出ab後換行
ab

>>> print "\n" #輸出換行


>>> print r"\n" #輸出\n,因為前面加了r,強制輸出原來的字符串
\n
>>>

----字符串訪問和查找----
類似於列表的方式,以切片的方法訪問
>>> a="abcd" #定義字符串
>>> a[0] #切片位置從0開始
‘a‘
>>> print a[0],a[2] #打印第一個和第三個
a c
>>> print a[0:2] #打印第一個到第二個,最後位置是切片的最大數減一
ab
>>> print a[0:3]
abc
>>> print a[0:]
abcd
>>> print a[-1] #打印最後一個
d
>>> print a[len(a)-1]
d
>>> print a[:-1]
abc

----字符串連接----
>>> a="abc"
>>> b="cde"
>>> print a+b #最直接也是最浪費資源的方法,最好不要用,會產生臨時的變量承接兩個相加的結果
abccde

>>> print "hello abc %s fg" % b #占位符的方式,%s是字符串,%d是整型
hello abc cde fg

>>> ",".join([a,b]) #用函數最簡潔
‘abc,cde‘
>>> "".join([a,b])
‘abccde‘
>>> b="+" #將加號賦值給變量b
>>> a=["1","2"]
>>> b.join(a) #把加號作為字符串連接
‘1+2‘
>>> c=b.join(a)
>>> print c
1+2

>>> a="my name {1} {0}" .format("lisonglin","is") #format方法的簡單用法,花括號裏面的數值是字符串的位置
>>> a
‘my name is lisonglin‘
>>> a="my name is {name},age is {age}" .format(name="lisonglin",age="35") #用變量來替代,更直接
>>> print a
my name is lisonglin,age is 35

----字符串的引號----
#腳本如下:
print "abc"
print ‘abc‘
print "abc‘" #要輸出單引號,需要雙引號括起來
print ‘abc"‘ #要輸出雙引號,需要單引號括起來
print """ #多行註釋用三個雙引號
@"copy"
@‘right‘
"""
#執行結果如下:
[root@linux-1 ~]# python 1.py
abc
abc
abc‘
abc"

@"copy"
@‘right‘

----字符串修改----
>>> a="abc"
>>> a.replace("b","B") #使用replace函數修改
‘aBc‘
>>> a #字符串本身不會被修改,不可變數據類型
‘abc‘
>>> b=a.replace("b","c") #需要把修改的字符串,重新賦值給b,完成修改
>>> a
‘abc‘
>>> b
‘acc‘

python基礎系列一:字符串