关于Python中的数据类型和变量

要想让程序完成某项任务,最基本的是了解如何使用程序语言自带的数据类型和变量,然后通过运算、比较、控制语句等等来达到我们的目的。现在,我们将学习Python中常见的数据类型,以及变量是什么,以及如何使用它们。

数据类型

Python中的数据类型包容:

数值型:包括整数(int),浮点数(float),布尔型(真或假,用True,False表示),复数(complex).

字符串(str):一段文字,要用单引号或引号括起来。

列表(list):把多个值放到一起的组合数据类型,用方括号[]括起来,各个值之间以逗号隔开。

字典(dict):”键:值“对组合的数据类型,键与值之间用冒号分开,不同键值对用逗号分割,所有键值对都放到大括号{}中。

集合:是无序(没有顺序)的不重复元素组合类型。

元组(tuple):与列表类似,但元组是不可变的。

下面我们来实际操练一下。

首先打开Thonny,在python脚本互动区输入下面的语句

i = 2type(1)12复制代码类型:[python]

可以看到显示<class'int'>,表示i是一个整数。在python中,i=2这个语句创建了一个变量,变量的名字叫做i,现在给i一个整数值2,i就表示整数类型的变量。

=与==的区别

“=”用来把一个对象賦给一个变量,而"=="用于比较两个对象是否相等。

关于变量

在Python中,变量名只能包括字母,数字和下划线,不能以数字开头。同时,也不能和Python已经定义的关键字相同,比如def在python中用来创建函数,就不能把变量名设置为def。Python变量名大小写敏感,比如test与Test是两个不同的变量。

与Java,C语言不同,在python中定义变量时,不需要显式指定变量类型。如在Java中要定义一个整数类型变量需要这样:

int i = 3 ;  #必须在变量名前面加上类型int1复制代码类型:[python]

在Python中则不需要如此,因为Python是动态类型编程语言,变量名可以指向不同的对象(内存中的位置),在程序运行时才会根据它指向的对象来判断是什么类型。可以尝试一下这2行代码

i = 56  # i指向的对象是整数类型,这个对象值是56i = 'hahaha' # 现在i指向了另一个str对象,他的值是hahaha12复制代码类型:[python]

这可以通过打开Thonny的堆栈(heap)来看,点击菜单"View"--"Heap"打开堆栈,然后运行上面两行代码,在堆栈窗口可以看到下面的内容:

堆栈窗口是个非常好的帮助我们理解变量与对象关系的地方,大家可以多在这练习和观察。(堆栈就是程序使用的内存区域)

数据类型演练

数值型

一般我们用数值型来做运算,Python支持非常丰富的运算操作,除了常见的+、-、*(乘)、/(除)外,还有整数除//,求余数%,求幂**,以及math库来实现更复杂的数学运算。在脚本互动区,我们可以对数值型对象直接进行运算。

>>> 6+2   #整数相加8>>> 11-2  #整数减法9>>> 3*8  # 整数乘法24>>> 19/3  # 除法6.333333333333333>>> 19%3   # 求余数1>>> 19//3  # 整除6>>> 3.6+5  #浮点数相加,5会被自动转换为浮点数5.0 8.61234567891011121314复制代码类型:[python]

字符串

字符串可以用单引号,或者双引号来声明。

s = 'i am str'  # 正确用法,用单引号包裹s = "i am str" # 正确用法,用双引号包裹s = "i am wrong'  # 错误!结尾也必须用双引号才行123复制代码类型:[python]

创建字符串时,在单引号中可以嵌套双引号,反之亦然。

s= 'mama said "Do Not Touch".' # 这是正确的用法s = "mama said 'Do Not Touch'." # 这也是正确的用法12复制代码类型:[python]

对字符串的一般操作包括求长度、连接、索引、生成子字符串等。

>>> s = "mama said 'Do Not Touch'.">>> len(s)   #求长度25>>> s =s +"Oh." #字符串叠加>>> print(s)mama said 'Do Not Touch'.Oh.>>> s[0]  #根据位置索引字符'm'>>> s[1]'a'>>> s[1:4]   #得到子字符串'ama'123456789101112复制代码类型:[python]

列表

列表和其他编程语言的数组非常类似。用[]来定义,列表中的元素可以是不同类型。

>>> list = [1,2,3,4,5]   #全部是整数的列表>>> fl=[1,'ok',2,'good',7.8] #有整数,字符串,浮点数元素的列表>>> print(list)[1, 2, 3, 4, 5]>>> print(fl)[1, 'ok', 2, 'good', 7.8]>>> list[0]   #通过索引读取列表元素,从0开始1>>> len(list)  #获取列表的长度5>>> list[4]   #列表的最后一个元素,因为从0开始5>>> list[5]   #所以不存在list[5],这是list的第6个元素,而它只有5个。Traceback (most recent call last):  File "<pyshell>", line 1, in <module>IndexError: list index out of range   #错误提示:索引越界了>>> newl = list + fl   # 2个列表合并得到一个新列表>>> print(newl)[1, 2, 3, 4, 5, 1, 'ok', 2, 'good', 7.8]12345678910111213141516171819复制代码类型:[python]

与字符串一样,列表也可以通过位置(索引)来读取指定的元素,索引从0开始,通过“列表名[索引]"方式读取。因为索引从0开始,所以列表的最后一个元素应该是在”长度-1“的索引处,比如上面的list有5个元素,最后一个元素的索引是"5-1=4",而不是5。

列表的操作有很多,常见的如下,今后使用时再详细解释

append():在列表后面追加元素

insert():在列表中插入元素

pop():把指定的元素移出list

clear():清除列表所有元素

sort():对列表进行排序

字典

字典是”键值对“组合而成,日常生活中最常见的字典是学校里的学号,每个学生都有一个学号,来对应这个学生,这里键就是学号,值则是学生的名字。

>>> xuehao = {1:"张三", 2:"李四", 3:'王五'}  #创建字典>>> xuehao[1]  #通过键”1“读取对应数值'张三'>>> xuehao[3]'王五'>>> xuehao[4]="zhaoliu"   #向字典添加新元素>>> print(xuehao){1: '张三', 2: '李四', 3: '王五', 4: 'zhaoliu'}>>> xuehao.keys()   #字典的所有键,这是一个列表dict_keys([1, 2, 3, 4])>>> xuehao.values()  #字典的所有值,这也是一个列表dict_values(['张三', '李四', '王五', 'zhaoliu'])123456789101112复制代码类型:[python]

针对字典的操作也很多,我们这里就先不深入了。

学以致用

让我们做一个学号查询工具,让用户输入学号,然后程序列出对应的名字,我们先看使用字典的方式

#先创建字典xueshengdict = {1: '张三', 2: '李四', 3: '王五', 4: 'zhaoliu'}while True:   xuehao = input("请输入您的学号: ")  #读取用户输入的学号 i = int(xuehao) #读入的学号是字符串,需要通过int()函数转换为整数,因为字典的key是整数 if i < len(xueshengdict): #判断输入的数字是否小于字典长度  print(xueshengdict[i])   #显示名字 else:  #输入数字大于或等于字典长度时,则显示错误信息并从循环退出,完成程序  print("wrong key, quit program!")  break12345678910复制代码类型:[python]

我们还可以通过列表来实现,前提是学号从1开始,并且是连续的,否则不能通过列表来实现。

#创建列表,默认大家学号从1开始,1,2,3,4这样排下去xueshengdict = ['张三', '李四', '王五', 'zhaoliu']while True: xuehao = input("请输入您的学号:") i = int(xuehao) - 1  # 因为通过索引读取学生姓名,所以学号减1得到索引位置 if i < len(xueshengdict):  print(xueshengdict[i]) else:  print("wrong key, quit program!")  break
(0)

相关推荐

  • python的输入与输出

    python的输入与输出 1. python的输入 1.1 python3下的输入 1.2 python2下的输入 1.3数值的比较 2. python的输出 2.1 python的格式化输出 2.2 ...

  • Python所有的内置函数 , 都帮你整理好了!

    Python所有的内置函数 , 都帮你整理好了!

  • Python中is与==的使用区别详解

    Python中is与==的使用区别详解

  • 一文理解 Python 中的变量

    " 变量让程序活起来,不再千人一面." 我们在之前的文章<Python 基本数据类型介绍>中了解了如何创建各种基本类型的数据,但是我们的例子中使用的都是"字面 ...

  • 说说Python中变量的作用域?

    公众号新增加了一个栏目,就是每天给大家解答一道Python常见的面试题,反正每天不贪多,一天一题,正好合适,只希望这个面试栏目,给那些正在准备面试的同学,提供一点点帮助! 小猿会从最基础的面试题开始, ...

  • Python 中交换变量的 3 种方法

    2021-10-16 使用临时变量 交换两个变量值的最简单方法是使用temp变量.该temp变量用来存储拳头变量的值(temp = a),允许你交换两个变量的值(a = b),然后分配的值temp到所 ...

  • 可以在面板回归分析中使用时间序列解释变量或被解释变量吗?

    之前,社群讨论了"显著不显著的后背是什么, 非(半)参估计里解决内生性","计量社群里关于使用交互项还是中介效应分析开展机制研究的讨论","为啥面板数 ...

  • Python 中的函数装饰器和闭包

    函数装饰器可以被用于增强方法的某些行为,如果想自己实现装饰器,则必须了解闭包的概念. 装饰器的基本概念 装饰器是一个可调用对象,它的参数是另一个函数,称为被装饰函数.装饰器可以修改这个函数再将其返回, ...

  • Python中tuple和list的区别?基础学习!

    想必大家都知道,Python数据类型有很多种,其中有两个对象的写法非常相似,它就是tuple元组和list列表,让人傻傻分不清楚.那么你知道Python中tuple和list有什么区别吗?我们来看看具 ...

  • Python中缩进是什么?入门分享!

    众所周知,Python是一门独特的编程语言,它语法清晰.简单易学,而且Python是通过缩进来识别代码块的,因为一般的语言都是通过{}或者end来作为代码块标记. Python中缩进是什么? 要求严格 ...

  • python中的内置函数

    前言 本人只在csdn写博客 内置函数 介绍 一. 数学运算 abs()求绝对值函数 round() 近似取值 pow()求指数 divmod()求商和余数 max()求最大值和min()求最小值 s ...

  • 【Python核心编程笔记】一、Python中一切皆对象

    Python中一切皆对象 本章节首先对比静态语言以及动态语言,然后介绍 python 中最底层也是面向对象最重要的几个概念-object.type和class之间的关系,以此来引出在python如何做 ...