小白学 Python(2):基础数据类型(上)

人生苦短,我选Python
引言
前文传送门
接触一门新的语言,肯定要先了解它的基础数据类型。啥?你问我为啥要先了解基础数据类型?

为了你的生命安全,还是乖乖听我 BB 吧,别想那些有的没的。
Python 拥有着很多的基础数据类型,那么,什么是数据类型呢?
打开百度,随手一个 Copy:
数据类型在数据结构中的定义是一个值的集合以及定义在这个值集上的一组操作。
变量是用来存储值的所在处,它们有名字和数据类型。变量的数据类型决定了如何将代表这些值的位存储到计算机的内存中。
小编你别跑,看我不打死你,数据类型还没搞清楚,你又提出来一个变量的概念

当然,如果你学过编程语言,比如计算机等级考试中的 C 语言,这两个概念并不难理解。
如果你没有学过,那么就有点难了,毕竟基础概念永远都是最难解释的。

想必大家都喝过奶茶。

在奶茶店买奶茶的时候会有小杯、中杯、大杯。
这里的小杯、中杯、大杯就是数据类型,而其中盛放的奶茶就是变量,奶茶的名称就是变量名。
是不是这下好理解多了?
数字
在 Python 的数字有 4 种数据类型,分别为:
- int(有符号整型)
- long(长整型)
- float(浮点型)
- complex(复数)
小明提问:虾米?一个数字都能整出来这么多类型,莫不是你在忽悠我吧?
小明同学,你就不能先静静听我 BB 完么。
Python 为我们提供了一个函数 type() ,通过这个函数我们可以获取到当前的数据类型。示例如下:
print(type(123))
print(type(123.0))
print(type('123'))
print(type("123"))
上面示例的运行结果如下:
<class 'int'>
<class 'float'>
<class 'str'>
<class 'str'>
可以得出的结论是:
123 是整形(int)
123.0 是浮点型(float)
'123' 和 "123" 的类型是一致的,都是字符串 str(注意,有单双引号,如果无引号则不会认为是字符串类型)
我们接着使用另一个函数 isinstance() ,这个函数的作用其实从字面意思就能看出来,判断一个对象是否是一个已知的类型,具体语法如下:
isinstance(object, classinfo)
- object -- 实例对象。
- classinfo -- 可以是直接或间接类名、基本类型或者由它们组成的元组。
示例代码如下:
print(isinstance(123, int))
print(isinstance(123.0, float))
print(isinstance('123', str))
测试结果如下:
True
True
True
整形
整形的意思就是整数,例如:
-1,-10,1,2333333333之类的。
至于长度有多少,我们做个测试好了,示例代码如下:
print(10**1000)
** 的含义是次方,上面这个示例代码的意思就是 10 的 1000 次方,显示结果如下:
10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
具体有多少个 0 我已经不想数了,反正这么长肯定够用了吧。
进制
讲到数字就不得不提的另一个概念就是进制,想必进制大家都清楚,计算机的世界中比较常见的有二进制,生活中比较常听到的有八进制和十六进制。
具体的表示方法如下:
- 十进制:正常写就 ok ,所有的数字都默认是十进制的。
- 二进制:在最前面添加
0b的前缀,并且组成部分必须只能由 0 或者 1 组成(废话,有其他数字还叫二进制么),如: 0b10101010101 - 八进制:在最前面添加
0o的前缀,并且组成部分必须只能有 0~7 的数字组成,如:0o12345670 - 十六进制:在最前面添加
0x的前缀,并且组成部分由 0~9 和 A~F 组成,如:0xdb273dc(注意:字母大小写不做区分,也可以写成 0xDB273DC )
浮点数
简单来讲浮点数就是带小数点的数字
注意:浮点数只能是十进制的数字
其实,浮点数还包括分数,示例如下:
print(1/2)
print(1/3)
print(1/6)
结果如下:
0.5
0.3333333333333333
0.16666666666666666
因为是无限循环小数,所以会存在误差。
复数
来,先复习一波上初中的基础概念:
- 有理数:有理数是指两个整数的比。有理数是整数和分数的集合。简单来讲就是整数 + 有限或者无限循环小数。
- 无理数:简单讲就是无限不循环小数。
有理数和无理数加在一起成为实数,在实数之外还有一种叫做复数。
- 复数:我们把形如 z = a + bi(a,b均为实数)的数称为复数,其中 a 称为实部, b 称为虚部, i 称为虚数单位。
想要回忆更多的内容请各位自行百度吧。
在 Python 中,复数的表现方式如下:
print(1+1j)
print(type(1+1j))
结果如下:
(1+1j)
<class 'complex'>
概念里都讲了,复数是有实部和虚部的,那在 Python 中如何获取呢?示例如下:
print((2.46+1.37j).real)
print((2.46+1.37j).imag)
总感觉学 Python 是在考验我的英语水平, real 真实的, imag 虚假的。
布尔值
布尔值其实就两个值,对或者错,true or false 。
在很多其他的变成语言中,布尔值都会列为一个单独的数据类型,但是 Python 并没有这么做。
那么,布尔值有什么用呢?
这个用处可就大了,比如会频繁的使用在各种逻辑判断中,这个当然我们后面再聊。
先看下如何简单的使用吧,示例如下:
print(123 == 123.0)
print(123 == '123')
测试结果:
True
False
What?123 竟然会等于 123.0 ,不是说他们两个类型不一致么?
注意: == 只能用来做数值的比较,并不会比较当前的数据类型,所以 123 和 123.0 是相等的。而 '123' 不等于 123 则是因为 '123' 是字符串,不能数值运算,而 123 是数字。
示例代码
本系列的所有代码小编都会放在代码管理仓库 Github 和 Gitee 上,方便大家取用。
小白学 Python(2):基础数据类型(上)的更多相关文章
- 小白学 Python(16):基础数据类型(函数)(上)
人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...
- 小白学 Python(3):基础数据类型(下)
人生苦短,我选Python 引言 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 前面我们介绍过了数字,本篇我们接着聊另一个常用的基础数据类型:字符串. ...
- 小白学 Python(5):基础运算符(上)
人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...
- 小白学 Python(7):基础流程控制(上)
人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...
- 小白学 Python(9):基础数据结构(列表)(上)
人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...
- 小白学 Python(12):基础数据结构(字典)(上)
人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...
- 小白学 Python(14):基础数据结构(集合)(上)
人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...
- 小白学 Python(17):基础数据类型(函数)(下)
人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...
- 小白学 Python(23):Excel 基础操作(上)
人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...
随机推荐
- Java中String为什么是不可变的
1.在Java中,String类是不可变类,一个不可变类是一个简单的类,并且这个的实例也不能被修改, 这个类的实例创建的时候初始化所有的信息,并且这些信息不能够被修改 2.字符串常量池 字符串常量池是 ...
- Navicate for mysql如何导入一个sql文件
我在做的项目是宜立方商城的项目,现在需要把见表的sql文件导入到navicate中去,步骤如下: ①新建一个数据库,如下: ②在数据库名字上右键,选择运行sql文件 ③选择如下sql文件 ④刷新之后:
- Mysql使用SSL连接
最近项目中用到了SSL连接,记录一下,环境为windows10,Mysql版本为5.6 查看是否支持 SSL 首先在 MySQL 上执行如下命令, 查询是否 MySQL 支持 SSL: mysql&g ...
- .net core Cookie的使用
缘起: 公司领导让我做一个测试的demo,功能大概是这样的:用户通过微信扫一扫登陆网站,如果用户登录过则直接进入主界面,否则就保留在登录界面. 实现方法: 首先先把网站地址生成个二维码,在扫描二维码后 ...
- 一、springboot起航
# 前言 之前零零散散的学习了一些springboot的知识,以及搭建一些springboot的项目,甚至还有一些项目应用到实际项目中了,但是突然有一天想要建一个自己的项目网站.发现自己不知道从何开始 ...
- 即时聊天APP(二) - MainActivity
主活动包含三个Fragment,分别是会话.联系人和设置,初始布局隐藏所有碎片,然后把应该显示的显示出来: //隐藏所有Fragment private void hideAll(){ Fragmen ...
- LINUX下搭建简单临时的WWW服务器
首先确定是否安装有python: python -V 如果有: cd 到你要开放的文件夹中,然后使用下面的命令可以把 当前文件夹内的所有文件 发布到 8000 端口. python -m Simple ...
- Java开发者薪资最低?程序员只能干到30岁?国外真的没有996?Intellij真的比Eclipse受欢迎?
Stack Overflow作为全球最大的程序设计领域的问答网站,每年都会出据一份开发者调查报告.近日,Stack Overflow公布了其第9次年度开发者调查报告(https://insights. ...
- 基于vue实现搜索高亮关键字
有一个需求是在已有列表中搜索关键词,然后在列表中展示含有相关关键字的数据项并且对关键字进行高亮显示,所以该需求需要解决的就两个问题: 1.搜索关键词过滤列表数据 2.每个列表高亮关键字 ps: 此问题 ...
- App的功能测试要点
一 UI测试 (1)界面(菜单.窗口.按钮)布局.风格是否满足客户要求,文字和图片组合是否美观,操作是否友好. (2)清晰.简洁.美观.响应.一致 (3)图形测试.内容测试.导航测试 (图形包括 ...