常量

  • 是内存中用于保存固定值的单元,在程序中常量的值不能发生改变;python并没有命名常量,也就是说不能像C语言那样给常量起一个名字。
  • python常量包括:数字、字符串、布尔值、空值

>>> 'python'
'python'
>>> 3
3
>>> True
True
>>> []
[]

 

变量

  • Python 中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。
  • 在 Python 中,变量就是变量,它没有类型,我们所说的"类型"是变量所指的内存中对象的类型。
  • 等号(=)用来给变量赋值。
  • 等号(=)运算符左边是一个变量名,等号(=)运算符右边是存储在变量中的值

 

#变量在使用前必须先"定义"(即赋予变量一个值),否则会出现错误:
>>> n   # 尝试访问一个未定义的变量
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'n' is not defined

#变量赋值
>>> counter = 100          # 整型变量
>>> miles   = 1000.0       # 浮点型变量
>>> name    = "runoob"     # 字符串
>>> print (counter)
100
>>> print (miles)
1000.0
>>> print (name)
runoob

#交换变量值
>>> a=1
>>> b=2
>>> id(a)
1755082208
>>> id(b)
1755082240
>>> a,b=b,a
>>> print(a,b)
2 1
>>> id(a)
1755082240
>>> id(b)
1755082208
思考:为什么一步操作就可以交换两个值?
python的变量并不是直接存储值,而只是引用一个内存地址,交换变量时,只是交换了引用的地址,
即a,b=b,a的执行过程是---->先是变量a被赋“b值”的内存地址,然后变量b被赋“a值”的内存地址



#多个变量赋值
>>> a = b = c = 1
>>> print(a,b,c)
1 1 1
>>> a, b, c = 1, 2, "python"
>>> print(a,b,c)
1 2 python
 

 

 

 

 

 

 

 

id(身份标识)

>>> a=1
>>> id(a)    #id表示一个值在内存中的位置,可以判断两个值是否是同一个对象
498232336
>>> id(a)   #id值相同表示两个值在内存中同一个地方,是同一个东西
498232336
>>> b=300
>>> id(b)
59417712
>>> id(30)
498233264

 注:python中1-256之间的数字在内存中存在在同一个位置

示例:

>>> a=1001
>>> a is 1001
False
>>> b=1
>>> b is 1
True

#引用赋值(内存地址相同)

>>> a=1000
>>> id(a)
57192176
>>> b=a  #=引用赋值
>>> id(b)
57192176

 

练习:写一个程序,找到id不一样的那个数,从1开始遍历后面的数,找到第一个不一样的数

算法:

1.生成300个数  for

2.拿一个数与之对比,判断id值是否相等 申明一个常量,每次比较后+1

3.找到后停止循环,并打印

>>> num =0
>>> for i in range(300):
...     if id(i) != id(num):
...         print(i)
...         break
...     num +=1
...
257
posted on 2019-10-01 20:36  腿短毛不多  阅读(278)  评论(0编辑  收藏  举报