Python3 中有六個標准的數據類型:Number(數字)、String(字符串)、List(列表)、Tuple(元組)、Sets(集合)、Dictionary(字典)。
- 不可變數據(四個):Number(數字)、String(字符串)、Tuple(元組)、Sets(集合);
- 可變數據(兩個):List(列表)、Dictionary(字典)。
一、數字類型
數字類型包括:int(整型)、float(浮點數)、complex(復數)、bool(布爾值)。
注:python2中還有一個長整型,python3已經沒有了。
#a=10 #b=10.0 #c=True #d=1+2j #print(type(a)) #print(type(b)) #print(type(c)) #print(type(d))
運行結果如下:
<class 'int'> <class 'float'> <class 'bool'> <class 'complex'>
數值取整的三種方法:向下取整int,四舍五入round,向上取整ceil
import math
a=2.23 b=6.66 print(int(a),int(b)) #2,6 print(round(a),round(b)) #2,7 print(math.ceil(a),math.ceil(b)) #3,7
二、String 字符串類型:
在單引號\雙引號\三引號內,輸入一串字符即構成一個字符串。例如,name='張三' 這樣name這個變量就是字符串類型。單引號,雙引號使用起來沒有區別,三引號一般用於多行注釋。
字符串有很多常用的方法,經常使用的如下:
1、去除空格:
str.strip():刪除字符串兩邊的指定字符,括號的寫入指定字符,默認為空格 str.lstrip():刪除字符串左邊的指定字符,括號的寫入指定字符,默認為空格 str.rstrip():刪除字符串右邊指定字符,默認為空格

''' str.strip():刪除字符串兩邊的指定字符,括號的寫入指定字符,默認為空格 str.lstrip():刪除字符串左邊的指定字符,括號的寫入指定字符,默認為空格 str.rstrip():刪除字符串右邊指定字符,默認為空格 ''' >>> a=" abc " >>> b = a.strip() # b='abc' >>> b = a.lstrip() # b = 'abc ' >>>b = a.rstrip() #b = ' abc'
2、字符串的連接
“+”連接兩個字符串,這個方法比較耗費資源,連接兩個字符串就要開辟一次內存空間。。如果是n個字符串相連 那么會開辟n
-
1
次內存。
str.join() 方法用於指定一個字符連接另外一個字符串。

#“+” >>> a='hello' >>> b='world' >>> print(a+b) helloworld #“str.join()” >>> a='H' >>> b='world' >>> c=a.join(b) >>> c 'wHoHrHlHd'
3、字符串的大小寫轉換
使用str.upper() str.lowe
r()

>>> str1='abc' >>> str2='FGH' >>> print(str1.upper()) ABC >>> print(str2.lower()) fgh
4、字符串的格式化:‘%’和format

1 #'%'表示占位符號,和C語言的類似。后面可帶一個參數,表示該位置將用什么類型來取代,常用的有如下: 2 3 %b 二進制整數 %d 十進制整數 %i 十進制整數 4 5 %o 八進制整數 %x 十六進制整數 %c 單個字符 6 7 %s 字符串 %r 字符串 (生成的字符串會帶單引號) 8 9 %e 浮點數字(科學計數法) %E 浮點數字(科學計數法,用E代替e) 10 11 %f 浮點數字(用小數點符號) %g 浮點數字(根據值的大小采用%e或%f) 12 13 %p 指針(用十六進制打印值的內存地址) %n 存儲輸出字符的數量放進參數列表的下一個變量中 14 15 例如: 16 name='zs' 17 age=18 18 print('My name is %s,age is %d'%(name,age)) #My name is zs,age is 18 19 20 可以用如下的方式,對格式進行進一步的控制: 21 22 %[(name)][flags][width].[precision]typecode 23 (name)為命名 24 flags可以有+,-,' '或0。+表示右對齊,而且顯示正負號。-表示左對齊。' '為一個空格,表示在正數的左側填充一個空格,從而與負數對齊。0表示使用0填充。 25 width表示顯示寬度 precision表示小數點后精度 26 27 例如: 28 print('%+8.3f'%3.1415926) #' +3.142' 注意前面有空格 29 print('%08.3f'%3.1415926) #’0003.142‘ 30 31 #2、format的用法 32 三種調用方法如下: 33 >>> res1='{} {} {}'.format('egon',18,'male') 34 >>> res2='{1} {0} {1}'.format('egon',18,'male') 35 >>> res3='{name} {age}{sex}'.format(sex='male',name='egon',age=18) 36 >>> res1 37 'egon 18 male' 38 >>> res2 39 '18 egon 18' 40 >>> res3 41 'egon 18 male 42 43 同樣format也有更加具體的控制格式: 44 45 : 填充 對齊 寬度 , . 類型 46 引導符號 想填充的字符 <左 >右 ^居中 數字分割符 浮點數精度 cf 47 48 49 例如: 50 print('{:*^30,.2f}'.format(3.1415926)) # *************3.14*************
5、split 的用法:
默認分隔符為空格。同時也可以指定切片的次數和切片方向。具體可以看下面示例

>>> name='root:x:0:0::/root:/bin/bash' >>> print(name.split(':')) ['root', 'x', '0', '0', '', '/root', '/bin/bash'] >>> name='C:/a/b/c/d.txt' >>> print(name.split('/',1)) ['C:', 'a/b/c/d.txt'] >>> name='C:/a/b/c/d.txt' >>> print(name.rsplit('/',1)) ['C:/a/b/c', 'd.txt']
6、replace的用法:
默認是替換全部匹配的地方,可以自己手動指定替換次數。

>>> shuaige='Panan:"Panan is the most hansome person in the world."' >>> print(shuaige.replace('Panan','Dashu',1)) Dashu:"Panan is the most hansome person in the world." >>> print(shuaige.replace('Panan','Dashu',)) Dashu:"Dashu is the most hansome person in the world."
7、isdigit的用法:
age=input('>>: ') print(age.isdigit())
8.其他方法:
#1、find,rfind,index,rindex,count #2、center,ljust,rjust,zfill #3、expandtabs #4、captalize,swapcase,title #5、is數字系列 #6、is其他

#find,rfind,index,rindex,count name='egon say hello' print(name.find('o',1,3)) #顧頭不顧尾,找不到則返回-1不會報錯,找到了則顯示索引 # print(name.index('e',2,4)) #同上,但是找不到會報錯 print(name.count('e',1,3)) #顧頭不顧尾,如果不指定范圍則查找所有 #center,ljust,rjust,zfill name='hello' print(name.center(30,'-')) #------------hello------------- print(name.ljust(30,'*')) #hello************************* print(name.rjust(30,'*')) #*************************hello print(name.zfill(10)) #用0填充 #00000hello #expandtabs #默認‘\t’等於八個空格,參數可以自己指定個數 name='egon\thello' print(name) print(name.expandtabs(1)) #captalize,swapcase,title print(name.capitalize()) #首字母大寫 print(name.swapcase()) #大小寫翻轉 msg='egon say hi' print(msg.title()) #每個單詞的首字母大寫 #is數字系列 #在python3中 num1=b'4' #bytes num2=u'4' #unicode,python3中無需加u就是unicode num3='四' #中文數字 num4='Ⅳ' #羅馬數字 #在python3中 num1=b'4' #bytes num2=u'4' #unicode,python3中無需加u就是unicode num3='四' #中文數字 num4='Ⅳ' #羅馬數字 #isdigt:bytes,unicode print(num1.isdigit()) #True print(num2.isdigit()) #True print(num3.isdigit()) #False print(num4.isdigit()) #False #isdecimal #Python isdecimal() 方法檢查字符串是否只包含十進制字符。這種方法只存在於unicode對象。 #bytes類型無isdecimal方法 print(num2.isdecimal()) #True print(num3.isdecimal()) #False print(num4.isdecimal()) #False #isnumberic:unicode,中文數字,羅馬數字 #bytes類型無isnumberic方法 print(num2.isnumeric()) #True print(num3.isnumeric()) #True print(num4.isnumeric()) #True #三者不能判斷浮點數 num5='4.3' print(num5.isdigit()) print(num5.isdecimal()) print(num5.isnumeric()) ''' 總結: 最常用的是isdigit,可以判斷bytes和unicode類型,這也是最常見的數字應用場景 如果要判斷中文數字或羅馬數字,則需要用到isnumeric ''' #is其他 name='egon123' print(name.isalnum()) #字符串由字母或數字組成 print(name.isalpha()) #字符串只由字母組成 print(name.isidentifier()) #字符串里面只要是符合變量的規則返回TRUE print(name.islower()) #包含字母,並且只有全部是小寫才返回TRUE print(name.isupper()) print(name.isspace()) #檢查是否只有空格 print(name.istitle()) #檢查所有單詞首字母是否大寫