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 = {} # 创建一个空字典 >>& ...
随机推荐
- Elasticsearch之源码分析(shard分片规则)
前期博客是 Elasticsearch之源码编译 (1)elasticsearch在建立索引时,根据id或(id,类型)进行hash,得到hash值之后再与该索引的分片数量取模,取模的值即为存入的分片 ...
- linux环境下禅道搭建
1.下载禅道安装包,根据操作系统的版本: 2.上传包到linux的opt目录中: 3.解压包: cd /opt tar xzvf 禅道包名称,如:tar xzvf ZenTaoPMS.8.1.3.zb ...
- 原生js中获取this与鼠标对象以及vue中默认的鼠标对象参数
1.通过原生js获取this对象 <!DOCTYPE html> <html> <head> <meta charset="utf-8" ...
- halt---关闭正在运行的Linux操作系统。
halt命令用来关闭正在运行的Linux操作系统.halt命令会先检测系统的runlevel,若runlevel为0或6,则关闭系统,否则即调用shutdown来关闭系统. 语法 halt(选项) 选 ...
- Python Web框架要点
1. Web应用程序处理流程 前端客户端(浏览器.APP.ajax.爬虫程序)>>>--http的请求与响应--<<<服务器程序(Gunicorn.uwsig)&l ...
- NYOJ 927 The partial sum problem 【DFS】+【剪枝】
The partial sum problem 时间限制:1000 ms | 内存限制:65535 KB 难度:2 描写叙述 One day,Tom's girlfriend give him a ...
- AQS -> AbstractQueuedSynchronizer
前言 : 先说说这个 CLH锁: 加锁 1. 创建一个的需要获取锁的 Node 2. 通过 CAS操作 让自己 成为这个尾部的节点,然后令 设置自己的pre 3. 自旋,直到pre节点释放 释放: 1 ...
- thinkphp杂项功能(主干)
thinkphp杂项功能(主干) 一.总结 1.杂项功能:杂项里面我需要有点印象的是五个:缓存,多语言,图像处理,文件处理,单元测试 二.thinkphp杂项功能(主干) thinkphp扩展杂项功能 ...
- JS学习笔记 - Try / Catch / Finally
<body> <p>请输入 5 和 10 之间的一个数:</p> <input id="demo" type="text&quo ...
- BZOJ1576: [Usaco2009 Jan]安全路经Travel(树链剖分)
Description Input * 第一行: 两个空格分开的数, N和M * 第2..M+1行: 三个空格分开的数a_i, b_i,和t_i Output * 第1..N-1行: 第i行包含一个数 ...