python3xiaobaike_2020/chapter2/2-1 python3小白课:啥是变量.md
2025-04-20 23:22:14 +08:00

5.5 KiB
Raw Blame History

python3小白课啥是变量

假如你是一个卖花的人你手里有很多很多的花盆里面带有土壤。你可以给花盆1种植玫瑰花给花盆2种植水仙花给花盆3种植百合花。那么比如花盆1就是变量的名,你说拿起花盆1你也就拿起了里面的玫瑰花,而玫瑰花就是变量的值。在python中变量的值可以是各种各样的限定类型比如可以是一个数字数值型也可以是一串文本内容字符串型。变量的名更像是一个容器就像我们刚才比喻的花盆一样通过名字可以跟对应的值做连接。

那么为啥我们需要用到值的时候需要含他的名字呢?一方面是因为名字更好记,另一方面也是因为它的值很多时候在代码中是可以变化的,所以叫做变量嘛。通过含名字来指代这个可能会变化的值,那么后面的代码可能就可以写得更加通用一些。

关于这一点,我们来看个小例子。

# coding: utf-8
a = 11111
b = 22222
print(a + b)

如果我们仅使用值,而不使用变量,那么我们在计算求和的时候写的是print(11111 + 22222)。这时候如果我们需要修改11111为33333那么我们需要改2个地方而使用变量则只需要在定义它的那一行修改即可。这并不是一个极端的例子实际的代码可能有成百上千行这样的引用使用变量你无需记忆一长串的值的内容而只需要记住它的名字是a和b即可十分方便。

在python中我们可以使用=号来做赋值运算符,它在一行代码中,可以将等于号右边的值赋值给左边。很好理解吧?

而我们需要求和呢?使用+号运算符即可。

Tip

我们可以用print命令将变量或表达式计算的结果打印输出在控制台上。

还有一个我们使用变量的理由,就是我们有时候无需了解中间的值是多少,只需要关心业务逻辑而已。

举个例子,比如我们需要打开一个文本文件,文件里面的全部内容我是不关心的,我要做的是想判断能否在该文件中找到某些我需要的内容罢了。

这时候我们把文件的全部内容读入了存入变量名为aaa的变量中此时我们无需看aaa对应的值是什么直接对aaa变量进行寻找操作并输出查找结果即可实现我的目的。


python是一种弱类型语言

python是一种弱类型语言体现在以下两点

1变量无需事先声明即可使用比如上述例子中的变量a没错我们通常是这么叫的变量a没有声明它是什么类型直接就可以给它赋值一个数值。

2变量的数据类型可以改变。比如上述例子中的变量a现在我们的变量a是一个数值型数据你可以在它的下面再写一行代码a = "我是小白"这样就可以将变量a的类型变为字符串类型了。在python中我们使用英文的双引号或者单引号引起一段内容表示字符串它在你后面的学习中还会经常碰到后面我们还会做更加详细的讲解。


变量命名规范

在变量名起名时我们是有一些规范的有些变量名不支持或不合法python的解释器就不能正常的把它当做一个变量名来来看待。

总体来说python的变量名必须以字母、下划线_开头,后面可以跟任意数目的字母、数字和下划线_。在python中变量起名一般不含什么中文汉字等在python3中虽然支持中文变量名比如语文 = 100,但不推荐,也十分罕见,因为你在敲代码的时候可能就得切换输入法了),通常都是字母、下划线的组合居多,偶尔掺杂数字。注意哦,变量名不能包含空格

[!danger]

python对大小写敏感因此变量a和变量A是两回事。

原则上,使用简单的单词来表示这个变量的作用,或者用你能理解的写法也行,比如你也可以用拼音、或者拼音的首字母组合来作为变量名,都是可以的。

还有一些python的保留关键字或者内置函数也不建议作为变量名使用。如果使用保留关键字做变量名解释器会报错如果使用内置函数名作为变量名解释器不报错但会把内置函数给覆盖掉就不能使用内置函数了。

目前python的保留关键字有如下这些

['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']

内置函数大概有这些:

['abs', 'all', 'any', 'ascii', 'bin', 'bool', 'breakpoint', 'bytearray', 'bytes', 'callable', 'chr', 'classmethod', 'compile', 'complex', 'copyright', 'credits', 'delattr', 'dict', 'dir', 'divmod', 'enumerate', 'eval', 'exec', 'exit', 'filter', 'float', 'format', 'frozenset', 'getattr', 'globals', 'hasattr', 'hash', 'help', 'hex', 'id', 'input', 'int', 'isinstance', 'issubclass', 'iter', 'len', 'license', 'list', 'locals', 'map', 'max', 'memoryview', 'min', 'next', 'object', 'oct', 'open', 'ord', 'pow', 'print', 'property', 'quit', 'range', 'repr', 'reversed', 'round', 'set', 'setattr', 'slice', 'sorted', 'staticmethod', 'str', 'sum', 'super', 'tuple', 'type', 'vars', 'zip']

这些英文啥意思,咱就暂且不翻译了,用到再仔细跟大家解释。