Python的数据类型(一):数值类型、进制间的转换、数据类型的转换

数据类型

Python中的数据类型有:
数值类型:整型(int)、浮点型(float)、复数(complex)、长整型(long)
     注意:在Python3中,长整型已经被废弃了。
字符串类型(str):例如 a = ‘qwer’
布尔类型(bool):True、False
列表(list):例如 list1 = [1, 2, 3]
元组(tuple): 例如 tup1 = (1,2,3)
字典(dict): 例如 dict1 = {‘name’: ‘张三’,‘age’:18}
集合(set): 例如 fruits = {‘apple’,‘pear’,‘banana’}

1.数值类型

整型(int):通常被称为是整型或整数,是正或负整数,不带小数点。Python3 整型是没有限制大小的,可以当作 long 类型(长整型)使用,所以 Python3 没有 Python2 的 long 类型。

a = 10

浮点型(float):浮点型由整数部分与小数部分组成,浮点型也可以使用科学计数法表示(1.2e2 = 1.2 x 10^2 = 120)。

b = 1.2

复数(complex) : 复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型。

c = 1.2 + 5j

2.不同进制间的转换

讲到数值类型,必不可少的就是不同进制数据的表示方式以及转换方式。
  计算机其实只能保存二进制0和1,为了方便数据的表示,同时计算机也支持八进制和十六进制。
  在Python里,二进制、八进制、十进制、十六进制都能被表示,有些语言只能表示十进制的数。

2.1进制的表示

a = 90   #默认数字都是十进制的数字  90就是十进制的九十
b = 0b101  #以0b开头的数字是二进制的数字。
print(b)   # 5 ,当使用print语句打印一个数字的时候,默认也是使用十进制打印输出的。

二进制里面最大的个位数是1,不能出现2。

c = 0o23  #以0o开头的数字是八进制的数字。
print(c)  # 19

八进制里最大的个位数是7.

d = 0x3a  #以0x开头的数字是十六进制的数字。
print(d)  # 58

十六进制 :0 ~ 9 ,a ~ f

2.2使用代码进行进制转换

a = 13  # 十进制的数字13
print(bin(a))  # 0b1101 使用bin内置函数可以将数字转换成为二进制
print(oct(a))  # 0o15 使用oct内置函数可以将数字转换成为八进制
print(hex(12))  # 0xd  使用hex内置函数可以将数字转换成为十六进制

3.数据类型的转换

3.1区别与原因

类型转换与进制转换的区别:
  进制转换是将 int 类型以不同的进制表现出来。
  类型转换是将一个类型的数据转换为其他类型的数据。

int ==> str     str ==> int     bool ==> int    int ==> float

转换数据类型的原因:
  因为不同的数据类型,进行运算时,它的运算规则不一样。

3.2转换成为整数

使用 int 内置类可以将数据转换成为整数

a = '30'
b = int(a)
print(a)  # 30
print(b)  # 30
print(a + 1)  # 报错
print(b + 1)  # 31

如果字符串不是一个合法的数字,会直接报错。

x = 'hello'
y = int(x)
print(y)    #报错
x = '14'
y = int(x, 8)  # 把字符串 14 当做八进制转换成为整数
print(y)  # 12  打印一个数字,默认使用十进制输出

3.3转换成为浮点数

使用float内置类可以将其他类型数据转换成为 float浮点数。

a = '1.23'
b = float(a)
print(b + 1)  # 2.23

如果字符串不能被转换成为有效的浮点数,会报错。

c = float('hello')
print(c)   # 报错
m = float('10')  # 将字符串转换成为浮点数
n = float(10)    # 将整型数字转换成为浮点数
print(m, n)      # 10.0  10.0

3.4转换成为字符串

使用 str 内置类可以将其他类型的数据转换成为字符串。

a = 10
b = str(a)
print(a + 1)   # 11
print(b + 1)   # 报错
print(a)  # 10
print(b)  # 10
print(type(a))   # <class 'int'>  a为整型
print(type(b))   # <class 'str'>  b为字符串

3.5转换成为布尔值

使用 bool内置类可以将其他数据类型转换成为布尔值。

print(bool(10))   # 将数字100转换成为布尔值
print(bool(-10))  # -10转换成为布尔值也是True
print(bool(0))    # False

数字里,只有数字 0 被转换成为布尔值是False,其他数字转换成为布尔值都是True。

print(bool('False'))  # True
print(bool(''))       # False

字符串里,只有空字符串 ’ ’ / " " 可以转换成为False,其他字符串都转换成为True。

print(bool(None))    # False  空数据
print(bool("None"))  # True   此时 ""

None 转换成为布尔值是 False。

print(bool([]))  # False   空列表
print(bool(()))  # False   空元组
print(bool({}))  # False   空字典
print(bool(set()))# False  空集合

数字0、空字符串 ’ ’ / " " 、空列表[]、空元组()、空字典{}、空集合set()、空数据None会被转换成为False.

在计算机里,True和False其实就是使用数字 1 和 0 来保存的。

print(True + 1)   # 2
print(False + 1)  # 1
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值