Python 的变量

                     

贡献者: addis; 叶燊Leafshen

  • 本文处于草稿阶段。

1. Python 中的变量

   Python 中的变量(variable) 和数学中的不同,Python 的变量可以理解为一个储存数值的容器,我们可以用等号把一个数值储存在一个变量中。例如要计算一个长方体的体积,我们既可以直接把三个数字相乘,也可以先把这三个数字赋值给三个变量然后相乘

a = 1
b = 2
c = 3
volumn = a*b*c

   要强调的是,这里的等号并不是数学上的等于,而是赋值,即把等号右边得到的数值储存在左边的变量中。在第 4 行执行时,计算机会先计算等号右边表达式的结果 6,然后将 6 储存在变量 volumn 中。volumn 这个变量中并不会包含 a*b*c 这个信息,只储存 6 这个数值。所以改变 a, b, cvolumn 的值并不会自动改变。

   如果要让长方形的某个边长增加 1,我们可以执行

a = a + 1
如果将等号理解为数学上的等于,这个式子显然是错的。但正确的理解是,先把 a 当前的值 1 加上 1 得到 2,然后把 2 赋值a。由于我们没有给 volumn 重新赋值,它仍然是 6,要更新 volumn,只需要重新执行
volumn = a*b*c
并用 print(volumn) 显示新的值。

   等效地,我们也可以用自加运算 +=,将 a = a + 1 记为

a += 1
注意 += 是一个整体的算符,中间不能有空格。类似的运算还有 -=*=/= 等。

2. Python 基本变量类型

   bool(布尔型),int(整型)(长度不限),float(浮点型)(双精度浮点),complex(复数,如 2+3j),str(字符串)。注意 python 本身没有定义单精度浮点数,但在 numpy 库中有 float32 类型。我们可以用 type() 函数查看某个变量的类型。例如执行

n = 123; x = 3.14; print(type(n)); print(type(x))
结果为
<class 'int'>
<class 'float'>;
判断变量是否为某个类型
type(i) == int # true

   用 is 判断两个变量是否是同一个对象,例如 a = [1,2,3]; b = [1,2,3];,那么 a == b 返回 Truea is b 返回 False。此时改变 a 的元素,b 不会改变。但若令 b = a;,那么 a, b 会同时改变,此时 a is ba == b 都返回 True

3. 整数

   与一些编译语言不同,Python 的整数类型(integer)没有长度限制(除超出了内存大小)。例如

print(12345678901234567890123456789 + 1)
的结果为 12345678901234567890123456790

   默认情况下整数用十进制表示,如果需要输入 2 进制(binary),可以在前面加 0b0B,例如 0b1001 表示 10 进制的 9。类似地,0o0O 开头表示 8 进制(octal)0x0X 开头的表示 16 进制(hexadecimal),16 进制中的 10 到 15 分别用大写或小写字母 af 表示。例如 0xff 表示十进制的 255。不同进制的整数同样 int,同样没有长度限制。

4. 类型转换

   转换格式为 类型(变量)。例如 int('123') 会把字符串 '123' 变为整数 123

"'我们在这里完整列举一下'"
a = "小时百科"  # str 字符串
b = 23 # int 整型
c = 5.2 # float 浮点型
d = True # bool 布尔型
int(c) # 返回整型 5 (向零取整)
str(b) # 返回字符串 "23"
float(d) # 返回 1.0
bool(a) # 返回 True (只有空字符串返回 False)
bool(b) # 返回 True (只有 0 返回 False)
bool(c) # 返回 True (只有 0.0 返回 False)

5. 字符串

   raw string:r'foo\nbar' 其中 \n 会被当成两个字符。

6. 变量和对象

   和 C 语言类似的语言不同,Python 中的变量和对象(object)是分开考虑的。对象可以理解为内存上的一小段某类型的数据,而变量是指向对象的一个名称。例如两个变量可以指向同一个对象,要判断变量 ab 是否指向同一个对象,用 a is b,返回一个 bool

7. 变量的范围

                     

© 小时科技 保留一切权利