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. 变量的范围


致读者: 小时百科一直以来坚持所有内容免费无广告,这导致我们处于严重的亏损状态。 长此以往很可能会最终导致我们不得不选择大量广告以及内容付费等。 因此,我们请求广大读者热心打赏 ,使网站得以健康发展。 如果看到这条信息的每位读者能慷慨打赏 20 元,我们一周就能脱离亏损, 并在接下来的一年里向所有读者继续免费提供优质内容。 但遗憾的是只有不到 1% 的读者愿意捐款, 他们的付出帮助了 99% 的读者免费获取知识, 我们在此表示感谢。

                     

友情链接: 超理论坛 | ©小时科技 保留一切权利