【Python基础】05.Python基本数据类型之数字

9 篇文章 0 订阅
1 篇文章 0 订阅


Python有六大基本数据类型,分别为Number(数字)、String(字符串)、List(列表)、Tuple(元组)、Set(集合)、Dictionary(字典)。

1 变量

1.1 变量的定义

  • 变量是计算机内存中的一块区域,存储规定范围内的值,值可以改变,通俗的说变量就是给数据起个名字。
  • 用标识符命名的存储单元的地址称为变量,变量是用来存储数据的,通过标识符可以获取变量的值,也可以对变量进行赋值。
  • 在 Python 中,每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。
  • 等号(=)用来给变量赋值,= 左边是一个变量名,= 右边是存储在变量中的值。
    变量名 = 值
    变量定义之后,后续就可以直接使用了

1.2 变量的命名和使用规则

  • 变量名只能包含字母、数字和下划线。变量名可以字母或下划线打头,但不能以数字打头。例如:可将变量命名为 message_1,但不能将其命名为 1_message ;
  • 变量名不能包含空格,但可使用下划线来分隔其中的单词。例如:变量名 greeting_message 可行,但变量名 greeting message 会引发错误;
  • 不要将 Python 关键字和函数名用作变量名,即不要使用 Python 保留用于特殊用途的单词,如:print 等;
  • 变量名应既简短又具有描述性。例如:name 比 n 好, student_name 比 s_n 好, name_length 比 length_of_persons_name 好;
  • 慎用小写字母 l 和大写字母 O,因为它们可能被人错看成数字1和0。

1.3 注意事项

  • Python可以同时为多个变量赋值。如a, b = 1, 2;
  • 在Python中定义变量是不需要指定类型(在其他很多高级语言中都需要);
  • Python可以根据等号右侧的值,自动推导出变量中存储数据的类型;
  • 两个对象相等和两个对象是同一个对象是两个概念;

如需了解更多,请点击:python中变量存储的方式

2 Number(数字)

四种不同的数据类型:

  • 整型 (int):所有整数。
  • 浮点型(float):所有小数。
  • 布尔型(bool):布尔类型很简单,就两个值 ,一个True(真),一个False(假),主要用于逻辑判断。
  • 复数型(complex): 主要用于科学计算。例如:平面场问题、波动问题、电感电容等问题。

内置的 type() 函数可以用来查询变量所指的对象类型。比如:

>>> a, b, c, d = 20, 5.5, True, 4+3j
>>> print(type(a), type(b), type(c), type(d))
<class 'int'> <class 'float'> <class 'bool'> <class 'complex'>

2.1 整型

  • 整数就是没有小数部分的数字,Python 中的整数包括正整数、0 和负整数。
  • 有些强类型的编程语言会提供多种整数类型,每种类型的长度都不同,能容纳的整数的大小也不同,开发者要根据实际数字的大小选用不同的类型。例如C语言提供了 short、int、long、long long 四种类型的整数,它们的长度依次递增,初学者在选择整数类型时往往比较迷惑,有时候还会导致数值溢出。
  • 而 Python 则不同,它的整数不分类型,或者说它只有一种类型的整数。Python 整数的取值范围是无限的,不管多大或者多小的数字,Python 都能轻松处理。

注意:
Python3中取消了long长整型的概念,将其合并到int整型中。

2.1.1 整数的不同进制

在 Python 中,可以使用多种进制来表示整数:

  • 十进制形式
    我们平时常见的整数就是十进制形式,它由 0~9 共十个数字排列组合而成。
    注意,使用十进制形式的整数不能以 0 作为开头,除非这个数值本身就是 0。
  • 二进制形式
    由 0 和 1 两个数字组成,书写时以0b或0B开头。例如,101 对应十进制数是 5。
  • 八进制形式
    八进制整数由 0~7 共八个数字组成,以0o或0O开头。注意,第一个符号是数字 0,第二个符号是大写或小写的字母 O。
  • 十六进制形式
    由 0~9 十个数字以及 A~F(或 a~f)六个字母组成,书写时以0x或0X开头。
a = 0b01011000        # 二进制
c = 0o130             # 八进制
b = 0x58              # 十六进制
print('二进制的值为:', a)
print('八进制的值为:', b)
print('十六进制的值为:', c)

执行结果:

二进制的值为: 88
八进制的值为: 88
十六进制的值为: 88

2.1.2 数字分隔符

为了提高数字的的可读性,Python 3.x 允许使用下划线_作为数字(包括整数和小数)的分隔符。通常每隔三个数字添加一个下划线,类似于英文数字中的逗号。下划线不会影响数字本身的值。

distance = 384_400_000
print("地球和月球的距离:", distance, "米")

执行结果:

地球和月球的距离: 384400000

2.2 浮点型

在编程语言中,小数通常以浮点数的形式存储。其中一种书写形式为常见的形式,例如:3.14、5.26等等;另一种书写形式为使用科学计数法表示,例如:(5.2e2 = 5.2 x 102 = 520)
注意:

  • 用科学计数法表示浮点数的时候,E和e都可以。
  • Python 只有一种小数类型,就是 float。C语言有两种小数类型,分别是 float 和 double:float 能容纳的小数范围比较小,double 能容纳的小数范围比较大。
  • 只要写成科学计数法的形式就是小数(浮点数),即使它的最终值看起来像一个整数。
a = 14e03
print(a,type(a))

执行结果:

14000.0 <class 'float'>

2.3 布尔型

Python 提供了 bool 类型来表示逻辑上的真(对)或假(错),分别使用常量True 和 False来表示。
比较运算符< > == 等返回的类型就是bool类型;布尔类型通常在 if 和 while 语句中应用。
内置函数 bool() 可被用来将任意值转换为布尔值,只要该值可被解析为一个逻辑值。
任何对象都可以进行逻辑值的检测,以便在 if 或 while 作为条件或是作为布尔运算的操作数来使用。
一个对象在默认情况下均被视为真值,除非当该对象被调用时其所属类定义了 bool() 方法且返回 False 或是定义了 len() 方法且返回零。下面基本完整地列出了会被视为假值的内置对象:

  • 被定义为假值的常量: None 和 False。
  • 任何数值类型的零: 0, 0.0, 0j, Decimal(0), Fraction(0, 1)
  • 空的序列和多项集: ‘’, (), [], {}, set(), range(0)
    产生布尔值结果的运算和内置函数总是返回 0 或 False 作为假值,1 或 True 作为真值,除非另行说明。(重要例外:布尔运算 or 和 and 总是返回其中一个操作数。)
print(bool())
print(bool(None), bool(False))
print(bool(0), bool(0.0), bool(0j))
print(bool(""), bool(()), bool([]), bool({}))

执行结果:

False
False False
False False False
False False False False

需要注意的是,Python中,bool是int的子类(继承int),故布尔类型可以当做整数来对待,即 True 相当于整数值 1,False 相当于整数值 0。故 True == 1 或False==0 是会返回Ture的。如要切实判断用 xxx is True。

>>> print(True==1)
True
>>> print(False==0)
True
>>> print(1 is True)
False
>>> print(0 is False)
False

可以通过issubclass()判断参数class是否是类型参数classinfo 的子类。具体语法如下:
语法:issubclass(class, classinfo)
参数: class -- 类;classinfo -- 类。
返回值:如果 class 是 classinfo 的子类返回 True,否则返回 False。

>>> issubclass(bool,int)
True

由于bool是int的子类,且可以当作整数来看,所以也可以进行数字计算。

>>> print(True+True)
2
>>> print(True+1)
2
>>> print(False+1)
1
>>> print(True+False)
1

2.4 复数型

  • 复数(Complex)是 Python 的内置类型,直接书写即可。换句话说,Python 语言本身就支持复数,而不依赖于标准库或者第三方库。
  • 复数由实部(real)和虚部(imag)构成,在 Python 中,复数的虚部以 j 或者 J 作为后缀,具体格式为:

a+bj

a 表示实部,b 表示虚部。
注意:

  • 实数部分和虚数部分都是浮点数。
  • 可以通过conjugate()返回复数的共轭复数
  • 可以通过abs()返回复数的模
  • 也可以通过complex(real [,imag]) 创建一个复数
a = 3-4j
print(a.real)          # 返回复数的实部
print(a.imag)          # 返回复数的虚部
print(a.conjugate())   # 返回复数的共轭复数
print(abs(a))          # 返回复数的模

执行结果:

3.0
-4.0
(3+4j)
5.0
  • 复数的简单运算
a = 1+2j
b = 3+4j
print(a+b,a-b)                            # 复数的加减运算
a = 1j*1J
print(a)
b = 1j*complex(0,1)
print(b)
c = 3+1j*3
print(c)
d = (3+1j)*3
print(d)
e = complex(1,2)*complex(1,1)              #复数的乘运算
print(e)
f = (1+2j)/(1+1j)                          #复数的除运算
print(f)

执行结果:

(4+6j) (-2-2j)
(-1+0j)
(-1+0j)
(3+3j)
(9+3j)
(-1+3j)
(1.5+0.5j)

推荐阅读:
【Python基础】04.运算符(超详细)
【Python基础】03.基本概念(表达式、语句等)以及标识符和关键字
【Python基础】02.Python环境搭建以及PyCharm的安装和配置
【Python基础】01.Python简介
  计算机与编程基础知识

参考链接:
http://c.biancheng.net/view/7039.html
http://c.biancheng.net/view/7040.html
https://blog.csdn.net/henni_719/article/details/56665254

 

未完待续…

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值