python教程(二)·数据类型
数据类型,顾名思义就是数据的类型,数据到底有哪些类型呢?在python中,最基本的数据类型有好几种,让我来逐个介绍。
整数类型(int)
python中只有一种整数类型,就是int类型,在程序中的写法和运算和数学一般相同,如123
、-456
等。除此之外,还可以用其它的表示方法:
- 前缀
0b
,是零和字母b
(大写B
也可以),表示这是一个二进制数,如0b110
- 前缀
0o
,是零和字母o
(大写O
也可以),表示这是一个八进制数,如0o10
- 前缀
0x
,是零和字母x
(大写X
也可以),表示这是一个十六进制数,如0x1a
要注意的是,无论是哪一种写法,整数在计算机中的存储形式都是一样的,都是一些0、1组合,不要以为十进制16
在程序中写成0x10
就不是同一个数了,有这么多种表示方式是为了方便人而不是计算机。
前面也接触到了,整数可以进行加减乘除等数学计算,如:
>>> 123+456
579
>>>
浮点数(float)
浮点数就是小数,如1.2
,1.3
等,浮点数的写法还可以是科学计数法,如1.23x104在程序中表示为1.23e4
或12.3e3
,1.2x10-3可以表示为1.2e-3
等,也就是说用字母e
(或E
)代替10。
由于整数和浮点数在计算机内部存储方式不同,整数运算是完全准确的,而浮点数的运算是有误差的,具体原因可以百度 “浮点数误差”
前面提到的//
运算符,其实是整数除法的运算符,整数和整数运算,结果还是整数,也就是说,10除以3结果应该是3而不是3.33……,这就是为什么我说整数运算是准确的。
而/
是浮点数的除法运算符,python是将整数类型自动地转化为浮点数再进行浮点数运算,最后的结果自然也是浮点数了。
字符串类型(str)
字符串是用一对单引号'
或一对双引号"
括起来的文本,如'123'
,"456"
。引号'
、"
只是用来表示字符串,不是字符串的一部分,如'123'
只是一串字符1
、2
、3
,如果字符串中包含单引号'
那么可以用双引号括起:"单引号(')"
,同理,若字符串中包含双引号,可以是用单引号来表示:'双引号(")'
。
如果字符串中即有单引号又有双引号呢?这时就需要用转义字符\
了,比如:
"这有一个单引号\',还有一个双引号\""
表示的字符串是:
这有一个单引号',还有一个双引号"
转义字符\
常用于表示一些无法用键盘打出来的字符,如换行符\n
,print()
默认在输出字符串后换行,就是自动加了换行符\n
,制表府\t
,而\\
表示字符\
本身。
用print()
打印些字符串试试:
>>> print("制表符\t制表符")
制表符 制表符
>>> print("换行符\n换行符")
换行符
换行符
>>> print("\\是转义字符")
\是转义字符
>>>
如果字符串中有很多字符需要转义,每一个都加上\
?这也太麻烦了,python还有一种更简单的表示方法,字符串引号前加一个前缀r
,表示raw字符串,raw是原生的意思,也就是说,你看到的是什么字符就是什么字符,即不转义。如:
>>> print(r"换行符为\n", r"转义符为\\", r"制表符为\t", r"引号为\'和\"")
换行符为\n 转义符为\\ 制表符为\t 引号为\'和\"
>>>
当然啦,如果你要换行,那么就不能写成r"\n"
了,因为r""
中的字符串是不转义的,如果有很多换行,还可以用这种形式,'''字符串'''
或"""字符串"""
:
>>> print('''
... 第一行
... 第二行
... 第三行
... ''')
第一行
第二行
第三行
>>>
其中的...
是交互式解释器输出的提示字符,不是字符串的一部分,这提示你这一条命令是多行的,还没完,后面的'''
闭合了前面的'''
,)
闭合了前面的(
,所以多行的命令结束,执行命令输出结果。在文件中表示为:
print('''
第一行
第二行
第三行
''')
r
前缀同样可以使用在'''多行的字符'''
。
注意了:前面涉及python语法的标点符号都是半角的,当你确信自己的代码和作者的一样却不能正常运行,那么就要看看是不是标点符号的问题了。
布尔型(bool)
布尔类型只有两种值:True
,False
,即“真”和“假”。比如1>2
是假的,所以为False
,4<5
是真的,所以为True
。示例代码如下:
>>> True
True
>>> False
False
>>> 1>2
False
>>> 4<5
True
>>>
还可以用and
、or
、not
进行逻辑运算,分别对应数学中的 “且”、“或”、“非”,代码如下:
>>> True and True
True
>>> True and False
False
>>> True or False
True
>>> not True
False
>>> not False
True
>>> 10>3 and 3>1
True
>>>
布尔值的常用于条件语句中,如:
if 10>3:
print("10大于3")
else:
print("10不大于3")
条件语句之后会单独讲解,不过聪明的读者应该能理解上面的代码的意思。
空值(None)
python中还有一种特殊的类型,叫做空类型,只有一个值,就是None
,表示什么都没有。暂时还没用到,用到再说。
其它类型
python中还有其它数据类型:列表(list)、元组(tuple)、字典(dict),还可以自定义类型,后面会提到,现在就到这。
你还可以用type()
获取数据的类型,如:
>>> type(123)
<class 'int'>
>>> type("abc")
<class 'str'>
>>> type(True)
<class 'bool'>
>>> type(None)
<class 'NoneType'>
>>>
上面的class
表明这是一个“类”,int
、str
、bool
、NoneType
都是“类”,解释这个暂时来说太早了,就当这是类型的名字,先忽略吧。
python教程(二)·数据类型的更多相关文章
- 学习廖雪峰的Python教程之数据类型
数据类型 计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值.但是,计算机能处理的远不止数值,还可以处理文本.图形.音频.视频.网页等各种各样的数据,不同的数据,需要定 ...
- python基础(二)----数据类型
Python基础第二章 二进制 字符编码 基本数据类型-数字 基本数据类型-字符串 基本数据类型-列表 基本数据类型-元组 可变.不可变数据类型和hash 基本数据类型-字典 基本数据类型-集合 二进 ...
- python 基础二-----数据类型和控制语句
一.数据类型: 1)数据类型 1.整数(int) 2.浮点数(float) 3.字符串(string) 4.列表(list) 5. 元组(tuple) 6.字典(dict): key和value是一一 ...
- 写给.NET开发者的Python教程(二):基本类型和变量
从本文开始,我们就要正式了解Python的语法特性了,这章主要介绍基本类型和变量,开始之前先介绍下Python中的标准输入输出. 标准输入输出 前文举过TwoSum问题的例子,但是没有讲到标准输入输出 ...
- 简明python教程二-----对象
物理行:是你在编写程序时所看见的. 逻辑行:是Python看见的单个语句. 默认的,python希望每行都只使用一个语句,这样使得代码更加易读. 如果你想要在一个物理行中使用多于一个逻辑行,用分号“: ...
- python基础之数据类型(二)
Python3 元组 Python 的元组与列表类似,不同之处在于元组的元素不能修改. 元组使用小括号,列表使用方括号. 元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可. 不可变的tupl ...
- Python教程(2.2)——数据类型与变量
和C/C++.Java一样,Python也有数据类型和变量两个概念. 数据类型 Python中的几个基本数据类型为整数(integer/int).浮点数(float/float).布尔值(boolea ...
- python教程(二)·第一个python程序
几乎所有的计算机语言教程,不仅仅是python,都以这样一个相似的示例程序开始讲解--Hello World! 代码如下,简简单单的一行.想必稍微了解英语的读者,都能猜到这段代码功能吧. print( ...
- PySide——Python图形化界面入门教程(二)
PySide——Python图形化界面入门教程(二) ——交互Widget和布局容器 ——Interactive Widgets and Layout Containers 翻译自:http://py ...
- Python开发的入门教程(一)-数据类型、变量
介绍 Python第一门课程,是Python开发的入门教程,将介绍Python语言的特点和适用范围,Python基本的数据类型,条件判断和循环,函数,以及Python特有的切片和列表生成式. Pyth ...
随机推荐
- 解决因 RsFX devicer 而无法卸载 SQL Server 的问题
到卸载 SQL Server 2008 R2 安装程序支持文件时,遇到了问题:“警告 26003.无法卸载 Microsoft SQL Server 2008 R2 安装程序支持文件,因为安装了以下产 ...
- 贴现率d与利率i
一.复利中的实际利率 it=(1+i)t -(1+i)t-1 / (1+i)t-1=i i 为常数, 而单利的实际利率递减 二.贴现 时间t的1元在时间零点的价值为贴现函数 记为 a-1(t) ...
- 【2D游戏引擎】WIP反思
WIP(Working In Progress)是我初学游戏引擎开发时候开发的一个2D游戏引擎,当时计划为它实现类似Unity一样的编辑器,具有和Unity相似的工作流,但是由于水平不够,走了很多弯路 ...
- 关于LDA的文章
转:http://www.zhizhihu.com/html/y2011/3228.html l Theory n Introduction u Unsupervised learning by ...
- JavaScript函数的声明与调用方式
入职第一天小记 对于初入前端的程序猿来说,对于函数的理解与使用可谓是相当浅薄的,回顾这自己近几年的工作以及学习经历,准备对JavaScript来个系统的总结. 如果要我们对H5中的表单做个简单的校验, ...
- call/apply
call与apply都可以改变this指向,但是传参列表不同. call 任何一种方法都可以.call,借用别人函数,自己用. call只需把实参按照形参的个数传进去,apply只能传一个argume ...
- VS 2013 代码注释掉,编译不执行问题
先说说我遇到的问题吧.修改别人的代码,注释原来的代码或者添加新的代码,都不执行,还是编译原来的代码.而且还有一个错误:lc.exe 已退出 代码为 -1 解决方法: 1.先把lc.exe 已退出 代码 ...
- 新一代的IT实验室长啥样?
这个时代 “互联网”江湖门派众多 “互联网+”现代农业.“互联网+”制造业. “互联网+”信息技术服务.“互联网+”文化创意服务. “互联网+”社会服务 各种“互联网+” 在不断的改变着我们的生活 这 ...
- 用@ExceptionHandler 来进行异常处理
有时候我们想统一处理一个Controller中抛出的异常怎么搞呢? 直接在Controller里面加上用@ExceptionHandler标注一个处理异常的方法像下面这样子 @ExceptionHan ...
- CPP-基础:临界区
VC windows api 多线程---临界区 临界区(Critical Section)是一段独占对某些共享资源访问的代码,在任意时刻只允许一个线程对共享资源进行访问.如果有多个线程试图同时访问临 ...