查看原文
其他

Python变量基础

Crossin先生 Crossin的编程教室 2024-03-28

入门教程、案例源码、学习资料、读者群

请访问: python666.cn


大家好,欢迎来到 Crossin的编程教室 !


1. 什么是变量

所谓「变量」,就是可以变化的量。(这解释真是听君一席话,如听一席话)

这一概念来源于数学,用在编程领域中,是指计算机语言中能储存计算结果或能表示值的抽象概念。

变量可以通过变量名访问。上一次我们聊过 Python 中变量名的命名规则(Python到底能不能用中文变量名?),今天我们再聊聊更多关于变量的事。

2. 为什么要有变量

有个刚学 Python 第一天的同学问:

不懂为啥要用变量,需要什么值直接写就好了,干嘛还多此一举?

如果我们的程序都只是输出“Hello World”或做简单的四则运算,当然可以不用变量。

但实际的程序并不会这么简单。

在代码中,所有我们看到的符号、数字、字母、文字等,统称为数据。计算机程序就是由这些数据按照一定的语法规则组成的。

一个真正的程序里面会有各种数据,这些数据不可能都是固定不变的,会需要进行计算和处理。为了更方便地使用这些数据,我们要给这些数据取名字。简单来说,变量就是数据的名字,用以存取数据,通过不同的变量名区别不同的数据。

比如一个游戏里的角色,它所处的位置、它的等级、它攻击力、防御力、当前的血量等等,这些数据都需要用变量来管理。一个萝卜一个坑,一个数值也要关联到一个变量上,程序才好处理它。

3. 变量的使用

使用变量无非两种情况,一是存放数值,二是提取存放的数值。

在 Python 语言中,变量需要遵循「先创建,后使用」的原则。

Python 中要创建一个变量,就是用等号(=)向一个变量名赋值。如:

a = 1

这就创建了一个值为 1 的变量 a。

然后你就可以使用这个变量。如:

print(a)

或者用它去创建另一个变量。如:

b = a + 2

既然都说了是“变”量,那自然也可以给变量重新赋值。如:

a = 3

这样 a 的值就被修改为了 3。

如果直接使用一个没有赋值过的变量名,会引发一个名称未定义的 NameError 错误,导致程序中断。如:

print(x)

会报错:

NameError: name 'x' is not defined
4. 变量的类型

程序中的数据多种多样,有数字,有文本,还有复杂的复合结构。为了便于管理,需要有相对应的数据类型。

Python 是一门动态类型的语言,与 C、C++ 等静态编程语言不同,在创建变量时不需要指定变量类型。而是根据给它赋值的类型确定,并且是可变的。

比如:

a = 1print(type(a))

Python 内置的 type 函数可以查看一个变量的类型。这里可以看到输出为 <class 'int'>,即整数类型。

如果在这两句之后再加上:

a = 'a'print(type(a))

程序并不会报错,并输出 <class 'str'>,即变量 a 已被修改为字符串类型。

关于类型的更多内容,我将在之后详聊,今天就不展开了。

5. 新手问题

如果你问我,新手最常遇到的变量问题是什么?结果可能会让你大跌眼镜。

因为就我的经验,很多初学者都会踩到的一个坑是:

拼错变量名!

比如前面赋值了个变量叫 name,结果过了几行,又写成了 mame。于是就得到一个这样的 NameError 报错:

所以,如果你看到报错莫名地说你某个变量 not defined,那就找找看所有用到的地方是不是有拼写错了。

当然咯,这时候就体现出 IDE 的作用了:一个合格的 IDE 会给你拼错的变量名划上波浪线。

对于 Python 的变量,你还要什么想了解的内容?欢迎在留言区讨论。


以下是视频时间,欢迎大家关注、点赞、转发:


Crossin的新书码上行动:零基础学会PYTHON编程(CHATGPT版)已经上市了

本书力求做到浅显易懂,让完全没有编程经验的零基础“小白”也能学会Python。内容从环境搭建这种最基础的步骤开始讲起,逐渐深入到常见的实际应用当中。在讲解知识点的同时配有相应的代码示例,让读者可以边学边练加深理解。书中还创新地使用 ChatGPT 作为编程学习的辅助,带领读者探索AI时代下学习编程的新模式。


公众号的读者朋友们购买后可在后台联系我,加入读者交流群,Crossin会为你开启陪读模式,解答你在阅读本书时的一切疑问。


感谢转发点赞的各位~

_往期文章推荐_

Python到底能不能用中文变量名?




如需了解付费精品课程教学答疑服务
请在Crossin的编程教室内回复: 666

继续滑动看下一个
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存