人生苦短,我选Python

引言

前文传送门

小白学 Python(1):开篇

接触一门新的语言,肯定要先了解它的基础数据类型。啥?你问我为啥要先了解基础数据类型?

为了你的生命安全,还是乖乖听我 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 上,方便大家取用。

示例代码-Github

示例代码-Gitee

小白学 Python(2):基础数据类型(上)的更多相关文章

  1. 小白学 Python(16):基础数据类型(函数)(上)

    人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...

  2. 小白学 Python(3):基础数据类型(下)

    人生苦短,我选Python 引言 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 前面我们介绍过了数字,本篇我们接着聊另一个常用的基础数据类型:字符串. ...

  3. 小白学 Python(5):基础运算符(上)

    人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...

  4. 小白学 Python(7):基础流程控制(上)

    人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...

  5. 小白学 Python(9):基础数据结构(列表)(上)

    人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...

  6. 小白学 Python(12):基础数据结构(字典)(上)

    人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...

  7. 小白学 Python(14):基础数据结构(集合)(上)

    人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...

  8. 小白学 Python(17):基础数据类型(函数)(下)

    人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...

  9. 小白学 Python(23):Excel 基础操作(上)

    人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...

随机推荐

  1. [币严区块链]数字货币交易所之比特币(BTC)钱包对接 | 自建节点JSON-RPC访问

    BTC钱包对接流程 一.   部署BTC钱包节点 二.   分析BTC钱包的API 三.   通过JSON-RPC访问BTC钱包API 四.   部署测试 一.部署钱包节点 交易平台对接BTC之前,要 ...

  2. <xsl:apply-templates>和<xsl:call-template>的区别

    <xsl:apply-templates> 应用模板,故名思意,将定义好的模板应用到 XML 的节点上.  可以调用 XML 文档的节点,使 XSL 文档可以渲染 XML 元素内的数据,  ...

  3. Android的消息循环与Handler机制理解

    一.概念 1.事件驱动型 什么是事件驱动?就是有事了才去处理,没事就躺着不动.假如把用户点击按钮,滑动页面等这些都看作事件,事件产生后程序就执行相应的处理方法,就是属于事件驱动型. 2.消息循环 把需 ...

  4. 记一次Mysql数据库Kill完之后启动不起来的解决方案

    在Mysql运行的时候,有时候会stop不了,这时候我们就会想直接把他的进程kill掉. 但是,有时候kill完了之后,在去start它就会直接抛异常了... ERROR! The server qu ...

  5. Linux ln 软、硬链接

    最近在学习Linux系统的,给我的感觉就是“智慧的结晶,智慧的大脑,智慧的操作” 今天研究到了一个有趣的命令  ln   我们先来看一下它的概念吧 Linux ln命令是一个非常重要命令,它的功能是为 ...

  6. PopupWindow弹出框

    使用PopupWindow实现一个悬浮框,悬浮在Activity之上,显示位置可以指定 首先创建pop_window.xml: <?xml version="1.0" enc ...

  7. STM32的RTC中断标志只能手动清除

    背景: 最近在做一个stm32的项目,其中用到RTC的实时时钟功能.时钟源采用外部32.768K晶振,时钟预分频设置为32767,目的是为了产生1秒的中断,然后在中断处理函数中更新实时年月日时分秒. ...

  8. pt-table-sync 配合pt-table-checksum 修复主从不一致

    pt-table-sync 配合pt-table-checksum 修复主从不一致. 先执行下面这条语句,打印出要执行的命令,确认无误后再将  --print  改为  --execute 执行.注意 ...

  9. SPSS基础学习方差分析—单因素分析

    为什么要进行方差分析? 单样本.两样本t检验其最终目的都是分析两组数据间是否存在显著性差异,但如果要分析多组数据间是否存在显著性差异就很困难,因此用方差分析解决这个问题:举例:t检验可以分析一个班男女 ...

  10. volatile 关键字的作用

    简介Java 语言提供了一种稍弱的同步机制,即 volatile 变量,用来确保将变量的更新操作通知到其他线程.volatile 变量具备两种特性:变量可见性.禁止重排序. 作为同步锁在访问 vola ...