Python 极简教程(三)数据类型
每种语言都有各种数据类型。这就像在现实生活中,我们计数的时候需要用到数字,在表述金额、重量、距离等需要精确计数时用到小数,在日常交谈中要用文字,等等。在计算机语言中,为了表述不同的情况,也需要用到各种数据类型。
在 Python 主要有数值类型(int, float),字符串类型,布尔型和空值。
整型 int
Python 中整型来表示整数,正数或者负数,没有小数点。10 和 10.0 是两种数据类型。
浮点数 float
浮点数也就是我们常见的带小数点的数字。之所以叫浮点数,是因为小数点的位置不固定,也就是浮动的。
比如 10.01 可以写为 1.001 * 10^1,也可以写为 0.1001 * 10^2。
字符串 str
字符串是最常用的数据类型之一,用引号包裹起来的就是字符串。在 Python 中,引号可以是双引号,也可以是单引号。但是不能混用。
同时也可以使用三对引号(单双都可以)来标记多行字符串。
>>> char = 'nemo' # 单引号
>>> char2 = "python" # 双引号
>>> char3 = 'python" # 单双引号混用,语法错误
>>> char4 = 'this 's a pig' # 语法错误,可以将外面的引号替换为双引号,或者使用转义符
>>> char5 = 'this \'s a pig'
Python 中还有很多关于字符串的操作,将在后续教程中详细讲解。
布尔型 bool
布尔型,只有两个值,就是我们通常说的真与假,错与对,是和否。
在计算机语言中,通常使用布尔值来表示条件是否成立,条件成立则为 True,不成立则为 False。
>>> 3 > 1
True
>>> 0 < 5
False
>>> 5 == '5'
False
空值 None
空值 None 是 Python 中的一种特殊数据类型,严格意义上来说也不算是一种数据类型。空值用来表示什么都没有,空字符串不是空,空的字符串也是字符串,而空值什么都不是。在其他语言或数据库中用 null 表示。
常见于函数中,当函数没有定义返回值的时候,默认返回的就是 None。
判断数据类型的常用函数
在 Python 中,用于判断数据类型的函数主要有两种,type() 和 isinstance()。
type()函数用于查看数据的类型:
>>> type(5)
<class 'int'>
>>> type(5.0)
<class 'float'>
>>> type('5')
<class 'str'>
isinstance()用于判断数据的类型,符合返回True,不符合返回False:
>>> isinstance(5, int) # isinstance 需要两个参数,第一个是值,第二个是类型
True
>>> isinstance('5', int)
False
>>> isinstance('5', str)
True
>>> isinstance(True, int)
True
>>> isinstance(True, bool)
True
这里有个现象 isinstance(True, int)也是符合的,我们上面说过 True是布尔型,怎么int型也是符合的呢?
其实布尔型是int的一种,值只有 0 和 1 罢了。
>>> True == 1
True
>>> False == 0
True
数据类型转换
不同的数据类型是可以互相转换的。如果要转为整数类型,可以使用int()函数,如果转为浮点型,可以使用float() 函数, 如果转为字符串类型,可以使用str() 函数。
| 目标类型 | 函数 |
|---|---|
| int | int() |
| str | str() |
| float | folat() |
>>> int('15')
15
>>> int('15a') # 报错,字符串转 int ,必须全部是十进制的数字
ValueError: invalid literal for int() with base 10: '15a'
>>> int('1.1') # 报错,看似浮点数也不行,但是这个可以用 float 转为浮点数
ValueError: invalid literal for int() with base 10: '1.1'
>>> float('1.1')
1.1
>>> float('11')
11.0
>>> str(100)
'100'
其余转换情况可自行尝试。
在 Python 中,任意的数据类型,都是对象!当然,还不止于此,在 Python 中所见皆对象。不过这句话现在不需要理解,先记住就好。
本结思考
5 == 5.0,结果是什么?为什么?
5 is 5.0,结果是什么?为什么?
Python 极简教程(三)数据类型的更多相关文章
- Python 极简教程(八)字符串 str
由于字符串过于重要,请认真看完并保证所有代码都至少敲过一遍. 对于字符串,前面在数据类型中已经提到过.但是由于字符串类型太过于常用,Python 中提供了非常多的关于字符串的操作.而我们在实际编码过程 ...
- python极简教程04:进程和线程
测试奇谭,BUG不见. 大家好,我是谭叔. 这一场,主讲python的进程和线程. 目的:掌握初学必须的进程和线程知识. 进程和线程的区别和联系 终于开始加深难度,来到进程和线程的知识点~ 单就这两个 ...
- python极简教程01:基础变量
测试奇谭,BUG不见. 其实很久之前,就有身边的同事或者网友让我分享一些关于python编程语言的教程,他们同大多数自学编程语言的人一样,无外乎遇到以下这些问题: 网络上的资料过多且良莠不全,不知道如 ...
- Python 极简教程(一)前言
现在 Python 用处很多,学的人也很多,其流行程度自不必说.但是很多人学 Python 的时候都遇到过问题,特别对于非计算机专业毕业的人来说. 现在的教程非常多,但是绝大部分对于初学者都不够友好. ...
- Python 极简教程(十)集合 set
什么是集合? 集合(set)是一种可变,无序和不重复的序列. 集合是python的序列之一,集合没有列表(list).元组(tuple)和字典(ditc)常见.但是有时候也有奇效. 我们先来看个集合的 ...
- python极简教程07:封装、多态和继承
测试奇谭,BUG不见. 这一场主讲python的面向对象部分--封装.多态和继承. 目的:掌握Python面向对象的三个核心概念. 封装 01 什么是封装? 封装的目的是,保护隐私.通俗的讲:不想让别 ...
- python极简教程08:对象的方法
测试奇谭,BUG不见. 讲解之前,我先说说我的教程和网上其他教程的区别: 1 我分享的是我在工作中高频使用的场景,是精华内容: 2 我分享的是学习方法,亦或说,是指明你该学哪些.该重点掌握哪些内容: ...
- Python 极简教程(十二)逻辑控制语句 if else
计算机软件之所以能够对不同的情况进行不同的处理,就是我们在编码的时候,通过逻辑控制语句,告诉软件在不同的情况下应该做什么处理. 比如我们在登录的时候,那么当你输入正确的账号密码和错误的账号密码,完全是 ...
- Python 极简教程(十一)字典 dict
字典是以大括号标识,以键值对(key:value)的形式,无序,不可重复,可变的集合类型. 字典具有非常高效的读写效率. >>> d = {} # 创建一个空字典 >>& ...
随机推荐
- 【 Codeforces Round #425 (Div. 2) D】Misha, Grisha and Underground
[Link]:http://codeforces.com/contest/832/problem/D [Description] 给你一棵树; 然后给你3个点 让你把这3个点和点s,t,f对应; 然后 ...
- .Net视图机制
.Net会有默认的约定. HomeController下面的Index,会默认渲染Home/Index.cshtml. 当然可以设置成别的,比如设置成About. using System; usin ...
- android图像处理系列之六-- 给图片添加边框(下)-图片叠加
前面介绍了一种用透明图片叠加的方式添加花边边框,下面将介绍另外一种图片叠加添加花边边框的方式.前面方法有一个缺点,就是做成PNG图片,图片体积会很大,不是一般的大,比同样的JPG大三倍多,如果项目可以 ...
- button按钮怎么实现超链接
button按钮怎么实现超链接 一.总结 1.我的按钮实现超链接是通过button内嵌a标签来实现的 <button class="am-btn am-btn-default am-b ...
- Onvif开发之服务端发现篇
服务端的开发相对来说比客户端稍微难一点,也就是给填充相关结构体的时候,需要一点一点的去查阅,验证各个结构中各个成员各自代表什么意思,以及对应的功能需要是那个接口实现,这是开发服务端最头疼的事情.(在开 ...
- 56.ERR! configure error gyp ERR! stack Error: Can't find Python executable "python", you can set the PYTHON env variable.
Node.js 在安装模块的时候报错,缺少python环境. ERR! configure error gyp ERR! stack Error: Can't find Python executab ...
- Spark MLlib协同过滤算法
算法说明 协同过滤(Collaborative Filtering,简称CF,WIKI上的定义是:简单来说是利用某个兴趣相投.拥有共同经验之群体的喜好来推荐感兴趣的资讯给使用者,个人透过合作的机制给予 ...
- C++ 补课(一)
1,在C语言中,全局变量必须声明在所有的函数之前,局部变量必须声明在所有可执行语句之前: C++ 允许在代码块的任何位置对局部变量进行声明 2,常量定义方面,C语言 #define 可能因计算的优先级 ...
- HTML5多维度数据分析
详情:http://echarts.baidu.com/index.html
- C# Unable to load DLL 'WzCanDll.dll':找不到指定的模块
一.打开app无法加载DLL 我用C++编写的DLL,然后用C#写的界面APP,在自己的电脑上打开没有问题,放在其它电脑上就出现无法加载DLL库的问题,一连接APP就会出现问题,如下图所示: 二.解决 ...