Python Data Type

Posted Battlefield

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python Data Type相关的知识,希望对你有一定的参考价值。

#-- Python 数据类型:哈希类型、不可哈希类型

  “数字类型:int, float, decimal.Decimal, fractions.Fraction, complex"

  "字符串类型:str, bytes"

  "元组:tuple"

  "冻结集合:frozenset"

  ”布尔类型:True, False"

  "None"

  # 哈希类型, 即在原地不能改变的变量类型, 不可变类型。

             可利用hash函数查看其hash值, 也可以作为字典的key。

  #不可hash类型:原地可变类型:list dict set。它们不可以作为字典的key。

#-- 数字常量

  1236, -1236, 0, 999999999          #整数

  1.2, 1. ,3.1415926, 3.14e-10, 4E2, 4.0e+5  #浮点数

1 >>> 3.14e-10
2 3.14e-10
3 >>> {:.15f}.format(3.14e-10)
4 0.000000000314000
5 >>> 4E2
6 400.0
7 >>> 4.0e+5
8 400000.0
9 >>> 

 0o177, 0x9ff, 0xFF, 0b1010    # 八进制(0o开头)、十六进制(0x开头)、二进制数字(0b开头)

1 >>> 0o177        # 1 * 8**2 + 7 * 8**1 + 7 * 8**0  == 127
2 127
3 >>> 0x9ff        # 9 * 16**2 + 15 * 16**1 + 15 * 16**0 == 2559
4 2559
5 >>> 0xFF         # 不区分大小写(A:10, B:11, C:12, D:13, E:14, F:15)
6 255
7 >>> 0b1010       # 1 * 2**3 + 1 * 2**1  == 10
8 10
9 >>> 

oct(I), hex(I), bin(I)   #将十进制(decimal )转化成八进制(octal)、十六进制(hexadecimal)、二进制(binary)表示的“字符串”

1 >>> oct(255)
2 0o377
3 >>> hex(255)
4 0xff
5 >>> bin(255)
6 0b11111111
7 >>> 

int(string, base)  # 将字符串转化成整数, base为字符串所代表的进制数,可以将表示其他进制的数的字符串转化成十进制的整数

1 >>> int(0o377, base = 8)
2 255
3 >>> int(0xff, base = 16)
4 255
5 >>> int(0b11111111, 2)
6 255
7 >>> 

3+6j, 3.0+6.0j, 3J  # 附属常量, 也可以用 complex(real, image) 来创建

 1 >>> type(3+6j)
 2 <class complex>
 3 >>> type(3.0+6.0j)
 4 <class complex>
 5 >>> type(3J)
 6 <class complex>
 7 >>> 
 8 >>> a = complex(3, 6)
 9 >>> a
10 (3+6j)
11 >>> 

# 2.x中,有两种整数类型:一般整数(32位)和 长整数(无穷精度)。可以用l 或 L 结尾,迫使一般整数成为长整数

 1 >>> a = 2 ** 30
 2 >>> a
 3 1073741824
 4 >>> type(a)
 5 <type int>
 6 >>>
 7 >>> b = 2 ** 31
 8 >>> b
 9 2147483648L
10 >>> type(b)
11 <type long>
12 >>>

#-- 整数可以利用 bit_length 函数测试用二进制表示所占的位数:

  a = 1 ;    a.bit_length()    #  1

  b = 2 ;    b.bit_length()    #  2

  c  = 3;    c.bit_length()    #  2

  d = 4;     d.bit_length()    #  3

  e = 1024;    e.bit_length()    #  11

 1 >>> a = 1
 2 >>> a.bit_length()
 3 1
 4 >>> b = 2
 5 >>> b.bit_length()
 6 2
 7 >>> c = 3
 8 >>> c.bit_length()
 9 2
10 >>> d = 4
11 >>> d.bit_length()
12 3
13 >>> e = 1024
14 >>> e.bit_length()
15 11
16 >>> 

 #-- 布尔类型 bool : True (真), False(假)

  int  --->  bool   :   0 ---> False;   非0   ---> True

  bool  ---> int    :   False  ---> 0;  True  --->  1

1 >>> type(True)            # 返回<class ‘bool‘>
2 <class bool>
3 >>> type(False)            # 返回<class ‘bool‘>
4 <class bool>
5 >>> isinstance(False, int) # bool 类型属于整形,所以返回True
6 True
7 >>> True == 1, True is 1   # 输出(True, False)
8 (True, False)
9 >>> 

  str   --->  bool  :   ‘‘(Null)     ---> False;  不是Null     ---> True

  list  --->  bool  :   元素为零 ---> False;  元素不为零 ---> True

 1 >>> a = ‘‘
 2 >>> bool(a)
 3 False
 4 >>> b = f
 5 >>> bool(b)
 6 True
 7 >>> 
 8 >>> lst = []
 9 >>> type(lst)
10 <class list>
11 >>> bool(lst)
12 False
13 >>> lst = [a]
14 >>> type(lst)
15 <class list>
16 >>> bool(lst)
17 True
18 >>> 

 #--  常见字符串常量和表达式

S1 = ‘‘          # 空字符串

S2 = "Today‘s good day"  # 双引号和单引号同时使用

S3 = "s p a x00 m"    # 转义字符

S4 = ‘‘‘docment‘‘‘      # 三重引号字符串,一般用于函数说明

S5 = r‘ emp‘       # Raw字符串,不会进行转义,抑制转义

S6 = b‘101100‘      # Python3中的字节字符串

S7 = u‘0x4EFA‘        # Python2.6中的Unicode字符串

 1 >>> S1 = ‘‘                    # 空字符串
 2 >>> S2 = "Today‘s good day"    # 双引号和单引号同时使用
 3 >>> S3 = "s
 p 	 a x00 m"   # 转义字符
 4 >>> S4 = ‘‘‘document‘‘‘        # 三重引号字符串,一般用于函数说明
 5 >>> S5 = r	emp              # Raw字符串,不会进行转义,抑制转义
 6 >>> S6 = b101100             # Python3中的字节字符串
 7 >>> print(S1, type(S1))
 8  <class str>
 9 >>> print(S2, type(S2))
10 Todays good day <class str>
11 >>> print(S3, type(S3))
12 s
13  p      a   m <class str>
14 >>> print(S4, type(S4))
15 document <class str>
16 >>> print(S5, type(S5))
17 	emp <class str>
18 >>> print(S6, type(S6))
19 b101100 <class bytes>
20 >>> 
1 >>> S7 = u0x4EFA               # Python2.6中的Unicode字符串
2 >>> print(S7, type(S7))
3 (u0x4EFA, <type unicode>)
4 >>>
1 >>> S7 = u0x4EFA
2 >>> print(S7, type(S7))
3 0x4EFA <class str>
4 >>> 

S2[1], S2[-1], S2[:3], len(S2)    # 字符串操作

‘a %s parrot‘ % ‘kind‘        # 字符串格式化表达式

‘a {1} {0} parrot‘.format(‘kind‘, ‘red‘)    # 字符串格式化方法

1 >>> S2[1], S2[-1], S2[:3], len(S2)
2 (o, y, Tod, 16)
3 >>> print(a %s parrot % kind)
4 a kind parrot
5 >>> print(a {1} {0} parrot.format(kind, red) )
6 a red kind parrot
7 >>> 

#-- 内置str处理函数:

  upper(); lower(); swapcase(); capitalize(); title()  # 全部大写,全部小写、大小写转换,首字母大写,每个单词的首字母都大写

 1 >>> str1 = "stringOfobjectTest"
 2 >>> str1.upper()
 3 STRINGOFOBJECTTEST
 4 >>> str1.lower()
 5 stringofobjecttest
 6 >>> str1.swapcase()
 7 STRINGoFOBJECTtEST
 8 >>> str1.capitalize()
 9 Stringofobjecttest
10 >>> "LIFE IS SHORT, USE PYTHON".title()
11 Life Is Short, Use Python
12 >>>

  ljust(width)          # 获取固定长度,左对齐,右边不够用空格补齐
  rjust(width)          # 获取固定长度,右对齐,左边不够用空格补齐
  center(width[,‘*‘])      # 获取固定长度,中间对齐,两边不够用空格补齐,可指定填充字符
  zfill(width)                 # 获取固定长度,右对齐,左边不足用0补齐

 1 >>> "infor".ljust(20)        # 获取固定长度,左对齐,右边不够用空格补齐
 2 infor               
 3 >>> "infor".rjust(20)        # 获取固定长度,右对齐,左边不够用空格补齐
 4                infor
 5 >>> "infor".center(20)       # 获取固定长度,中间对齐,两边不够用空格补齐
 6        infor        
 7 >>> "infor".center(20, *)  # 可指定填充字符
 8 *******infor********
 9 >>> "682.6".zfill(20)        # 获取固定长度,右对齐,左边不足用0补齐
10 000000000000000682.6
11 >>> 

  find(‘a‘,start,end)      # 查找字符串,可以指定起始及结束位置搜索
  rfind(‘a‘)                     # 从右边开始查找字符串
  index(‘a‘,start,end)   # 使用index查找不到会抛异常,而find返回-1
  count(‘a‘)                   # 查找字符串出现的次数

 1 >>> S2
 2 "Today‘s good day"
 3 >>> S2.find(a)           # 查找字符串,可以指定起始及结束位置搜索
 4 3
 5 >>> S2.find(a, 4, -1)    # 查找字符串,可以指定起始及结束位置搜索
 6 14
 7 >>> S2.rfind(a)          # 从右边开始查找字符串
 8 14
 9 >>> S2.index(a, 4)       # 查找字符串,可以指定起始及结束位置搜索
10 14
11 >>> S2.count(a)          # 查找字符串出现的次数
12 2
13 >>> S2.find(n)           # 找不到,find返回-1
14 -1
15 >>> S2.index(n)          # 使用index查找不到会抛异常,而find返回-1
16 Traceback (most recent call last):
17   File "<pyshell#62>", line 1, in <module>
18     S2.index(n)
19 ValueError: substring not found
20 >>> 

  replace(‘old‘,‘new‘)     # 替换函数,替换old为new,参数中可以指定maxReplaceTimes,即替换指定次数的old为new
  strip();                        # 默认删除空白符
  strip(‘d‘);                    # 删除Str1字符串中开头、结尾处,位于 d 删除序列的字符
  lstrip();
  lstrip(‘d‘);                   # 删除Str1字符串中开头处,位于 d 删除序列的字符
  rstrip();
  rstrip(‘d‘)                    # 删除Str1字符串中结尾处,位于 d 删除序列的字符

 1 >>> Str1 =   --- we all like beautiful woman woman woman. ***   
 2 >>> Str1.replace(woman, girl)
 3   --- we all like beautiful girl girl girl. ***   
 4 >>> Str1.replace(woman, girl, 2)
 5   --- we all like beautiful girl girl woman. ***   
 6 >>> Str1.lstrip()
 7 --- we all like beautiful woman woman woman. ***   
 8 >>> Str1.lstrip( -)
 9 we all like beautiful woman woman woman. ***   
10 >>> Str1.rstrip()
11   --- we all like beautiful woman woman woman. ***
12 >>> Str1.rstrip( *)
13   --- we all like beautiful woman woman woman.
14 >>> Str1.strip()
15 --- we all like beautiful woman woman woman. ***
16 >>> Str1.strip( -*)
17 we all like beautiful woman woman woman.
18 >>> 

  str1.startswith(‘start‘)          # 是否以start开头
  str1.endswith(‘end‘)           # 是否以end结尾
  str1.isalnum();             # 判断字符串是否全为字符和数字
  str1.isalpha();  str1.isdigit();       # 判断字符串是否全为字符、数字
  str1.islower();  str1.isupper()       # 判断字符串是否全为小写、大写

 1 >>> str1 = "A red-black tree is a binary search tree with one extra bit of storage per node: it‘s color, which can be either RED or BLACK."
 2 >>> str1.startswith(A red-black tree)
 3 True
 4 >>> str1.endswith(BLACK)
 5 False
 6 >>> str1.isalnum()
 7 False
 8 >>> str1.isalpha()
 9 False
10 >>> str1.isdigit()
11 False
12 >>> str1.islower()
13 False
14 >>> str1.isupper()
15 False
16 >>> Ared-blacktreeisabinarysearchtree666.isalnum()
17 False
18 >>> Aredblacktreeisabinarysearchtree666.isalnum()
19 True
20 >>> Aredblacktreeisabinarysearchtree.isalpha()
21 True
22 >>> 123456  .isdigit()
23 False
24 >>> 123456.isdigit()
25 True
26 >>> AREDBLACKTREEISABINARYSEARCHTREE.isupper()
27 True
28 >>> aredblacktreeisabinarysearchtree.islower()
29 True
30 >>>
















以上是关于Python Data Type的主要内容,如果未能解决你的问题,请参考以下文章

apriori片段代码

从值标签Etree XML python中提取文本

Python Data Type

python3.4 data type

需要对特定 R 代码片段的解释

Failed to convert property value of type ‘java.lang.String‘ to required type ‘int‘ for property(代码片段