Python
  • 为什么学Python?
  • Python代码规范
    • 简明概述
    • 注释
    • 命名规范
  • 第一个Python程序
    • Python 简介
    • Python 的安装
    • 第一个 Python 程序
    • 集成开发环境(IDE): PyCharm
  • 基本数据类型和变量
    • Python 语法的简要说明
    • print() 函数
    • Python 的基本数据类型
    • 字符串的编码问题
    • 基本数据类型转换
    • Python 中的变量
  • List 和 Tuple
    • List(列表)
    • tuple(元组)
  • Dict 和 Set
    • 字典(Dictionary)
    • set
  • 条件语句和循环语句
    • 条件语句
    • 循环语句
    • 条件语句和循环语句综合实例
  • 函数
    • Python 自定义函数的基本步骤
    • 函数返回值
    • 函数的参数
    • 函数传值问题
    • 匿名函数
  • 迭代器和生成器
    • 迭代
    • Python 迭代器
    • lsit 生成式(列表生成式)
    • 生成器
    • 迭代器和生成器综合例子
  • 面向对象
    • 面向对象的概念
    • 类的定义和调用
    • 类方法
    • 修改和增加类属性
    • 类和对象
    • 初始化函数
    • 类的继承
    • 类的多态
    • 类的访问控制
  • 模块与包
    • Python 模块简介
    • 模块的使用
    • 主模块和非主模块
    • 包
    • 作用域
  • Python 的 Magic Method
    • Python 的 Magic Method
    • 构造(__new__)和初始化(__init__)
    • 属性的访问控制
    • 对象的描述器
    • 自定义容器(Container)
    • 运算符相关的魔术方法
  • 枚举类
    • 枚举类的使用
    • Enum 的源码
    • 自定义类型的枚举
    • 枚举的比较
  • 元类
    • Python 中类也是对象
    • 使用 type() 动态创建类
    • 什么是元类
    • 自定义元类
    • 使用元类
  • 线程与进程
    • 线程与进程
    • 多线程编程
    • 进程
  • 一步一步了解正则表达式
    • 初识 Python 正则表达式
    • 字符集
    • 数量词
    • 边界匹配符和组
    • re.sub
    • re.match 和 re.search
  • 闭包
  • 装饰器
  • 知识点补漏
    • Python 关键字 yield
  • Python 进阶部分
  • 使用Python虚拟环境
  • Mac中使用virtualenv和virtualenvwrapper
  • Django
Powered by GitBook
On this page
  • 1、字符串
  • 2、整数
  • 3、浮点数
  • 4、布尔值
  • 5、空值
  1. 基本数据类型和变量

Python 的基本数据类型

Previousprint() 函数Next字符串的编码问题

Last updated 1 month ago

1、字符串

字符串英文 string ,是 python 中随处可见的数据类型,字符串的识别也非常的简单,就是用「引号」括起来的。

引号包括单引号 ' ' ,双引号 " " 和 三引号 ''' ''' ,比如 'abc' ,"123" 等等。

这里请注意,单引号 '' 或双引号 "" 本身只是一种表示方式,不是字符串的一部分,因此,字符串 'abc' 只有 a,b,c 这 3 个字符。

如果善于思考的你,一定会问?

为什么要有单引号 ' ' ,双引号 " " 和 三引号 ''' ''' 啊,直接定死一个不就好了,搞那么麻烦,那么多规则表达同一个东西干嘛?

对,一般来说一种语法只用一个规则来表示是最好的,竟然现在字符串有三种不同的表示,证明是有原因的。

那么我们先来看下这三种方式,来定义同样内容的字符串,再把它打印出来,看看是怎样的。

打印出来的结果是一样的。

那如果我们的字符串不是 两点水,是 两'点'水 这样呢?

这样就直接报错了。

但是要注意,用单引号 ' ' 不行,用双引号 " " 是可以的。

打印的结果也跟预想的一样:

至于三引号,也是一样的,如果字符串内容里面含有双引号,也是会报同样的错误的。那么这时候你就可以用三引号了。

那么用单引号,双引号定义的字符串就不能表示这样的内容吗?

并不是的,你可以使用转义字符。

比如单引号,你可以使用 \' 来表示,双引号可以使用 \" 来表示。

注意,这里的是反斜杠 \, 不是斜杆 / 。

了解了之后,直接程序测试一下:

运行结果如下:

最后,也提一下, 三引号 ''' ''' 是直接可以分行的。

运行结果:

2、整数

整数英文为 integer 。代码中的整数跟我们平常认识的整数一样,包括正整数、负整数和零,是没有小数点的数字。

Python 可以处理任意大小的整数,例如:1,100,-8080,0,等等。

运行结果:

当然,要注意了,如果数字你用引号括起来了,那就属于字符串,而不属于整数。比如 '100' , 这 100 是字符串,不是整数。

在现实世界中,整数我们通常会做计算,因此代码世界也是一样,整数可以直接加减乘除。

比如:

程序运行结果:

这里提示下大家,看看上面的例子,有没有发现什么?

看下 int4 打印出来的结果,是 0.5 , 是一个小数。

而我们上面对整数的定义是什么?

是没有小数点的数字。

因此 int4 肯定不是整数。

这里我们可以使用 type() 函数来查看下类型。

结果如下:

可以看到 int4 是 float 类型,而 int1 ,int2,int3 都是 int 整数类型。

那么 float 是什么类型呢?

float 是浮点数类型,是我们下面会说到的。

在说浮点数之前,各位可以看下 Python 的算术运算符有哪些,有个印象。

3、浮点数

浮点数的英文名是 float ,是指带小数的数字。

浮点数跟整数有很多类似的地方,但是浮点数是最折磨人的,也是最难让人捉摸透的。

就好比世界级的大佬 Herb Sutter 说的:「世上的人可以分为3类:一种是知道自己不懂浮点运算的;一种是以为自己懂浮点运算的;最后一种是极少的专家级人物,他们想知道自己是否有可能,最终完全理解浮点运算。」

为什么这么说呢?

看下面的例子 ,像整数一样,只是基本的浮点数加法运算。

可是运算结果,对于初学者来说,可能会接受不了。

对于第一个还好,0.55+0.41 等于 0.96 ,运算结果完全一致。可是后面两个,你会发现怎么出现了那么多个零。

这是因为计算机对浮点数的表达本身是不精确的。保存在计算机中的是二进制数,二进制对有些数字不能准确表达,只能非常接近这个数。

所以我们在对浮点数做运算和比较大小的时候要小心。

4、布尔值

布尔值和布尔代数的表示完全一致,一个布尔值只有 True 、 False 两种值,要么是 True,要么是 False,在 Python 中,可以直接用 True、False 表示布尔值(请注意大小写),也可以通过布尔运算计算出来。

布尔值可以用 and、or 和 not 运算。

and 运算是与运算,只有所有都为 True,and 运算结果才是 True。

or 运算是或运算,只要其中有一个为 True,or 运算结果就是 True。

not 运算是非运算,它是一个单目运算符,把 True 变成 False,False 变成 True。

5、空值

基本上每种编程语言都有自己的特殊值——空值,在 Python 中,用 None 来表示