Python(二).数据类型,数据类型转换

数据类型

    在python中,能够直接处理的的数据类型有以下几种:(这里似乎说法不一样,我这里仅表示自己的观点)

(1).数字(Number)

(2).字符串(String)

(3).布尔值(Bool)

(4).空值(None)

 

(1).数字(Number):

    数字包括整数(int),浮点数(float),复数(complex)。

整数:Python可以处理任意大小的整数,当然包括负整数,在程序中的表示方法和数学上的写法一模一样,并且因为是python3,没有了python2的长整型(long)。

所以整数没有限制大小。(受限于虚拟内存)        例如:10086,-22332233,0等都是整数。

计算机由于使用二进制,所以,有时候用十六进制表示整数比较方便,十六进制用0x前缀和0-9,a-f表示,例如:0xff00,0x67等。

>>>a=1000
>>>b=-100
>>>print(a-b)
1100

 

浮点数:浮点数也就是小数,之所以称为浮点数,是因为按照科学记数法表示时,一个浮点数的小数点位置是可变的。例如,1.23x109和12.3x108是完全相等的。

浮点数可以用数学写法,例如:1.56,-0.32,6.66等。但对于很大的浮点数,必须用科学计数法表示,(10用e代替)。例如:1.23x103=1.23e3,0.000099=9.9e-5

      由于整数和浮点数在计算机内部的存储方式不一样,整数运算永远是精确的(除法也是!),而浮点数运算可能会有四舍五入的误差。

例如:

1 >>>a=pow(1.23,3)
2 >>>b=pow(1.23,2)
3 >>>print(b-a)
4 -0.3479669999999999

 

复数与数学中的概念一样,对,就是那个a+bi。复数由实数部分和虚数部分构成,也可以表示成complex(a,b)。复数的实部real和虚部imag都是浮点型。a,b都是浮点型。

操作如下:

1 >>>v=a+bi
2 >>>v.real  #实部
3 a
4 >>>v.imag  #虚部
5 b
6 >>>v.conjugate()  #共轭复数
7 a-bi

注:#符号为注释,注释后的内容仅显示在代码行中,是对代码作用的解释。

 

(2).字符串(string):

    字符串是一个由字符组成的序列,用单引号(’)或双引号(”)括起来。有时需用转义字符(\)。

转义字符:当需要在字符串中使用特殊字符时,,需要用反斜杠( \ )作为转义字符。(前面有说过但是并不全面)

    常用转义字符:

 

转义字符 具体描述
\n 换行
\r 回车
\' '
\" "
\\ \
\(在行尾时) 续航符
\a 响铃
\b 退格(backspace)
\000
\v 纵向制表符
\t 横向制表符

例如:

 1 >>>print("\\\t\\\000")
 2 \    \
 3 >>>print('我是\n学生')
 4 我是
 5 学生
 6 >>>print("鬼\
 7 灭\
 8 之\
 9 ")
10 鬼灭之刃

 

(3).布尔值(Bool):

    布尔值通常用来判断条件是否成立。一个布尔值只有True/False两种值。

    在python2中没有布尔值,它用1表示True,0表示False。

    在python3中,True和False被定义成了关键字,但它们的值仍然是1和0,并可以和数字相加。

 

 1 >>>print(True)
 2 True
 3 >>>print(False)
 4 False
 5 >>>print(4>2)
 6 True
 7 >>>print(4>8)
 8 False
 9 #数值运算
10 >>>print(int(True),int(False))
11 1  0
12 >>>print(((True+100)-True)/100)
13 1.0
14 >>>print('%s, %d'% (bool('0'), False))
15 True , 0

 

    每一个Python对象都天生具有布尔值(True/False),  进而可用于布尔测试(如用在if、while中)。

    以下对象的布尔值都是False:

        1.none

        2.False(布尔型)

        3.0【整型0】:0;【长整型0】:0L;【浮点型0】:0.0;【复数0】:0.0+0.0j。

        4.空【空字符串】:'';【空列表】:[];【空元组】:();【空字典】:{}。

 

        5.用户自定义的类实例,该类自定义返回0或False的方法。

    除开上述对象之外的所有其他对象的布尔值都为True。

 

 1 >>>print(bool(True))
 2 True
 3 >>>print(bool(None and True))
 4 False
 5 >>>print(bool(None),bool(0),bool(0.0),bool(0.0+0.0j))
 6 False False False False
 7 >>>print(bool(''), bool([]), bool(()), bool({}))
 8 False False False False
 9 >>>class A: pass
10 >>> class B:
11             def __len__(self):
12                 return 0
13 >>> class C:
14             def __nonzero__(self):
15                 return False
16 >>> print(bool(A), bool(A()))
17 >>> print(bool(B), bool(B()))
18 >>> print(bool(C), bool(C()))
19 True True
20 True False
21 True True

 

 

 

 

    布尔值可以用and,or,not运算。(基本上和数学中的 与,或,非 差不多。)

    and是与运算:只有所有都为True,and的运算结果才能是True。

 

1 >>>print(True and True)
2 True
3 >>>print(True and False)
4 False
5 >>>print(5<2 and 4>6)
6 False

 

   or是或运算: 只要其中一个为True,运算结果就为True。

1 >>>print(True or False)
2 True
3 >>>print(False or False)
4 False
5 >>>print(bool(None or 1))
6 True

    not是非运算:它是一个单目运算符,把True变成False,False变成True。

1 >>>print(not True)
2 False
3 >>>print(not '')
4 True

 

(4).空值(None):

    空值是Python里一个特殊的值,用None表示。

    None并不是0。不要将二者混淆。0是有意义的,而None只是一个特殊的空值。

 

【注:数据类型还有列表,元组等,会在以后说。】

 

 

数据类型转换

有时候,我们需要对数据的类型进行转换。这时候只要将所需的数据的类型作为函数名即可

以下就是一些数据类型的转换用到的函数,这些函数会返回一个新的对象,表示转换的值。

函数 描述
int(x[,base]) 将x转换为一个整数
float(x) 将x转换到一个浮点数
complex([real[,imag]]) 创建一个复数
str(x) 将对象 x 转换为字符串
repr(x) 将对象 x 转换为表达式字符串
eval(str) 用来计算在字符串中的有效Python表达式,并返回一个对象
tupel(s) 将序列 s 转换为一个元组
list(s) 将序列 s 转换为一个列表
set(s) 转换为可变集合
dict(d) 创建一个字典。d 必须是一个 (key, value)元组序列
frozenset(s) 转换为不可变集合
chr(x) 将一个整数转换为一个字符
ord(x) 将一个字符转换为它的整数值
hex(x) 将一个整数转换为一个十六进制字符串
oct(x) 将一个整数转换为一个八进制字符串

 

END

 

 

 

posted @ 2019-10-11 20:13  风见宇  阅读(1678)  评论(0编辑  收藏  举报