Python中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。

在Python中,变量就是变量,它没有类型,我们所说的"类型"是变量所指的内存中对象的类型。

Python 3中有六个标准的数据类型:

  • Numbers(数字)

  • String(字符串)

  • List(列表)

  • Tuple(元组)

  • Sets(集合)

  • Dictionaries(字典)

Numbers(数字)

Python 3支持int、float、bool、complex(复数)。

数值类型的赋值和计算都是很直观的,就像大多数语言一样。内置的type()函数可以用来查询变量所指的对象类型。

>>> a, b, c, d = 20, 5.5, True, 4+3j>>> print(type(a), type(b), type(c), type(d))

数值运算:

>>> 5 + 4  # 加法9>>> 4.3 - 2 # 减法2.3>>> 3 * 7  # 乘法21>>> 2 / 4  # 除法,得到一个浮点数0.5>>> 2 // 4 # 除法,得到一个整数0>>> 17 % 3 # 取余2>>> 2 ** 5 # 乘方32

注意:

  • 1、Python可以同时为多个变量赋值,如a, b = 1, 2。

  • 2、一个变量可以通过赋值指向不同类型的对象。

  • 3、数值的除法(/)总是返回一个浮点数,要获取整数使用//操作符。

  • 4、在混合计算时,Pyhton会把整型转换成为浮点数。

String(字符串)

Python中的字符串str用单引号(' ')或双引号(" ")括起来,同时使用反斜杠(\)转义特殊字符。

>>> s = 'Yes,he doesn\'t'>>> print(s, type(s), len(s))Yes,he doesn't  14

如果你不想让反斜杠发生转义,可以在字符串前面添加一个r,表示原始字符串:

>>> print('C:\some\name')C:\someame>>> print(r'C:\some\name')C:\some\name

另外,反斜杠可以作为续行符,表示下一行是上一行的延续。还可以使用"""..."""或者'''...'''跨越多行。

字符串可以使用 + 运算符串连接在一起,或者用 * 运算符重复:

>>> print('str'+'ing', 'my'*3)string mymymy

Python中的字符串有两种索引方式,第一种是从左往右,从0开始依次增加;第二种是从右往左,从-1开始依次减少。

注意,没有单独的字符类型,一个字符就是长度为1的字符串。

>>> word = 'Python'>>> print(word[0], word[5])P n>>> print(word[-1], word[-6])n P

还可以对字符串进行切片,获取一段子串。用冒号分隔两个索引,形式为变量[头下标:尾下标]。

截取的范围是前闭后开的,并且两个索引都可以省略:

>>> word = 'ilovepython'>>> word[1:5]'love'>>> word[:]'ilovepython'>>> word[5:]'python'>>> word[-10:-6]'love'

与C字符串不同的是,Python字符串不能被改变。向一个索引位置赋值,比如word[0] = 'm'会导致错误。

注意:

  • 1、反斜杠可以用来转义,使用r可以让反斜杠不发生转义。

  • 2、字符串可以用+运算符连接在一起,用*运算符重复。

  • 3、Python中的字符串有两种索引方式,从左往右以0开始,从右往左以-1开始。

  • 4、Python中的字符串不能改变。

List(列表)

List(列表) 是 Python 中使用最频繁的数据类型。

列表是写在方括号之间、用逗号分隔开的元素列表。列表中元素的类型可以不相同:

>>> a = ['him', 25, 100, 'her']>>> print(a)['him', 25, 100, 'her']

和字符串一样,列表同样可以被索引和切片,列表被切片后返回一个包含所需元素的新列表。详细的在这里就不赘述了。

列表还支持串联操作,使用+操作符:

>>> a = [1, 2, 3, 4, 5]>>> a + [6, 7, 8][1, 2, 3, 4, 5, 6, 7, 8]

与Python字符串不一样的是,列表中的元素是可以改变的:

>>> a = [1, 2, 3, 4, 5, 6]>>> a[0] = 9>>> a[2:5] = [13, 14, 15]>>> a[9, 2, 13, 14, 15, 6]>>> a[2:5] = []   # 删除>>> a[9, 2, 6]

List内置了有很多方法,例如append()、pop()等等,这在后面会讲到。

注意:

  • 1、List写在方括号之间,元素用逗号隔开。

  • 2、和字符串一样,list可以被索引和切片。

  • 3、List可以使用+操作符进行拼接。

  • 4、List中的元素是可以改变的。

Tuple(元组)

元组(tuple)与列表类似,不同之处在于元组的元素不能修改。元组写在小括号里,元素之间用逗号隔开。

元组中的元素类型也可以不相同:

>>> a = (1991, 2014, 'physics', 'math')>>> print(a, type(a), len(a))(1991, 2014, 'physics', 'math') <class 'tuple'> 4

元组与字符串类似,可以被索引且下标索引从0开始,也可以进行截取/切片(看上面,这里不再赘述)。

其实,可以把字符串看作一种特殊的元组。

>>> tup = (1, 2, 3, 4, 5, 6)>>> print(tup[0], tup[1:5])1 (2, 3, 4, 5)>>> tup[0] = 11  # 修改元组元素的操作是非法的

虽然tuple的元素不可改变,但它可以包含可变的对象,比如list列表。

构造包含0个或1个元素的tuple是个特殊的问题,所以有一些额外的语法规则:

tup1 = () # 空元组tup2 = (20,) # 一个元素,需要在元素后添加逗号

另外,元组也支持用+操作符:

>>> tup1, tup2 = (1, 2, 3), (4, 5, 6)>>> print(tup1+tup2)(1, 2, 3, 4, 5, 6)

string、list和tuple都属于sequence(序列)。

注意:

  • 1、与字符串一样,元组的元素不能修改。

  • 2、元组也可以被索引和切片,方法一样。

  • 3、注意构造包含0或1个元素的元组的特殊语法规则。

  • 4、元组也可以使用+操作符进行拼接。

Sets(集合)

集合(set)是一个无序不重复元素的集。

基本功能是进行成员关系测试和消除重复元素。

可以使用大括号 或者 set()函数创建set集合,注意:创建一个空集合必须用 set() 而不是 { },因为{ }是用来创建一个空字典。

>>> student = {'Tom', 'Jim', 'Mary', 'Tom', 'Jack', 'Rose'}>>> print(student)   # 重复的元素被自动去掉{'Jim', 'Jack', 'Mary', 'Tom', 'Rose'}>>> 'Rose' in student  # membership testing(成员测试)True>>> # set可以进行集合运算...>>> a = set('abracadabra')>>> b = set('alacazam')>>> a{'a', 'b', 'c', 'd', 'r'}>>> a - b     # a和b的差集{'b', 'd', 'r'}>>> a | b     # a和b的并集{'l', 'm', 'a', 'b', 'c', 'd', 'z', 'r'}>>> a & b     # a和b的交集{'a', 'c'}>>> a ^ b     # a和b中不同时存在的元素{'l', 'm', 'b', 'd', 'z', 'r'}

Dictionaries(字典)

字典(dictionary)是Python中另一个非常有用的内置数据类型。

字典是一种映射类型(mapping type),它是一个无序的键 : 值对集合。

关键字必须使用不可变类型,也就是说list和包含可变类型的tuple不能做关键字。

在同一个字典中,关键字还必须互不相同。

>>> dic = {}  # 创建空字典>>> tel = {'Jack':1557, 'Tom':1320, 'Rose':1886}>>> tel{'Tom': 1320, 'Jack': 1557, 'Rose': 1886}>>> tel['Jack']   # 主要的操作:通过key查询1557>>> del tel['Rose']  # 删除一个键值对>>> tel['Mary'] = 4127  # 添加一个键值对>>> tel{'Tom': 1320, 'Jack': 1557, 'Mary': 4127}>>> list(tel.keys())  # 返回所有key组成的list['Tom', 'Jack', 'Mary']>>> sorted(tel.keys()) # 按key排序['Jack', 'Mary', 'Tom']>>> 'Tom' in tel       # 成员测试True>>> 'Mary' not in tel  # 成员测试False

构造函数 dict() 直接从键值对sequence中构建字典,当然也可以进行推导,如下:

>>> dict([('sape', 4139), ('guido', 4127), ('jack', 4098)]){'jack': 4098, 'sape': 4139, 'guido': 4127}>>> {x: x**2 for x in (2, 4, 6)}{2: 4, 4: 16, 6: 36}>>> dict(sape=4139, guido=4127, jack=4098){'jack': 4098, 'sape': 4139, 'guido': 4127}

另外,字典类型也有一些内置的函数,例如clear()、keys()、values()等。

注意:

  • 1、字典是一种映射类型,它的元素是键值对。

  • 2、字典的关键字必须为不可变类型,且不能重复。

  • 3、创建空字典使用{ }。

下标索引必须为正整数类型或逻辑类型_Python3 基本数据类型相关推荐

  1. matlab索引必须为正整数或逻辑值,MATLAB编程求解湍流k-e方程时,总是遇见‘下标索引必须为正整数类型或逻辑类型’错误...

    %%%%%%%%%%%%%%%参数设置%%%%%%%%%%%%% tic clear clc %1.模型参数 LD=1;H=0.04; mu=0.01;     %动力粘度 rou=1100;    ...

  2. matlab提示“下标索引必须为正整数类型或逻辑类型”或“索引超出矩阵维度”

    data = [1 2 3;1 3 2;2 4 1;3 4 1;4 5 2;6 2 1]; F=zeros(6);%矩阵的大小为M %生成邻接矩阵 ss=length(data(:,1)); for ...

  3. MATLAB-索引超出矩阵维度下标索引必须为正整数类型或逻辑类型 max()函数,一种解决办法

    在使用matlab的max( )函数时,报错:下标索引必须为正整数类型或逻辑类型. 我检查了一遍数组Ldb,索引是没有问题的.matlab的索引是从1开始的,这一点没有用错. 再检查后发现程序里有这样 ...

  4. 下标索引必须为正整数类型或逻辑类型_python量化基础 | 变量和简单的数据类型,零基础都可以看懂...

    编辑 | Cowboy 校对 | 李明 来源 | 牛角财经 目的 | python量化基础 | 变量和简单的数据类型,零基础都可以看懂!!! python教程 从入门到高级(免费) 特点:案例基于金融 ...

  5. matlab问题记录:索引超出矩阵维度与下标索引必须为正整数类型或逻辑类型。

    sum函数在索引矩阵A时,索引到下标为0或负数了.(虽然理论上并没有)可能是受到你之前空间变量的影响了,你在这些语句之前加上"clear"语句,清除一下工作空间变量试试.

  6. typescript索引类型_TypeScript类型声明书写详解

    本文总结一下TypeScript类型声明的书写,很多时候写TypeScript不是问题,写类型就特别纠结,我总结下,我在使用TypeScript中遇到的问题.如果你遇到类型声明不会写的时候,多看看lo ...

  7. MVC 无法将带 [] 的索引应用于“System.Dynamic.DynamicObject”类型的表达式

    无法将带 [] 的索引应用于"System.Dynamic.DynamicObject"类型的表达式 说明: 执行当前 Web 请求期间,出现未经处理的异常.请检查堆栈跟踪信息,以 ...

  8. mysql where varchar_MySQL数据库之MySQL索引使用:字段为varchar类型时,条件要使用''包起来...

    本文主要向大家介绍了MySQL数据库之MySQL索引使用:字段为varchar类型时,条件要使用''包起来 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. 结论: 当MySQL中 ...

  9. python3 long类型_Python3 基本数据类型

    有一些补充 标准数据类型 Python3 中有六个标准的数据类型: Number(数字) String(字符串) List(列表) Tuple(元组) Set(集合) Dictionary(字典) P ...

最新文章

  1. 2016中国知识管理发展的7个趋势
  2. hutool的定时任务不支持依赖注入怎么办_「架构」 - 定时任务 amp; Elastic-Job基本使用...
  3. 《过早退出是一切失败的根源》读后感
  4. python画图灰白_python 站点资料插值画图及白化
  5. 最大公约数python语言算法_使用Python求解最大公约数的实现方法
  6. matlab历史指示穿作用,重新学习MATLAB——相见恨晚的重要应用技巧
  7. HighCharts:图表默认的英文日期改为中文显示
  8. 西门子PLC常用通信协议以及常用协议的区别(二)
  9. linux ubuntu 安装odb,玩玩Linux云主机-Ubuntu安装nginx
  10. 图像风格迁移Android,图像风格迁移(Pytorch)
  11. 在ghost时加载smartdrv.exe是否会提高速度
  12. Google Chrome修改网页背景颜色的办法
  13. 案例:模拟京东快递单号查询 字体放大显示
  14. 速看四川省企业技术中心拟认定名单已发布,共181家
  15. 翟菜花:中粮我买网,十年未出线
  16. php文本安全内容敏感词检测(微信的)
  17. 2021年危险化学品生产单位安全生产管理人员考试试卷及危险化学品生产单位安全生产管理人员实操考试视频
  18. c语言程序 出圈游戏,【出圈】 (C语言代码)
  19. ngrock内网穿透(Ngrok 和 Sunny-Ngrok )
  20. (Java零基础学习笔记)第二章 Java中的基本语法

热门文章

  1. C、C++申请指针内存的问题
  2. excel连接mysql 数据库
  3. 纯java分布式内存数据库_最新Java岗面试清单:分布式+Dubbo+线程+Redis+数据库+JVM+并发...
  4. mysql查询不重复记录数_mysql查询不重复的行内容,不重复的记录数.count,distinct
  5. mysql zip 还原_mysql 压缩还原数据库
  6. a标签 vue 动态点击_vue基础那点事
  7. linux 保留最近目录,Linux如何删除全部目录只保留最新修改的目录
  8. 北邮计算机系统结构课件,TEC-8 运算器组成实验(北邮).ppt
  9. 【学亮IT手记】angularJS select2多选下拉框实例
  10. css图片的全屏显示代码-css3