首页 > 编程语言 > 详细

Python数据类型之Number(数字类型)

时间:2021-04-11 21:11:07      阅读:11      评论:0      收藏:0      [点我收藏+]

Python中存在四种不同的数字类型(Number):

  • 整数(int)

  • 浮点数(float)

  • 布尔类型(bool)

  • 复数(complex)

注意:数字类型(Number)是不可变的数据类型

整数(int)

Python3之后只有一种整数类型int,表示长整型,不再有之前的long类型。int或整数是完整的数字,正数或负数,没有小数,长度是不限。默认用十进制表示,同时也支持二进制,八进制,十六进制表示方式。

a = 100
print(a)  # 100
print(type(a))  # <class ‘int‘>

注: type函数可以查看数据的类型。

二进制整型:

b = 0b10
print(b)  # 2
print(type(b))  # <class ‘int‘>

# 获取内存地址
print(id(b))  # 140708807614896

八进制整型:

c = 0o127 
print(c)  # 87
print(type(c))  # <class ‘int‘>

十六进制整型:

d = 0xa
print(d)  # 10
print(type(d))  # <class ‘int‘>

各进制之间转换的内置函数:

  • bin(i):将i转换为2进制,以0b开头。

  • oct(i):将i转换为8进制,以0o开头。

  • int(i):将i转换为10进制。

  • hex(i):将i转换为16进制,以0x开头。

浮点数(float)

Python的浮点数也就是数学中的小数,如3.14,2.5,-0.3

str1 = 3.14
print(str1)  # 3.14
print(type(str1))  # <class ‘float‘>

科学计数法表示:

str2 = 3.1e4
print(str2)  # 31000.0  小数点右移4位
print(type(str2))  # <class ‘float‘>

str3 = 3.1e-2
print(str3)  # 0.031  小数点左移2位

布尔(bool)

在Python中,布尔(bool)只有两个值 TrueFalse

var1 = True
print(var1)  # True
print(type(var1))  # <class ‘bool‘>

var2 = False 
print(var2)  # False

复数(complex)

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

方式1:

complex_var1 = 3 + 10j
print(complex_var1)  # (3+10j)
print(type(complex_var1))  # <class ‘complex‘>

complex_var2 = -3j
print(type(complex_var2))  # <class ‘complex‘>

方式2:

complex(实数, 虚数)

var = complex(3, -10)
print(var)  # (3-10j)
print(type(var))  # <class ‘complex‘>

Number强制类型转换

int()

float转为int:

var1 = 3.14
print(int(var1))  # 3

bool转为int:

var2 = True
var3 = False
print(int(var2))  # 1
print(int(var3))  # 0

str转为int:

var4 = "1234"
print(int(var4))  # 1234

# 纯数字字符串才可以转,否则报错
var5 = "abc"
print(int(var5))  # invalid literal for int() with base 10: ‘abc‘

float()

int转为float:

a = 123
print(float(a))  # 123.0

bool转为float:

b = True
print(float(b))  # 1.0
c = False
print(float(c))  # 0.0

str转为float:

d = "1234"
print(float(d))  # 1234.0

complex()

int转为complex:

x = 10
print(complex(10))  # (10+0j)

float转为complex:

y = 13.4
print(complex(y))  # (13.4+0j)

bool转为complex:

z = True
print(complex(z))  # (1+0j)

u = False
print(complex(u))  # 0j

str转为complex:

v = "345"
print(complex(v))  # (345+0j)

bool()

bool类型为假的情况:

print(bool(0))  # False
print(bool(0.0))  # False
print(bool(0j))  # False
print(bool(""))  # False
print(bool([]))  # False
print(bool(()))  # False
print(bool({}))  # False

print(bool(None))  # False

注意: None是Python中的关键字,表示空值,是一个特殊的值,类型是 NoneType

print(type(None))  # <class ‘NoneType‘>

Number自动类型转换

默认精度从低向高进行转换: bool -> int -> float -> complex

# bool + int
res = True + 10
print(res, type(res))  # 11 <class ‘int‘>

# bool + float
res = True + 3.1
print(res, type(res))  # 4.1 <class ‘float‘>

# bool + complex
res = True + 5-10j
print(res, type(res))  # (6-10j) <class ‘complex‘>

# int + float
res = 10 + 3.14
print(res, type(res))  # 13.14 <class ‘float‘>

# int + complex
res = 10 + 2 + 3j
print(res, type(res))  # (12+3j) <class ‘complex‘>

# float + complex
res = 3.4 + 2 - 4j
print(res, type(res))  # (5.4-4j) <class ‘complex‘>

Python数据类型之Number(数字类型)

原文:https://www.cnblogs.com/bubbleboom/p/14645198.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!