变量
(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)——专注计算&助力科研
面向各大高校、科研院所、企事业单位,提供高性能计算产品解决方案