Python 变量和数据类型
变量的定义与赋值
Python 是动态语言,我们不需要为变量指定数据类型,只需要输入变量名和值就行了。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。
此外 Python 允许你同时为多个变量赋值。例如:
a = b = c = 1
以上实例,创建一个整型对象,值为1,三个变量被分配到相同的内存空间上。
你甚至可以在一行内将多个值赋值给多个变量,这个技巧用来交换两个数的值非常方便。
>>> a, b = b , a
>>> a
54
>>> b
45
这涉及到元组的知识,在赋值语句的右边我们创建了一个元组,我们称这为元组封装(tuple packing),赋值语句的左边我们则做的是元组拆封 (tuple unpacking)。
标准数据类型
Python3 中有六个标准的数据类型:
Number(数字)
- Python3 支持 int、float、bool、complex(复数)。在Python3 里,只有一种整数类型 int,表示为长整型,没有 python2 中的 Long。
- isinstance() 和 type() 函数可以用来判断变量所指的对象类型,不同的是:type()不会认为子类是一种父类类型,而isinstance()则会认为子类是一种父类类型。
# a为int类型则返回true
isinstance(a, int)
# 打印a的数据类型
print (type(a))
String(字符串)
- Python 中字符串用单引号或双引号括起来,使用反斜杠
\
转义特殊字符。使用三引号('''
或"""
)可以指定一个多行字符串,反斜杠\
也可以作为续行符(转义换行符,也适用于表达式和语句)。 - 在交互式解释器中,输出的字符串会用引号引起来,特殊字符会用反斜杠转义。如果字符串中只有单引号而没有双引号,就用双引号引用,否则用单引号引用。print() 函数生成可读性更好的输出, 它会省去引号并且打印出转义后的特殊字符。
- 如果你前面带有
\
的字符被当作特殊字符,你可以使用原始字符串,方法是在第一个引号前面加上一个r
。>>> print(r'C:\some\name') # note the r before the quote
C:\some\name
但是原始字符串不能以反斜杠
\
结尾,最后的引号会被转义(bug?),让解释器不清楚是否应该结束该字符串。一个简单的解决办法是把反斜杠单独出来,写成r"str" "\\"
。- 支持索引,索引获得单个字符。字符串的第一个字符索引为 0 ,不过索引也可以是负数,这将导致从右边开始计算,-1 表示最后一个字符,-2 表示倒数第二个这样。
- 支持切片,切片获得一个子字符串。切片包含起始的字符,不包含末尾的字符。这使得
s[:i] + s[i:]
永远等于s
。切片的索引有非常有用的默认值,省略的第一个索引默认为零,省略的第二个索引默认为切片的字符串的大小。Python 能够优雅地处理那些没有意义的切片索引:一个过大的索引值(即下标值大于字符串实际长度)将被字符串实际长度所代替,当上边界比下边界大时(即切片左值大于右值)就返回空字符串。 - 内置函数
len(String str)
将会返回字符串的长度。 - 字符串可以由
+
操作符连接(粘到一起),可以由*
表示重复。 - 注意,Python 没有单独的字符类型,一个字符就是长度为1的字符串。
- 与 C 字符串不同的是,Python 字符串不能被改变。向一个索引位置赋值,比如word[0] = 'm'会导致错误。
- Python 中字符串用单引号或双引号括起来,使用反斜杠
List(列表)
- 列表是写在方括号
[]
之间、用逗号分隔开的元素列表,支持+
连接。 - 列表可以完成大多数集合类的数据结构实现。列表中元素的类型可以不相同,它支持数字,字符串甚至可以包含列表(所谓嵌套)。
- 和字符串一样,列表同样可以被索引和切片,列表被截取后返回一个包含所需元素的新列表(浅拷贝)。
- 与Python字符串不一样的是,列表中的元素是可以改变的,允许对索引和切片赋值。
- 对切片赋值会改变原列表的值或尺寸,但严格上来说这不是切片操作,只是形式一样而已。
- 列表是写在方括号
Tuple(元组)
- 元组(tuple)与列表类似,不同之处在于元组的元素不能修改。元组写在小括号
()
里,元素之间用逗号隔开。 - 虽然tuple的元素不可改变,但它可以包含可变的对象,比如list列表。
- 构造包含 0 个或 1 个元素的元组比较特殊,所以有一些额外的语法规则:
tup1 = () # 空元组
tup2 = (20,) # 一个元素,需要在元素后添加逗号
- string、list和tuple都属于sequence(序列)。
- 元组(tuple)与列表类似,不同之处在于元组的元素不能修改。元组写在小括号
Sets(集合)
- 集合(set)是一个无序不重复元素的序列。
- 基本功能是进行成员关系测试和删除重复元素。
- 可以使用大括号
{ }
或者set()
函数创建集合,注意:创建一个空集合必须用set()
而不是{ }
,因为{ }
是用来创建一个空字典。
Dictionary(字典)
- 列表是有序的对象结合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。
- 字典是一种映射类型,字典用
{ }
标识,它是一个无序的键(key) : 值(value)对集合。 - 键(key)必须使用不可变类型,而且在同一个字典中,键(key)必须是唯一的。
类型转换
Python 是强类型语言,所以必要的时候需要手动进行类型转换。
类型转换函数 | 转换路径 |
---|---|
float(string) | 字符串 -> 浮点值 |
int(string) | 字符串 -> 整数值 |
str(integer) | 整数值 -> 字符串 |
str(float) | 浮点值 -> 字符串 |
complex(x) | 将x转换到一个复数,实数部分为 x,虚数部分为 0 |
complex(x, y) | 将 x 和 y 转换到一个复数,实数部分为 x,虚数部分为 y。x 和 y 是数字表达式 |
参考资料
- Python tutorial3
- 菜鸟教程:Python3 教程
- Python 基础教程 (第二版)
- 实验楼:Python3 简明教程
Python 变量和数据类型的更多相关文章
- Python变量和数据类型(入门2)
转载请标明出处: http://www.cnblogs.com/why168888/p/6400809.html 本文出自:[Edwin博客园] Python变量和数据类型 一.整数 int = 20 ...
- python入门课程 第3章 Python变量和数据类型
第3章 Python变量和数据类型3-1 Python中数据类型计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值.但是,计算机能处理的远不止数值,还可以处理文本.图形 ...
- Python变量、数据类型6
1.Python变量 变量,即代表某个value的名字. 变量的值存储在内存中,这意味着在创建变量时会在内存中开辟一个空间. !!!即值并没有保存在变量中,它们保存在计算机内存的深处,被变量引用.所以 ...
- 【python系列】--Python变量和数据类型
python数据类型 一.整数 Python可以处理任意大小的整数,当然包括负整数,在Python程序中,整数的表示方法和数学上的写法一模一样,例如:1,100,-8080,0,等等. 计算机由于使用 ...
- Python变量和数据类型
十六进制用0x前缀和0-9 a-f表示 字符串是以''或""括起来的任意文本 一个布尔值只有True和False两种值 布尔值可以用and or not运算 空值是 ...
- python变量与数据类型
变量 什么是变量 所谓变量,指的是在程序运行过程中需要用到的中间结果,变量定义后,会占用一块内存开辟的空间地址,通过内存空间确保同一时间的唯一性. >>> print(id.__do ...
- Python变量及数据类型
所有编程语言几乎都会有 ’ 变量‘ ,如 a = 2,用一个a变量指代数字2,在Python中,一切皆对象,因此在变量赋值的时候实际上是在内存中开辟了一块存储变量内容的内存空间对象. 对象可以指定不同 ...
- Python 变量与数据类型
1.变量命名规则: 变量名只能是字母,数字和下划线的任意组合 变量名第一个字符不能是数字 变量名区分大小写,大小写字母被认为是两个不同的字符 特殊关键字不能命名为变量名 2.数值的运算 print ( ...
- Python变量和数据类型,类型转换
a.变量的定义 把数据分别用一个简单的名字代表,方便在接下来的程序中引用. 变量就是代表某个数据(值)的名称. 变量就是用来存储数据的,将不同的数据类型存储到内存 b.变量的赋值 变量名= 初始值 ...
随机推荐
- Firebird 安装多实例
火鸟数据库的安装向导,默认不允许多实例. 但是不管出于什么原因,若想安装多实例,很简单. 1.先用安装文件,按照向导安装第一个实例. 2.安装后不要启动服务,根据需要配置好Firebird.conf. ...
- python 3.x 爬虫基础---Requersts,BeautifulSoup4(bs4)
python 3.x 爬虫基础 python 3.x 爬虫基础---http headers详解 python 3.x 爬虫基础---Urllib详解 python 3.x 爬虫基础---Requer ...
- checkebox 全选 ,子复选框单个全部选择后,全选框也会被选择
<script> //点击全选,子复选框被选中 function demo(){ var allcheck=document.getElementById("allcheck&q ...
- jQuery基础---Ajax基础
内容提纲: 1.Ajax 概述 2.load()方法 3.$.get()和$.post() 4.$.getScript()和$.getJSON() 5.$.ajax()方法 6.表单序列化 发文不易, ...
- 使用NPOI,完成数据的导入导出
解释下流程,第一步:将数据库表中的数据导出到excel表 第二步:将excel表中的数据再插入到数据库表中(当然没有做重复性校验,测试而已)注:表结构 ...
- "类工厂模式"改写SqlHelper
看到标题您一定很疑惑,23种经典设计模式什么时候多了一个"类工厂模式",稍等,请听我慢慢道来. 实践是检验真理的唯一途径.最近用了"类工厂模式"改写了我公司的S ...
- mybatis必知必会一
入门: 1.每个基于 MyBatis 的应用都是以一个 SqlSessionFactory 的实例为中心的.SqlSessionFactory 的实例可以通过 SqlSessionFactoryBui ...
- Easyui combogrid添加toolbar
近一段时间一直在做Easyui的一个项目.官方的资料 API有些不全,把自己遇到的解决的问题发出来希望能帮助到大家. combogrid这个控件绑定了一个DataGrid,API也没有说可以绑定Too ...
- Angular中引入Bootstrap部分样式失效以及Jquery的$无法识别
大多数同学在模仿慕课网的时候可能会遇到引入bootstrap和jquery样式部分失效以及$符号报错,这里为大家提供正确的解决方案. 可能大家在引入试过col-md之后觉得bootstrap是ok的, ...
- json格式对象大括号中不能把键改为变量问题
今天遇到了一个往json中写入变量的问题,下面代码是错误的写法 document.querySelector(".box").onclick = function(){ // 移动 ...