python-tutorials/docs/course/foundation/language_fundamentals/variables.md

4.9 KiB
Raw Blame History

变量和常量

变量和常量的定义如字面上的表示。

变量:在程序执行的过程中,定义的存储空间存储的内容被改变。

常量:在程序执行的过程中,定义的存储空间存储的内容不会被改变。

不是所有的语言都会有变量和常量的,有些语言不能定义常量。

images|387x130

比如说:Python 没有常量

对于 Java我们可以使用关键字来定义一个常量。例如我们可以使用下面的语句在 Java 程序中定义个一常量 DAYS_IN_WEEK这个常量在程序的过程中是不能够被改变的。

static final int DAYS_IN_WEEK = 7;

Python 没有这个常量的定义。

python-variables3|555x203

指定类型

Python 在定义变量的时候是不需要强制指定类型的。

我们都知道在计算机存储的时候都会定义一些基础的数据类型,比如说整型,字符串类型等。

Python 在定义变量的时候是不需要指定的类型的有关变量的类型是是什么Python 将会在定义变量并且初始化的时候进行指定。

这个与 Java 是相对的Java 语言在定义变量或者常量的时候,必须要指定变量类型,这就导致了在 Java 语言中存在有大量的数据类型转换方法,并且在运行的时候也会经常出现类型错误或者 Null 对象异常。

当然Python 也提供了类型转换的函数供你使用,只是这些类型转换的函数远没有 Java 那么多。

初始化

Python 在定义变量后,需要马上初始化。

换句话说说Python 不能定义空对象,这个与 Python 的变量类型是相同的,因为不对 Python 的变量初始化的话Python 没有办法知道你定义的变量类型是什么。

与 Java 相对Java 就可以定义空对象,然后在运行的时候进行初始化。

本地变量和全局变量

这个定义比较简单,就是定义在函数内的变量为本地变量。

如果变量定义在函数外,那么这个变量就是全局变量。

变量实例

针对上面有关变量的定义,我们将会在下面对变量的定义进行一些实际上的应用。

定义变量和使用变量

下面的代码显示了对变量的定义和使用。

# 创建变量和指定变量类型
x = 1  # 变量赋值定义一个变量x
print(id(x))  # 打印变量x的标识
print(x + 1)  # 使用变量

x = 2  # 量赋值定义一个变量x
print(id(x))  # 此时的变量x已经是一个新的变量
print(x + 1)  # 名称相同但是使用的是新的变量x

x = 4  # x 是整数类型的
x = "OSSEZ"  # x 类型将会修改为字符串
print(x)

当你运行上面的程序后,程序将会输出为:

2131838986544
2
2131838986576
3
OSSEZ

python-v-01|674x500

从上面的代码,你可以看到 Python 是如何定义变量的,并且 Python 的变量是如何被修改的。

id 是一个获得 Python 对象 ID 的函数。

在 Python 中是使用对象的,因此你定义的变量是一个对象,使用 id 这个函数可以找到你定义对象的引用。

变量类型转换

和所有的程序语言都一样,如果使用了变量,但是变量是不同的数据类型,那么就会涉及到类型的转换。

Python 也提供了一些类型转换的函数,能够用于帮你将 Python 的变量类型完成转换。

考察下面的代码:

# 类型转换
x = str(3)  # x will be '3'
y = int(3)  # y will be 3
z = float(3)  # z will be 3.0

经过上面的函数进行转换后,不同的变量将会被使用不同的变量类型。

python-v-02|690x238

通过 IDE 的调试窗口,我们就可以看到变量被定义的类型和使用。

获得变量类型

如果你对你 Python 使用的变量类型不是非常清楚的话,你可以使用函数 type 来获得变量的类型。

通常如果使用 IDE 的话IDE 会告诉你的变量类型是什么。

考察下面的代码:

x = 5
y = "John"
print(type(x))
print(type(y))

上面的代码将会输出

<class 'int'>
<class 'str'>

通过上面的输出内容,我们就非常容易明白在 Python 中你定义的变量使用的数据类型是什么。

python-v-03|690x364

如果我们使用 IDE 的调试模式的话,我们可以非常容易的在 IDE 中设置断点。

然后通过断点的查看数据类型来查看你定义的数据类型是什么。