Skip to main content

Python 变量

本节课我向大家来介绍一下,Python变量以及Python变量的类型。

什么是变量?

开发程序就要和数据打交道 ,在运行程序的时候,数据是存储在计算机的内存中的,那么内存又是如何存储数据的呢?其实内存就像一块黑板,计算机把数据写入到内存,就相当于老师在黑板上写字 ,我们既可以写数字,也可以写汉字,但是计算机存储的数据可不是这样的,前面我们介绍过计算机,它只认识二进制,二进制它就是一串0和1,如下图所示:

01变量 那么我们在内存中是如何读取数据的呢?读这一堆0和1显然是非常不方便的。这时候就想到了一个方法:那就是用一个名字来指向这个数据,比如说前面的数字,我用一个名字number来指向它,而第2个我用motto来指向它 ,读取上面那条数据的时候,使用这个number,在读取下面那条数据的时候,就使用motto。这里的number和motto,他们就是一个名字,由我们自己来定义。变量就是简单的名字,是由我们自己来定义的,它可以用来关联或者说是指向内存中的数据。

模拟另一个场景:创建一个变量叫做message,然后我给它赋值一个hello,输出一下这个message,输出的结果就是hello这是为变量赋值。那么我们可不可以把这个已有的变量再赋值给一个其他的变量呢? 比如说我在这里创建一个变量叫做msg,然后我将这里的message,赋值给这个msg,输出一下这个msd,看一下它的结果也是hello。

02message

可以这样理解,把变量比作是一个便利贴,如果我们将变量比作便利贴,那么这里有个值叫做hello,然后我将一个便利贴名字叫做message,贴到Hello这个值上,msg这个变量它也是一个便利贴同样他也提到了hello这个值上,也就是说message变量和msg变量,它们都指向Hello这个值,我们通过便利贴来找到具体的值,而这个便利贴就是我们的变量。

03便利贴

Python变量语法

在Python中,定义变量需要遵循以下语法:

变量名 =

其中,变量名是程序员自己定义的名字,值是要存储的数据。

  • 变量名:程序员自己定义的名字,用于标识变量。
  • 值:要存储的数据,可以是数字、字符串、列表、元组等。
  • 数据类型:变量存储的数据类型,可以是整型、浮点型、布尔型、字符串型等。

变量命名规则

变量的名字是由我们自己定义的,但是你也不能随便定义,定义一个变量名,它是有规则的,下面我们就来看一下,哪些是有效的变量名,哪些是无效的变量名?

04有效的变量名

  • 有效的变量名
  1. total_price,两个单词之间加下划线这是允许的
  2. 使用驼峰法也就是说第1个单词小写,第2个单词的首字母大写,这种方式也是允许的
  3. 使用下划线开头也是允许的
  4. 全大写
  5. 单词和数字混合是允许的
  • 无效的变量名
  1. 两个单词之间使用中斜线的是不允许的
  2. 两个单词之间使用空格是不允许的
  3. 使用数字是不允许的
  4. 使用除了字母,数字和下划线以外的符号是不允许的
  5. 以数字开头是不允许的

总结:我们定义的变量名只能包含字母,数字和下划线,并且不能够以数字开头,此外这个变量名他还区分大小写,比如说大写的Price和小写的price是不一样的,它是两个变量。还有在命名变量名的时候,请不要使用a b c d这样毫无意义的字符串,我们应该尽量使用能够代表其意思的变量名,也就是见名知意 ,这样可以提高代码的可读性,还有尽量使用英文,不要使用拼音,因为这样看起来专业一点。

变量命名网站

不要小瞧了变量命名,因为计算机科学的两件难事就是缓存失效和命名。为变量起一个好的名字,可不是一件省心的事儿,一个具有误导性的名字,极有可能在项目中埋下一个很深的bug,那么对于英语不好的同学,这里为大家推荐一个网站(https://unbug.github.io/codelf/),它的名字叫做codelf

05codelf 比如说我想为价格定一个变量名,我们可以在这里输入:“价格”。看一下他给我们推荐哪些?

06codelf价格 上面这些都是他推荐的名字,我们可以在这里选择一些比较合适的名字,它推荐的这些名字都是在众多的项目中提取出来比较常用的名字,我们可以选择适合自己的名字,比如说这里price,就可以作为我们的商品价格,就像我们在命名的时候,就会有一个非常好的参考 。

为什么使用不同变量类型

本节课我向大家来介绍一下变量的类型。先来思考一下,我们为什么要使用不同类型的变量呢?来举一个生活中的例子:快递员在送快递的时候,这里有一个快递柜,而快递的商品有大有小,快递员会将大的商品放到比较大的快递柜里。而较小的商品放到小的快递柜里,否则你将一个小一点的商品放到一个大的快递柜里,那么大一点的商品就没有地方放了。这就导致了资源的浪费。我们的程序也是这样的,所以Python语言设计者,为了更好地的应用内存空间,提高程序运行效率就设计了多种类型变量。

数据类型

Python的6种变量类型

Python中变量的类型是由为它赋值的数据所决定的。在Python中主要数据类型包括:

  • 数字类型(Number)
  • 布尔类型(Bool)
  • 字符串型(Str)
  • 列表类型(List)
  • 元组类型(Tuple)
  • 字典类型(Dictionary)
  • 集合类型(Set)

数据类型

Python数字类型

Python数值类型主要包括:int整形、Float浮点型、complex复数类型。我们将详细介绍Python数字类型的语法、参数和实例。

  1. 整数类型

整数是Python中最基本的数字类型之一。它可以是正数、负数或零。定义一个整数变量的语法如下:

x = 10

其中,x是变量名,10是整数值。我们可以使用type()函数来确定变量的数据类型:

x = 10
print(type(x)) # 输出:<class 'int'>

在Python中,整数类型还有一些特殊的参数,如下表所示:

参数描述
bin(x)将整数x转换为二进制字符串
oct(x)将整数x转换为八进制字符串
hex(x)将整数x转换为十六进制字符串

整数类型实例:

x = 10
print(bin(x)) # 输出:0b1010
print(oct(x)) # 输出:0o12
print(hex(x)) # 输出:0xa
  1. 浮点数类型

浮点数是Python中的一种数字类型,用于存储小数。定义一个浮点数变量的语法如下:

x = 3.14

其中,x是变量名,3.14是浮点数值。我们可以使用type()函数来确定变量的数据类型:

x = 3.14
print(type(x)) # 输出:<class 'float'>

在Python中,浮点数类型还有一些特殊的参数,如下表所示:

参数描述
round(x, n)将浮点数x四舍五入到小数点后n位

浮点数据类型实例:

x = 3.1415926
print(round(x, 2)) # 输出:3.14
  1. 复数类型

复数是Python中的一种数字类型,用于存储实部和虚部。定义一个复数变量的语法如下:

x = 3 + 4j

其中,x是变量名,3是实部,4j是虚部。我们可以使用type()函数来确定变量的数据类型:

x = 3 + 4j
print(type(x)) # 输出:<class 'complex'>

在Python中,复数类型还有一些特殊的参数,如下表所示:

参数描述
x.real返回复数x的实部
x.imag返回复数x的虚部
x.conjugate()返回复数x的共轭复数

复数类型实例:

x = 3 + 4j
print(x.real) # 输出:3.0
print(x.imag) # 输出:4.0
print(x.conjugate()) # 输出:(3-4j)

为了更好检测大家是否掌握改知识,我们提供了5个作业练习:

作业1:将整数10转换为二进制字符串。

作业2:将整数10转换为八进制字符串。

作业3:将整数10转换为十六进制字符串。

作业4:将浮点数3.1415926四舍五入到小数点后两位。

作业5:求复数3+4j的实部、虚部和共轭复数。

需要作业答案的小伙伴,请联系我们吧(大熊课堂 Python零基础入门动画课)

作业1:将整数10转换为二进制字符串。

x = 10
print(bin(x)) # 输出:0b1010

作业2:将整数10转换为八进制字符串。

x = 10
print(oct(x)) # 输出:0o12

作业3:将整数10转换为十六进制字符串。

x = 10
print(hex(x)) # 输出:0xa

作业4:将浮点数3.1415926四舍五入到小数点后两位。

x = 3.1415926
print(round(x, 2)) # 输出:3.14

作业5:求复数3+4j的实部、虚部和共轭复数。

x = 3 + 4j
print(x.real) # 输出:3.0
print(x.imag) # 输出:4.0
print(x.conjugate()) # 输出:(3-4j)

Python布尔类型

Python 布尔类型是一种表示真假值的数据类型,它只有两个取值:True(真)和False(假)。在 Python 中,布尔类型通常用于条件判断和逻辑运算。Python 中的布尔类型用关键字True和False表示,没有其他取值。可以使用type函数来检查变量的数据类型:

a = True
b = False
print(type(a)) # <class 'bool'>
print(type(b)) # <class 'bool'>

检测变量类型

那么我们要怎样检测一个数据的类型呢?提供两种方式对变量类型进行检测,第一种type函数,第二种isinstance函数,下面我就来看一下

函数描述不同
type()检测数据类型type函数直接输出这个变量的类型
isinstance()检测数据类型isinstance函数需要传递两个参数,是检查这个变量是否属于后面的数据类型,返回值是True或者False

两种检测变量类型函数应用对比如下

  1. type()函数

type()函数主要用于获取一个对象的类型,它的语法格式为:

type(object)

其中,object参数表示要获取类型的对象。

下面是一个例子:

a = "Hello, World!"
print(type(a)) # 输出 <class 'str'>

在上面的例子中,我们使用type()函数获取了字符串类型的对象a的数据类型,输出结果为<class 'str'>

  • type函数检测数据类型示例
>>> price =10
>>> message ='hello'
>>> type(price)
<class 'int'>
>>> type(price)
<class 'str'>
>>> price1 =15.6
>>> type(price1)
<class 'float'>
  1. isinstance()函数

isinstance()函数用于判断一个对象是否是指定的类型(或者是其子类),它的语法格式为:

isinstance(object, classinfo)

其中,object参数表示要判断类型的对象,classinfo参数可以是一个类型(type)或一个类型元组(tuple)。

下面是一个例子:

a = "Hello, World!"
print(isinstance(a, str)) # 输出 True

在上面的例子中,我们使用isinstance()函数判断了字符串类型的对象a是否是字符串类型,输出结果为True。

  • isinstance函数检测数据类型示例
>>> price =10
>>> isintance(price,int)
True
>>> isintance(price,str)
False