Python-06-变量 | Python 主题月

166 阅读3分钟

本文正在参加「Python主题月」,详情查看 活动链接

变量是什么

变量:记录事物变化的状态。

类似数学中的解方程,最后求得x=1,意思就是x代表1。

为了让计算机具备人的某项功能,能更好的完成人类下达的任务,由此诞生了变量。

变量怎么声明

# 变量名 赋值符号 变量值
name = "Tom"

变量的命名规范

  1. 为了提高自己在程序员中的地位,切记不可用拼音。

  2. 为了提高自己在程序员中的地位,切忌不可用中文。

  3. 不可使用Python中的关键字。

  4. 不可数字开头。

常用的命名风格

  1. 纯小写+数字+下划线。变量名一般会采用这种方式。

  2. 驼峰体。第一个单词小写,其余单词首字母大写。

  3. 纯大写。这一般是用来定义程序中的常量。注意,这是约定俗成的规范,不是Python本身的语法。

变量的特性

每个变量都有一个在内存中的地址,称为:id。

每个变量在被赋值后都有不同类型,使用type内置方法可查看。

判断两个变量是否相等,可以使用is和==。

  • is:判断两个变量是否属于同一内存空间,即id是否相等。

  • ==:仅仅判断两个变量的值是否相等。

>>> x = 1
>>> y = 1
>>> x is y
True
>>> x == y
True
>>> q = 666
>>> p = 666
>>> q is p
False
>>> q == p
True

为什么变量等于1的时候,is判断相等呢?而变量等于666的时候,is判断不相等呢?

再看一段代码:

>>> def jj():
...     j = 666
...     k = 666
...     return j is k
...
>>> jj()
True
>>>

总结一下:

小整数池[-5,256]是全局解释器范围内被重复使用,永远不会被GC回收。

同一个代码块中的不可变对象,只要值是相等的就不会重复创建新的对象。

Python的关键字

image.png

总计35个关键字,列表如下:

  1. class

定义类

  1. def

用来定义方法

  1. import

包导入

  1. return

用来跳出函数,可同时返回一个值

  1. pass

类或者方法具体实现未想好时可以用pass暂代,避免报错

  1. lambda

匿名函数,不想给函数起名字,如:lambda x,y: x*y

  1. yield
def fab(max):
    a,b = 0,1
    while a < max:
        yield a
        a, b = b, a+b
 
for i in fab(20):
    print i,",",

结果: 0 , 1 , 1 , 2 , 3 , 5 , 8 , 13 ,

  1. global

定义全局变量,要给全局变量赋值,就需要加上global

  1. from

导入模块,import 或者 from...import

  1. if

如果

  1. elif

再如果

  1. else

不然

if a > b:
    print"a > belif a < b:
    print"a < b"else:
    print"a = b"
  1. for

for...in...一起使用,在一序列的对象上递归,遍历队列中的每个项目

  1. in

查找类别中是否包含某个元素,或者字符串a是否包含字符串b,不可查找list1是否包含list2

  1. None

空,无,假

  1. while

语序重复执行一块语句,一般无限循环的情况使用它

  1. with

  2. as

with...as 代替传统的try...finally语法,with所求对象必须有一个__enter__() 和一个__exit__()方法

  1. False

  2. True

  3. or

逻辑或

  1. and

逻辑与

  1. not

逻辑非

  1. continue

跳过continue后面循环块中的语句,继续进行下一轮的循环

  1. break

终止循环

  1. try

  2. except

  3. finally

try:
    f = open('xxx')
except:
    print'fail to open'
    exit(-1)
try:
    do something
except:
    do something
finally:
    f.close() 
  1. raise

可以显示的抛出异常,一旦执行raise语句,后面的代码就不执行了

  1. async

  2. await

  3. del

用于list列表操作,删除一个或者连续几个元素

  1. nonlocal

nonlocal是Python3新增的关键字,用于告知Python后面的变量定义在其他地方,不要在本函数中定义出一个新的局部变量。

  1. is

Python中的对象包含三要素:id、type、value。

id 用来唯一标识一个对象,type标识对象的类型,value是对象的值。

is用来判断对象a是否是对象b,用id来判断。

== 判断对象的value是否相等。

  1. assert

断言,如果断言出错则抛出异常 AssertionError