Python 简明教程 --- 4,Python 变量与基本数据类型
微信公众号:码农充电站pro
个人主页:https://codeshellme.github.io
任何一个人都会写出能够让机器理解的代码,只有好的程序员才能写出人类可以理解的代码。
—— Martin Fowler
1,什么是变量
计算机的本质是处理数据,数据可以存储在内存和磁盘,只有加载到内存的数据才能被处理。
变量用于代指某块内存数据,比如数字123,字符串abc,如下:
n = 123
s = 'abc'
这里的n 和 s 就是变量。
Python 是动态类型语言,所以,Python 中的变量没有类型之分,同一个变量即可以指向字符串,也可以指向数字,如下:
i = 123 # 此时 i 的值是 123
i = 'abc' # 此时 i 的值是 'abc'
变量命名规则
一个变量名就是一个标识符,所以变量名的命令规则与标识符的命名规则相同(可参见这里)。
2,赋值运算
每个变量在使用之前都必须被赋值,赋值运算符是等号=,比如:
i = 123
等号= 左边是变量名,右边是赋予该变量的值。
这句代码就是一个赋值运算,其执行结果是,为变量i 赋予了值123。
多个变量赋值
可以同时为多个变量赋予同一个值:
x = y = z = 'abc'
上面这句话的执行结果是,变量x,y,z 值都是abc。
这句话的执行顺序是从右到左,即先为z 赋予值 abc,再为y 赋予z 的值,再为x 赋予y 的值。
也可以同时为多个变量赋予不同的值:
x, y, z = 1, 'a', 'b'
上面这句话的执行结果是,分别为变量x,y,z 赋予了值1,a,b。
3,关键字type
在Python 中,关键字type 实际上是一个类,可以在交互式终端,使用help(type) 查看,如下:

我们可以使用type 来查看一个变量 的类型,如下:
>>> type(123)
<class 'int'>
>>>
>>> type('abc')
<class 'str'>
注意:更确切的说,
type应该是查看一个对象的类型,后面的章节会介绍对象的概念。
变量可以表示不同的数据类型的值,下面介绍Python 中的基本数据类型。
4,字符串
Python 中的字符串是用引号引住的,引号可以是单引号',双引号",三单引号'''和三双引号""",如下:
# 变量 s 的值是字符串`abc`
s = 'abc'
s = "abc"
s = '''abc'''
s = """abc"""
单引号中的值可以有双引号,如下变量 s 的值为I say "hello":
>>> s = 'I say "hello"'
>>> print(s)
I say "hello"
双引号中的值可以有单引号,如下变量 s 的值为I'm Ok:
>>> s = "I'm Ok"
>>> print(s)
I'm Ok
三引号'''和""" 一般用于多行字符串,三引号中的值可以包含单引号和双引号:
s = '''这是第一行,
这是第二行,
这是第三行'''
s = """这是第一行,
这是第二行,
这是第三行"""
s = '''字符串中有单引号'
也有双引号"
'''
转义字符\
如果单引号中想有单引号,需要用到转义字符\:
>>> s = 'I\'m ok'
>>> print(s)
I'm ok
同样双引号中想有双引号,也需要用到转义字符\:
>>> s = "I say \"hello\""
>>> print(s)
I say "hello"
如果想表示原始的斜杠\,需要用两个斜杠\:
>>> s = '这是斜杠\\' # 第一个斜杠代表转义
>>> print(s)
这是斜杠\
原始字符串
在单引号或双引号前边加上r 或R,表示原始字符串(raw string),你写的是什么,就是什么,不需要转义:
>>> s = r'\r\n\t'
>>> print(s)
\r\n\t
5,数字类型
Python3 中支持三种数字类型,包括:
- 整数
int - 浮点数
float - 复数
complex
注意:
python2.x 中有long类型,
python3.x 将long归属到了int中,
python3.x 中不再有long类型。
整数
Python3 中支持任意大小的整数,包括正整数和负整数,如下:
>>> a = 123
>>> b = -456
>>> c = 99999999999999999999
>>> type(a), type(b), type(c)
(<class 'int'>, <class 'int'>, <class 'int'>)
浮点数
浮点数即是小数,也包括正数和负数。
当小数的位数大于等于5 时,Python 就会用科学计数法来表示:
>>> 0.001
0.001
>>> -0.001
-0.001
>>> 0.00001
1e-05 # 科学计数法
>>> type(0.001), type(-0.001), type(0.00001)
(<class 'float'>, <class 'float'>, <class 'float'>)
复数
复数由实数部分和虚数部分构成。
在Python 中可以用a + bj或者complex(a, b) 来表示复数,a 为实部,b为虚部,a 和 b 都是浮点数。
例如:
>>> n = -5+4j
>>> n
(-5+4j)
>>> complex(-5, 4)
(-5+4j)
>>> type(n)
<class 'complex'>
6,布尔值
布尔值只有两个,分别是:
True:代表真False:代表假
>>> type(True), type(False)
(<class 'bool'>, <class 'bool'>)
布尔值经常用在条件判断中,例如:
if flag:
print('flag is True')
else:
print('flag is False')
7,空值
Python 中的空值是一个特殊值,只有一个None 值,它的类型是NoneType:
>>> type(None)
<class 'NoneType'>
空值经常用在变量初始化和函数返回值中。
8,关键字del
一个变量被赋值以后,就是已定义的,可以被使用。
del 用于删除一个变量,被删除的变量是未定义的,将不能再被使用,其内存也会被释放。如下:
>>> a = 1
>>> print(a)
1
>>> del a
>>> print(a)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'a' is not defined # a 是未定义的
(完。)
推荐阅读:
Python 简明教程 — 0,前言
Python 简明教程 — 1,搭建Python 环境
Python 简明教程 — 2,第一个Python 程序
Python 简明教程 — 3,Python 基础概念
欢迎关注作者公众号,获取更多技术干货。

Python 简明教程 --- 4,Python 变量与基本数据类型的更多相关文章
- python中global的用法——再读python简明教程
今天看了知乎@萧井陌的编程入门指南,想重温一下 <python简明教程>,对global的用法一直不太熟练,在此熟练一下,并实践一下python中list.tuple.set作为参数的区别 ...
- python简明教程
Python简明教程 MachinePlay关注 0.7072018.09.26 01:49:43字数 2,805阅读 9,287 Python一小时快速入门 1.Python简介 pylogo. ...
- Python 简明教程 --- 3,Python 基础概念
微信公众号:码农充电站pro 个人主页:https://codeshellme.github.io 控制复杂性是计算机编程的本质. -- Brian Kernighan 了解了如何编写第一个Pytho ...
- Python 简明教程 --- 1,搭建Python 环境
微信公众号:码农充电站pro 个人主页:https://codeshellme.github.io 人生苦短,我用Python. -- 龟叔T恤 Python 是一门解释型语言,所以要想运行Pytho ...
- Python 简明教程 --- 14,Python 数据结构进阶
微信公众号:码农充电站pro 个人主页:https://codeshellme.github.io 如果你发现特殊情况太多,那很可能是用错算法了. -- Carig Zerouni 目录 前几节我们介 ...
- Python 简明教程 --- 15,Python 函数
微信公众号:码农充电站pro 个人主页:https://codeshellme.github.io 测试只能证明程序有错误,而不能证明程序没有错误. -- Edsger Dijkstra 目录 本节我 ...
- Python 简明教程 --- 17,Python 模块与包
微信公众号:码农充电站pro 个人主页:https://codeshellme.github.io 正确的判断来源于经验,然而经验来源于错误的判断. -- Fred Brooks 目录 我们已经知道函 ...
- Python 简明教程 --- 8,Python 字符串函数
微信公众号:码农充电站pro 个人主页:https://codeshellme.github.io 好代码本身就是最好的文档.当你需要添加一个注释时,你应该考虑如何修改代码才能不需要注释. -- St ...
- Python 简明教程 --- 9,Python 编码
微信公众号:码农充电站pro 个人主页:https://codeshellme.github.io 当你选择了一种语言,意味着你还选择了一组技术.一个社区. -- Joshua Bloch 目录 1, ...
随机推荐
- php序列化和反序列化学习
1.什么是序列化 序列化说通俗点就是把一个对象变成可以传输的字符串. 1.举个例子,不知道大家知不知道json格式,这就是一种序列化,有可能就是通过array序列化而来的.而反序列化就是把那串可以传输 ...
- Rocket - tilelink - RegionReplicator
https://mp.weixin.qq.com/s/XZVCdt50tM6lavchGm9GRg 简单介绍RegionReplicator的实现. 1. 基本介绍 根据mask ...
- SpringBoot 及其 基本原理(一)
个人博客网:https://wushaopei.github.io/ (你想要这里多有) 前言: 分布式架构及微服务理念 1.SOA理念(思想) SOA :即 Service Oriented ...
- Java实现蓝桥杯历届试题买不到的数目
历届试题 买不到的数目 时间限制:1.0s 内存限制:256.0MB 提交此题 锦囊1 锦囊2 问题描述 小明开了一家糖果店.他别出心裁:把水果糖包成4颗一包和7颗一包的两种.糖果不能拆包卖. 小朋友 ...
- Java实现 LeetCode 658 找到 K 个最接近的元素(暴力)
658. 找到 K 个最接近的元素 给定一个排序好的数组,两个整数 k 和 x,从数组中找到最靠近 x(两数之差最小)的 k 个数.返回的结果必须要是按升序排好的.如果有两个数与 x 的差值一样,优先 ...
- Java实现 LeetCode 120 三角形最小路径和
120. 三角形最小路径和 给定一个三角形,找出自顶向下的最小路径和.每一步只能移动到下一行中相邻的结点上. 例如,给定三角形: [ [2], [3,4], [6,5,7], [4,1,8,3] ] ...
- java实现黄金队列
** 黄金队列** 黄金分割数0.618与美学有重要的关系.舞台上报幕员所站的位置大约就是舞台宽度的0.618处,墙上的画像一般也挂在房间高度的0.618处,甚至股票的波动据说也能找到0.618的影子 ...
- java实现第八届蓝桥杯树型显示
树型显示 题目描述 对于分类结构可以用树形来形象地表示.比如:文件系统就是典型的例子. 树中的结点具有父子关系.我们在显示的时候,把子项向右缩进(用空格,不是tab),并添加必要的连接线,以使其层次关 ...
- java实现第四届蓝桥杯阶乘位数
阶乘位数 题目描述 如图p1.jpg所示,3 x 3 的格子中填写了一些整数. 我们沿着图中的红色线剪开,得到两个部分,每个部分的数字和都是60. 本题的要求就是请你编程判定:对给定的m x n 的格 ...
- Linux 用户组管理命令
groupadd 组名,可以添加用户组 groupmod -n 新组名 老组名,可以修改组名 groupdel 组名,可以删除组(组中不能有初始用户存在,附加用户无所谓) gpasswd -a 用户名 ...