Python3简明教程(二)—— 变量和数据类型
关键字和标识符
下列的标识符是Python3的关键字,并且不能用于通常的标识符。关键字必须严格按照下面的拼写:
False def if raise
None del import return
True elif in try
and else is while
as except lambda with
assert finally nonlocal yield
break for not
class from or
continue global pass
这些内容可以在Python3解释器中得到:

变量
在Python中我们不需要为变量指定数据类型,每个变量使用前必须赋值,变量赋值以后该变量才会被创建(即在内存中分配空间)。所以你可以直接写 abc = 1,这样变量abc就是整数类型。如果你写 abc = 1.0,那么变量abc就是浮点类型。
>>> a = 13
>>> b = 23
>>> a + b
36
通过上面的例子你应该理解了如何在Python中定义变量,也就是只需输入变量名和值就行了。
单行定义多个变量或赋值
你甚至可以在一行内将多个值赋值给多个变量。例如:
>>> a , b = 45, 54
>>> a
45
>>> b
54
这个技巧用来交换两个数的值非常方便:
>>> a, b = b , a
>>> a
54
>>> b
45
要明白这是怎么工作的,你需要学习元组(tuple)这个数据类型。我们是用逗号创建元组。在赋值语句的右边我们创建了一个元组,我们称这为元组封装(tuple packing),赋值语句的左边我们称作元组拆封(tuple unpacking)。
下面是另一个元组拆封的例子:
>>> data = ("shiyanlou", "China", "Python")
>>> name, country, language = data
>>> name
'shiyanlou'
>>> country
'China'
>>> language
'Python'
标准数据类型
Python3中有6个标准的数据类型:
- Number(数字)
 - String(字符串)
 - List(列表)
 - Tuple(元组)
 - Set(集合)
 - Dictionary(字典)
 
其中:
- 不可变数据(3个):Number、String、Tuple
 - 可变数据(3个):List、Set、Dictionary
 
Number
Python3支持int、float、bool、complex。
在Python3中只有一种数据类型int,表示为长整型,没有Python2中的Long。
内置的type()函数可以用来查询变量所指的对象类型。例如:
>>> a, b, c, d = 20, 5.5, True, 4+3j
>>> print(type(a), type(b), type(c), type(d))
<class 'int'> <class 'float'> <class 'bool'> <class 'complex'>
String
Python中的字符串用单引号或者双引号括起来,同时使用反斜杠转移特殊字符。
字符串的截取
字符串的截取语法格式:
变量[头下标:尾下标]
返回值是左闭右开,索引值从0开始,-1为末尾的位置:

字符串格式化
#!/usr/bin/env python3
amount = float(input("Enter amount: ")) # 输入数额
inrate = float(input("Enter Interest rate: ")) # 输入利率
period = int(input("Enter period: ")) # 输入期限
value = 0
year = 1
while year <= period:
value = amount + (inrate * amount)
print("Year {} Rs. {:.2f}".format(year, value))
amount = value
year = year + 1
Year {} Rs. {:.2f}".format(year, value) 称为字符串格式化,大括号和其中的字符会被替换成传入 str.format() 的参数,也即year和value。其中, {:.2f} 的意思是替换为两位精度的浮点数。
又例如,在下面的程序里,我们使用公式 C = (F - 32) / 1.8 将华氏温度转为摄氏温度。
#!/usr/bin/env python3
fahrenheit = 0
print("Fahrenheit Celsius")
while fahrenheit <= 250:
celsius = (fahrenheit - 32) / 1.8 # 转换为摄氏度
print("{:5d} {:7.2f}".format(fahrenheit , celsius))
fahrenheit = fahrenheit + 25
{:5d} 的意思是替换为 5 个字符宽度的整数,宽度不足则使用空格填充。 {:7.2f}的意思是替换为为7个字符宽度的保留两位的小数,小数点也算一个宽度,宽度不足则使用空格填充。其中7指宽度为7,.2f 指保留两位小数。
List
List(列表)是Python中使用最频繁的数据类型。列表是写在方括号 [] 之间、用逗号分隔开的元素列表。
列表中元素的类型可以不相同,它支持数字,字符串甚至可以包含列表(所谓嵌套)。
列表的截取
和字符串一样,列表同样可以被索引和截取(也叫切片),列表被截取后返回一个包含所需元素的新列表,且索引的规则相同。例如:

列表的运算
加号 + 是列表连接运算符,星号 * 是重复操作。如下实例:
>>> a = 'abc'
>>> a * 2
'abcabc'
>>> a + 'def'
'abcdef'
>>>
Tuple
元组(tuple)与列表类似,不同之处在于元组的元素不能修改。元组写在小括号 () 里,元素之间用逗号隔开。 元组中的元素类型也可以不相同。
索引、截取和运算都与字符串和列表相同。其实,可以把字符串看作一种特殊的元组。
Set
集合(set)是由一个或数个形态各异的大小整体组成的,构成集合的事物或对象称作元素或是成员。基本功能是进行成员关系测试和删除重复元素。
可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
集合的创建与运算
 #!/usr/bin/python3
 student = {'Tom', 'Jim', 'Mary', 'Tom', 'Jack', 'Rose'}
 print(student)   # 输出集合,重复的元素被自动去掉
 # 成员测试
 if 'Rose' in student :
     print('Rose 在集合中')
 else :
     print('Rose 不在集合中')
 # set可以进行集合运算
 a = set('abracadabra')
 b = set('alacazam')
 print(a)
 print(a - b)     # a 和 b 的差集
 print(a | b)     # a 和 b 的并集
 print(a & b)     # a 和 b 的交集
 print(a ^ b)     # a 和 b 中不同时存在的元素
输出结果:
{'Rose', 'Jim', 'Jack', 'Tom', 'Mary'}
Rose 在集合中
{'r', 'd', 'c', 'a', 'b'}
{'r', 'd', 'b'}
{'r', 'd', 'a', 'z', 'c', 'm', 'l', 'b'}
{'a', 'c'}
{'r', 'd', 'z', 'm', 'l', 'b'}
Dictionary
字典(dictionary)是Python中另一个非常有用的内置数据类型。字典是一种映射类型,字典用 { } 标识,它是一个无序的 键(key) : 值(value) 的集合。
键(key)必须使用不可变类型。在同一个字典中,键(key)必须是唯一的。
字典与列表有相似之处,列表是有序的对象集合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移(索引)存取。
参考链接:
1、https://www.shiyanlou.com/courses/596
2、http://www.runoob.com/python3/python3-data-type.html
Python3简明教程(二)—— 变量和数据类型的更多相关文章
- redis学习教程二《四大数据类型》
		
redis学习教程二<四大数据类型> 四大数据类型包括:字符串 哈希 列表 集合一 : Redis字符串 Redis字符串命令用于管理Redis中的字符串 ...
 - Python3 简明教程学习(上)
		
一.开始 Python 之旅交互模式 1.Ctrl + D 输入一个 EOF 字符来退出解释器,也可以键入 exit() 来退出 2.#!/usr/bin/env python3 中#!称为 Sheb ...
 - Python3简明教程(六)—— 数据结构
		
简单的来说,数据结构(data structure)是计算机中存储.组织数据的方式.比如我们之前使用过的列表就是一种数据结构,在这里我们还会深入学习它.之前也有简单的介绍. 列表 >>&g ...
 - Python3简明教程(十二)——  模块
		
在这节我们将要学习 Python 模块相关知识.包括模块的概念和导入方法,包的概念和使用,第三方模块的介绍,命令行参数的使用等. 模块 到目前为止,我们在 Python 解释器中写的所有代码都在我们退 ...
 - Python3 简明教程
		
Python是由吉多·范罗苏姆(Guido Van Rossum)在90年代早期设计.它是如今最常用的编程 语言之一.它的语法简洁且优美,几乎就是可执行的伪代码. 注意:这篇教程是特别为Python3 ...
 - Python3简明教程(十四)——  Collections模块
		
collections 是 Python 内建的一个集合模块,提供了许多有用的集合类. 在这个实验我们会学习 Collections 模块.这个模块实现了一些很好的数据结构,它们能帮助你解决各种实际问 ...
 - Python3基础(二) 基本数据类型
		
Python中的变量不需要声明.每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建.在Python中,变量就是变量,它没有类型,我们所说的"类型"是变量所指的内存中对象的类型 ...
 - 实验楼-python3简明教程笔记
		
#!/usr/bin/env python3 days = int(input("Enter days: ")) print("Months = {} Days = {} ...
 - Python3简明教程(十一)——  类
		
本节中将通过定义一些简单的 Python 类,来学习 Python 面向对象编程的基本概念. 定义类 在写你的第一个类之前,你应该知道它的语法.我们以下面这种方式定义类: class nameofth ...
 
随机推荐
- 「网络流24题」「LuoguP4014」 分配问题
			
Description 有 n 件工作要分配给 n 个人做.第 i 个人做第 j 件工作产生的效益为 cij.试设计一个将 n 件工作分配给 n 个人做的分配方案,使产生的总效益最大. Input 文 ...
 - 哈希表的C实现(三)---传说中的暴雪版
			
关于哈希表C实现,写了两篇学习笔记,不过似乎网上流传最具传奇色彩的莫过于暴雪公司的魔兽文件打包管理器里的hashTable的实现了:在冲突方面的处理方面,采用线性探测再散列.在添加和查找过程中进行了三 ...
 - IOCP编程小结(中)
			
上一篇主要谈了一些基本理念,本篇将谈谈我个人总结的一些IOCP编程技巧. 网络游戏前端服务器的需求和设计 首先介绍一下这个服务器的技术背景.在分布式网络游戏服务器中,前端连接服务器是一种很常见的设计. ...
 - 从MyEclipse到IntelliJ IDEA
			
如何做到全键盘操作呢? 1.自定义快捷键实现全屏操作 你可以设置自定义快捷键进入全屏操作,并实现各个窗口之间的切换.这样,你就可以告别小窗口的时代,体验全屏显示的效果了!(相信有过多年开发经验的你一定 ...
 - Codeforces - 9D - How many trees? - 简单dp - 组合数学
			
https://codeforces.com/problemset/problem/9/D 一开始居然还想直接找公式的,想了想还是放弃了.原来这种结构是要动态规划. 状态是知道怎么设了,$t_{nh} ...
 - HDU4467:Graph(点的度数分块)
			
传送门 题意 给出一张n个点m条边的无向图,点的颜色为0/1,每次有两种操作: 1.Asksum x y,查询两点颜色为x和y的边的权值之和 2.Change x,将x颜色取反 分析 最直接的做法是每 ...
 - LuoguP2700逐个击破【并查集/生成树/正难则反】By cellur925
			
题目传送门 题目大意:给你一棵树,求把其中k个点相互隔离(不连通)所需要的边权代价. 这题我开始是想要求出把k个点联通的最小代价的,但后来发现还是实现起来比较困难,题解里貌似也没有这种做法,于是就鸽了 ...
 - Windows下DVWA安装指南
			
注意:DVWA需要依赖httpd.PHP.MySQL.php-mysql等应用或组件,最简单的方法是安装wampserver(http://www.wampserver.com/),安装完了所需的各种 ...
 - C51之数据范围
			
在C51中各数据类型的范围如下:如果宏常量大于65536,则要加UL后缀:乘法运算不能只将结果强制类型转换,而应在被乘数前加(unsigned long)强制转换. 2 因为RAM有限,所以运算量大的 ...
 - pyton 基础,运算符及字符类型。
			
一.python运算符: 二.数据类型: 1.数字: int :整型 32位机器上一个整数取值范围为-2**31~2**31-1即-2147483648~2147483647 64位机器上一个整数取 ...