Python 变量和赋值
介绍
Python 是一门非常适合处理许多任务的语言。它通常用于系统管理任务,以及构建网站、处理数据和文本。它也正在成为机器学习 (ML) 的首选语言,利用强大的模块进行数学运算和可视化。
与大多数编程语言的基础一样,你可以在 Python 中使用变量来保存和操作值。本指南向你介绍了在 Python 中创建和使用变量的基础知识。
为了从本指南中获益最多,您可能需要遵循并运行本指南中的代码示例。代码示例输入到 Python 的 REPL 解释器中。如果您的系统还没有 Python 解释器,您可以从此处下载一个。只需选择与您的操作系统匹配的版本并按照安装说明进行操作即可。本指南针对 Python 版本 3.6,示例代码针对该版本进行了测试。
变量
变量保存值。在 Python 中,变量不需要前向声明 - 您需要做的就是提供变量名称并为其分配一些值。
Python 解释器会显示类似这样的提示符:>>>。你输入到解释器中的每一行都会被解释器逐行解析,如果该行完整,也会执行。
如果你在 Python 解释器中输入one = 1并按“Enter”,解释器将只显示一个新行提示。
>>> one = 1
>>>
新行提示>>>是空的。但 Python 实际上做了几件事:
- 创建了一个名为one 的变量。
- 将值1分配给变量one。
从空行输出中看不出这一点。但只要你输入变量名并按回车键,解释器就可以显示任何变量的值:
>>> one
1
>>>
显示值 1 是因为 Python 评估该行并报告返回的值。以前,该行包含一个语句。变量one被赋予了一个值。该操作评估了一个语句,因此结果没有打印任何内容。打印变量值的更明确方法是使用 print ()函数。
>>> print(one)
1
>>>
让我们创建另一个名为Greeting的变量并为其赋值'hi!':
>>> greeting = 'hi'
>>> print(greeting)
hi
这里我们创建了一个变量并给它分配了一个字符串值。注意变量名greeting。它被选择用来包含某种问候语。当然,Python 无法判断字符串值“hi”确实是问候语。变量就是变量!我们可以稍后重新分配变量。变量中存储的值只是分配给它的最后一个值。
>>> greeting = 'hi once'
>>> greeting = 'hi again!'
>>> print(greeting)
hi again!
>>>
一旦对值“hi again!”进行第二次赋值,初始值“hi once”就会丢失。除非稍后再赋值,否则变量的当前值在会话期间将保持为“hi again! ”。
变量名x和Greeting都仅由字符组成。Python 允许您根据自己的喜好命名变量,只要名称遵循以下规则:
- 变量名可以包含字母、数字(0-9)或下划线字符_。
- 变量名必须以字母 A-Z 或下划线_开头。小写或大写字母均可接受。
- 变量名可能不是 Python 中的保留字。
遵循上述规则,所有这些变量赋值都是合法的:
>>> fish = 11
>>> a = 12
>>> _wow_ = 13
>>> a1 = 14
>>> something_longer_is_fine_2 = 15
>>> RemoteAddress = '10.20.30.40'
所有上述变量名都是可以接受的。但仅仅因为它们是可以接受的并不意味着你应该使用它们。Python 社区进一步制定了应该遵循的命名约定。例如,尽管单字符标识符完全合法,但强烈建议不要使用字符l(小写 el)或O(大写 oh)或I(大写 eye)。这是因为在某些字体中,这些字符很难与数字 1(一)和 0(零)区分开来。有关变量命名的更多信息,请参阅此参考。
以下变量名不可接受。如果您尝试使用它们,python 将产生错误并且不会创建任何变量。
如果首字符不是下划线或 AZ 或 az 中的字母,则会产生错误。例如反引号 (`) 字符:
>>> `ticked = 1
File "<stdin>", line 1
`ticked = 1
^
SyntaxError: invalid syntax
>>>
以数字开头的标识符不合法。
>>> 7days = 'week'
File "<stdin>", line 1
7days = 'week'
^
SyntaxError: invalid syntax
>>>
包含空格的标识符不合法:
>>> day of week = 'Monday'
File "<stdin>", line 1
day of week = 'Monday'
^
SyntaxError: invalid syntax
>>>
另外,我们不能使用保留字作为变量名。在 Python 中,and是保留字。因此,以下赋值将失败:
>>> and = 'the winner is?'
File "<stdin>", line 1
and = 'the winner is?'
^
SyntaxError: invalid syntax
>>>
在上述所有失败的情况下,Python 解释器都会引发错误并拒绝执行变量的赋值或创建。您可能会注意到,插入符号^指向错误标识符中的不同位置。这是由于解释器尝试将标识符与可接受的语法匹配。但无论哪种方式,结果都是一样的:无效的变量名会导致错误。
作为参考,Python 的保留字列表包括:
和 | 作为 | 断言 | 休息 |
班级 | 继续 | 定义 | 德尔 |
elif | 别的 | 除了 | 错误的 |
最后 | 为了 | 从 | 全球的 |
如果 | 进口 | 在 | 是 |
拉姆达 | 没有任何 | 非本地 | 不是 |
或者 | 经过 | 增加 | 返回 |
真的 | 尝试 | 尽管 | 和 |
屈服 |
变量和类型
Python 不需要您声明变量。您无需提前告诉 Python 您打算为变量保留空间。您所做的只是为变量分配一个值。但这并不意味着您可以在不先让 Python 分配变量的情况下使用变量。例如,以下行在我的会话中将失败:
>>> print(imaginary_thing)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'imaginary_thing' is not defined
>>>
出现此错误的原因是,就 Python 而言,没有名为imaginary_thing的标识符。Python 很乐意接受该名称的变量,但它要求所使用的任何变量必须已赋值。
对变量进行赋值操作会为变量分配名称和空间以包含值。
我们看到,我们可以为变量分配数值以及字符串(文本)值。我们还看到,我们可以重新分配变量,为其提供一个新值,以替换其包含的任何先前值。
Python 通过让您通过变量名访问变量来跟踪变量的值。Python 还跟踪分配给变量的值的类型。要了解值的类型,您可以使用内置的type()函数。在以下示例中,我们使用type()函数显示值的类型:
>>> x = 42
>>> print(type(x))
<class 'int'>
>>> x = 'hi'
>>> print(type(x))
<class 'str'>
>>> x = 3.14
>>> print(type(x))
<class 'float'>
>>> x = False
>>> print(type(x))
<class 'bool'>
>>>
在上述每个示例中,Python通过解析赋值的右侧部分并据此确定类型来推断值的类型。值3.14中小数点的存在提示 Python 分配类型float,而裸数字42则产生int。
Python 还支持布尔数据类型。布尔值被赋予True或False的值(顺便说一下,两者都是关键字)。
使用十六进制、八进制或二进制文字时也会创建整数数据类型。要将值输入为八进制,请在数字前加上0o前缀。要将值输入为十六进制,请在数字前加上0x前缀。对于二进制文字,请在数字前加上0b前缀。
>>> x = 0xABBA
>>> print(type(x))
<class 'int'>
>>> x = 0o463
>>> print(type(x))
<class 'int'>
>>> x = 0b101010
>>> print(type(x))
<class 'int'>
>>>
如果要确保变量的值是int类型,可以使用内置的int()
免责声明:本内容来源于第三方作者授权、网友推荐或互联网整理,旨在为广大用户提供学习与参考之用。所有文本和图片版权归原创网站或作者本人所有,其观点并不代表本站立场。如有任何版权侵犯或转载不当之情况,请与我们取得联系,我们将尽快进行相关处理与修改。感谢您的理解与支持!
请先 登录后发表评论 ~