变量
(1)在计算机程序中,变量不仅可以是数字,还可以是任意数据类型,
变量子啊程序中就是一个变量名表示的,变量名必须是大小写英文,数字,和"_"的组合,切不能以数字开头.
a = 1 #变量a是一个整数
1
b = "shuai" #变量b是一个字符串
1
c = True #变量c是一个布尔值True
1
(2)在python中,等号"="是赋值语句,可以把任意数据类型赋值给变量,同一个变量可以反复赋值,而且可以是不同类型的变量,例如:
a = 1 # a是整数
print(a)
a = 'A' # a变为字符串
print(a)
#赋值变量的时候,可以给一个变量赋值多次,最终赋值取决于最后一个赋值进去的值.
1
2
3
4
5
(3)变量本身类型不固定的语言称之为**动态语言,与之相对的是静态语言**
静态语言在定义变量的时候必须指定变量类型,如果赋值的时候类型不匹配,就会报错.如:java是静态语言,赋值语句如下:(// 表示注释):
int a = 1 //a是整数类型变量
a = "A" //错误:不能把字符串赋值给整形变量
1
2
和静态与言相比,动态语言更灵活,就是这个原因.
(4)赋值语句的等号不等同于数学的等号,例如:
x = 20
x = x + 2
1
2
在数学上理解x = x + 2 是不成立的,在程序中,赋值语句先计算右侧的表达式x + 2,得到结果12,再赋值给变量x,由于x之前的值是10,重新赋值后,x的值变成12.
变量在内存中的表示
当在写变量
name = "zhang"
1
时,python解释器干了两件事情:
(1)在内存中创建了一个'zhang'的字符串;
(2)在内存中创建了一个名为'name'的变量,并把这个'name'变量指向'zhang'
当然也可以把name变量的值再赋值给另一个变量name2,实际上是把变量name2指向变量name所指向的数据,如:
name = "zhang"
name2 = name
name = "shuai"
print(name2)
#最后打印的"name2"变量会是"zhang"还是"shuai"呢?
#答案是"shuai"
1
2
3
4
5
6
一行一行的执行代码,看一下执行中发什么了什么?
执行name = "zhang",解释器创建了字符串"zhang"和变量"name",并把"name"指向"zhang"
执行name2 = name,解释器创建了变量"name2",并把name2指向name指向的字符串"zhang":
执行name = "shuai",解释器创建字符串"shuai",并把name的指向改为"shuai",但name2并没有更改:
所以,最后打印变量name2的结果是"zhang"。
常量
(1)所谓常量就是不变的变量,比如常用数学常数π就是一个常量,在python中通常用**变量名全部大写**来表示常量.
PAI = 3.1415926
1
(2)但事实上PAI仍然是一个变量,python根本没有任何机制保证PAI不会改变,所以用全部大写的变量名只是一个标注或者是习惯用法,如果仍然要改变PAI变量值,也是没有人能拦住的!!!

海普森(Hipeson)——专注计算&助力科研
面向各大高校、科研院所、企事业单位,提供高性能计算产品解决方案




