本节介绍在Python语法中不同的变量数据类型。

    (1)基本数据类型:

>>> a=10;
>>> b=10.0;
>>> c=True;
>>> d="我在学习Python";
>>> print(a,b,c,d)
10 10.0 True 我在学习Python
>>> print("",type(a),"\n",type(b),"\n",type(c),"\n",type(d),"\n"); #内置函数type()可以查询变量的类型
<class 'int' at 0x58C569A8>
<class 'float' at 0x58C54AE0>
<class 'bool' at 0x58C4A0D8>
<class 'str' at 0x58C5CBB0>

Python 中的变量赋值不需要类型声明;Python 中的基本数据类型有整型、浮点型、布尔型、字符串型。

Python支持多个变量同时赋值:

>>> a=b=c=8j;
>>> print(a,b,c)
8j 8j 8j
>>> print(type(a));
<class 'complex' at 0x58C4E418>
>>> a,b,c=1/2,5.6/2.8,4>5;
>>> print("",type(a),"\n",type(b),"\n",type(c))
<class 'float' at 0x58C54AE0>
<class 'float' at 0x58C54AE0>
<class 'bool' at 0x58C4A0D8>

每个变量在内存中创建,都包括变量的标识,名称和数据这些信息。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。等号(=)用来给变量赋值。等号(=)运算符左边是一个变量名,等号(=)运算符右边是存储在变量中的值。

    (2)标准数据类型:

Python有五个标准的数据类型:
1.Numbers(数字)
2.String(字符串)
3.List(列表)
4.Tuple(元组)
5.Dictionary(字典)

1)Python数字:(数字数据类型用于存储数值)

>>> a=10;
>>> b=10.0;
>>> c=10j;
>>> print("",type(a),"\n",type(b),"\n",type(c));
<class 'int' at 0x58C569A8>
<class 'float' at 0x58C54AE0>
<class 'complex' at 0x58C4E418>
>>> d=1234567891011121314
>>> print(type(d))
<class 'int' at 0x58C569A8>

Python数字有三种类型整型、浮点型和复数类型。整型是不需要限制位数的。

可以用complex构造复数:

>>> c=complex(4,6)
>>> print(c)
(4+6j)
>>> d=4+6j
>>> print(d)
(4+6j)

用del回收变量:

>>> a=10
>>> a
10
>>> del a
>>> a
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'a' is not defined

2)字符串:(字符串或串(String)是由数字、字母、下划线组成的一串字符。)

它是编程语言中表示文本的数据类型。

python的字串列表有2种取值顺序:

  1.从左到右索引默认0开始的,最大范围是字符串长度少1;

  2.从右到左索引默认-1开始的,最大范围是字符串开头。

>>> a="I love Python!"
>>> a[2:6]
'love'
>>> a[5:1:-1]
'evol'
>>> print(a+" Hello World!") //输出拼接的字符串
I love Python! Hello World!
>>> print(a*2) //输出两次字符串
I love Python!I love Python!
>>> print(a[13:0:-1])
!nohtyP evol_ // _代表空格

上述的方法是不能直接实现倒序输出字符串的,下面是一种方法:

sunjimeng@SJM:~/文档$ cat text.py
a="上海自来水来自海上";
print(a[8:0:-1]);
for i in range(9):
print(a[8-i]);
sunjimeng@SJM:~/文档$ python3.5 text.py
上海自来水来自海








3)列表:(列表可以完成大多数集合类的数据结构实现。它支持字符,数字,字符串甚至可以包含列表(所谓嵌套)。)

列表用[ ]标识。是python最通用的复合数据类型。

列表中的值得分割也可以用到变量[头下标:尾下标],就可以截取相应的列表,从左到右索引默认0开始的,从右到左索引默认-1开始,下标可以为空表示取到头或尾。

加号(+)是列表连接运算符,星号(*)是重复操作。

sunjimeng@SJM:~/文档$ python3.5
Python 3.5.2 (default, Jul 17 2016, 11:52:15)
[GCC 4.8.4] on linux
Type "help", "copyright", "credits" or "license" for more information.>>> normal_list=['字符串',123,4+8j,['列表里的列表',4/2]]
>>> tiny_list=['你好',122]
>>> print(normal_list) //1.输出完整的列表
['字符串', 123, (4+8j), ['列表', 2.0]]
>>> print(normal_list[3]) //2.输出指定的列表元素
['列表', 2.0]
>>> print(tiny_list*2) //3.输出两次指定结果
['你好', 122, '你好', 122]

4)元组(元组是另一个类似于List的数据类型)

元组用"()"标识。内部元素用逗号隔开。但是元组不能二次赋值,相当于只读列表。

>>> tuple=('静态列表',122,True)
>>> tiny_tuple=(4j,('你好',True),122)
>>> print(tiny_tuple[2])
122
>>> print(tuple)
('静态列表', 122, True)

元组与列表的对比:

>>> list=['字符串',122,5j]
>>> tuple=('你好',234,5/4)
>>> list
['字符串', 122, 5j]
>>> tuple
('你好', 234, 1.25)
>>> list[1]='xg'
>>> list
['字符串', 'xg', 5j]
>>> tuple[1]=True
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment

list允许修改其中的元素,tuple不允许修改元素。list和tuple都相当于一个引用,他们是可以引用新的列表或元组的:

>>> print(tuple)
('静态列表', 122, True)
>>> list
['abcd', 786, 2.23, 'john', 70.2]
>>> list=["修改后的列表"]
>>> tuple=('修改后的元组',123)
>>> tuple
('修改后组', 123)

5)sequence 序列

sequence(序列)是一组有顺序的元素的集合 (严格的说,是对象的集合,但鉴于我们还没有引入“对象”概念,暂时说元素) 。

序列可以包含一个或多个元素,也可以没有任何元素。我们之前所说的基本数据类型,都可以作为序列的元素。元素还可以是另一个序列,以及我们以后要介绍的其他对象。

序列有两种:tuple(定值表; 也有翻译为元组)和list (表)。

6)元字典(除序列以外的最灵活的数据结构)

列表是有序的对象结合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。

字典用"{}"标识。字典由索引(key)和它对应的值value组成:(键值对)

>>> sjm = {}
>>> sjm['age'] = 122
>>> sjm['name']='sunjimeng'
>>> sjm['ch_name']='孙继锰' //注意用单引号
>>> print(sjm)
{'age': 122, 'name': 'sunjimeng', 'ch_name': '孙继锰'}
>>> hhj={'name':'ningcaichen','age':18}
>>> hhj
{'age': 18, 'name': 'ningcaichen'}

    (3)数据类型转换:

有时候,我们需要对数据内置的类型进行转换,数据类型的转换,你只需要将数据类型作为函数名即可。

以下几个内置的函数可以执行数据类型之间的转换。这些函数返回一个新的对象,表示转换的值。

这些是老版本的Python里的类型转换函数,可能有些是不能用的。

最新文章

  1. XFire最佳实践
  2. WIN32 API编程之 tap顺序
  3. Unable to create SVNRepository object
  4. Spring AOP使用整理:使用@AspectJ风格的切面声明
  5. C# Winform 文件编码批量转换工具
  6. SSL/TLS/WTLS原理(密钥协商的形象化比喻:验证服务器的身份,用服务器的公钥协商加密格式,然后再加密具体的消息,TCP传递SSL处理后的数据)good
  7. Find your present (2) (位异或)
  8. C# string.Format谨慎使用
  9. php中的时区设置
  10. 模板页 相对路径 JS 加载问题
  11. Erp第一章:初感
  12. Android RxJava使用介绍(三) RxJava的操作符
  13. 数据结构——求单向链表的倒数第K个节点
  14. 开始Java学习(Java之负基础实战)
  15. 给查询出的SQL记录添加序号列,解决方法有以下两种
  16. 【视频】使用fiddler开发工具进行新架构页面本地调试
  17. 二分图学习——基础dfs判断二分图
  18. 女神画廊App (Swift1.2)
  19. [kx]宇宙-银河
  20. 资产管理系统 CMDB 讲解

热门文章

  1. imx6 uboot启动流程分析
  2. IOS设计模式的六大设计原则之单一职责原则(SRP,Single Responsibility Principle)
  3. NERDTree 快捷件
  4. 什么时候触发MinorGC?什么时候触发FullGC?
  5. php 遍历静态html成文章列表
  6. POJ 3480 &amp;amp; HDU 1907 John(尼姆博弈变形)
  7. Laravel5.1 -控制器(初步了解)
  8. 带参数的main函数
  9. 编写自己的cp命令
  10. 《从零开始学Swift》学习笔记(Day 13)——数据类型之整型和浮点型