python 赋值

作者: hiekay | 来源:发表于2018-10-24 17:55 被阅读23次

    变量命名

    名称格式:(下划线或者字母)+(任意数目的字母,数字或下划线)

    注意:

    1. 区分大小写
    2. 禁止使用保留字
    3. 遵守通常习惯 (驼峰)
    4. 以单一下划线开头的变量名(_X)不会被from module import *语句导入的。
    5. 前后有下划线的变量名(_ X _)是系统定义的变量名,对解释器有特殊意义。
    6. 以两个下划线开头,但结尾没有两个下划线的变量名(__X)是类本地(压缩)变量。
    7. 通过交互模式运行时,只有单个下划线变量(_x)会保存最后的表达式结果。

    需要解释一下保留字,就是python里面保留了一些单词,这些单词不能让用户来用作变量名称。都有哪些呢?(python2和python3少有差别,但是总体差不多)

    and assert break class continue def del elif else except exec finally for from global if import in is lambda not or pass print raise return try while yield
    

    实验:

    >>> not = 3
      File "<stdin>", line 1
        not = 3
            ^
    SyntaxError: invalid syntax
    
    >>> pass = "hello,world"
      File "<stdin>", line 1
        pass = "hello,world"
             ^
    SyntaxError: invalid syntax
    
    

    在交互模式的实验室中,用保留字做变量,就报错了。当然,这时候就要换名字了。

    以上原则,是基本原则,为了让程序更具有可读性:

    • 名字具有一定的含义。比如写:n = "hiekay",就不如写:name = "hiekay"更好。
    • 名字不要误导别人。比如用account_list指一组账号,就会被人误解为是list类型的数据,事实上可能是也可能不是。所以这时候最好换个名称,比如直接用accounts。
    • 名字要有意义的区分,有时候你可能会用到a1,a2之类的名字,最好不要这么做,换个别的方式,通过字面能够看出一定的区分来更好。
    • 最好是名称能够读出来,千万别自己造英文单词,也别不要用汉语拼音缩写来做为名字,更麻烦了,还不如全拼。最好是用完整的单词或者公认的不会引起歧义的缩写。
    • 单个字母和数字就少用了,不仅是显得你太懒惰,还会因为在一段代码中可能有很多个单个的字母和数字,为搜索带来麻烦,别人也更不知道你的i和他理解的i是不是一个含义。

    总之,取名字,讲究不少。不论如何,要记住一个标准:明确

    赋值语句

    任何一个变量,在python中,只要想用它,就要首先赋值。

    语句格式:变量名称 = 对象
    还有一种赋值方式,叫做隐式赋值,通过import、from、del、class、for、函数参数。等模块导入,函数和类的定义,for循环变量以及函数参数都是隐式赋值运算。

    >>> name = "hiekay"
    
    >>> name, website = "hiekay","hiekay.github.io"     #多个变量,按照顺序依次赋值
    >>> name
    'hiekay'
    >>> website
    'hiekay.github.io'
    
    >>> name, website = "hiekay"    #有几个变量,就对应几个对象,不能少,也不能多
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    ValueError: too many values to unpack
    
    

    如果这样赋值,也得两边数目一致:

    >>> one,two,three,four = "good"
    >>> one
    'g'
    >>> two
    'o'
    >>> three
    'o'
    >>> four
    'd'
    
    

    这就相当于把good分拆为一个一个的字母,然后对应着赋值给左边的变量。

    >>> [name,site] = ["hiekay","hiekay.github.io"]
    >>> name
    'hiekay'
    >>> site
    'hiekay.github.io'
    >>> name,site = ("hiekay","hiekay.github.io")
    >>> name
    'hiekay'
    >>> site
    'hiekay.github.io'
    
    

    其实,赋值的样式不少,核心就是将变量和某对象对应起来。对象,可以用上面的方式,也许是这样的

    >>> site = "hiekay.github.io"
    >>> name, main = site.split(".")[0], site.split(".")[1]   #str.split(<sep>) 分割字符串
    >>> name
    'hiekay'
    >>> main
    'github'
    
    

    增强赋值

    在python中,将下列的方式称为增强赋值:

    增强赋值语句 等价于语句
    x+=y x = x+y
    x-=y x = x-y
    x*=y x = x*y
    x/=y x = x/y

    其它类似结构:x&=y  x|=y  x^=y  x%=y  x>>=y x<<=y  x**=y  x//=y

    例子:有一个list,想得到另外一个列表,其中每个数比原来list中的大2。可以用下面方式实现:

    >>> number
    [1, 2, 3, 4, 5]
    >>> number2 = []
    >>> for i in number:
    ...     i = i+2
    ...     number2.append(i)
    ...
    >>> number2
    [3, 4, 5, 6, 7]
    
    

    用上面的增强赋值,i = i+2可以写成 i +=2 :

    >>> number
    [1, 2, 3, 4, 5]
    >>> number2 = []
    >>> for i in number:
    ...     i +=2
    ...     number2.append(i)
    ...
    >>> number2
    [3, 4, 5, 6, 7]
    
    

    因为i +=2,比i = i+2计算更快,后者右边还要拷贝一个i。

    上面的例子还能修改:

    >>> [i+2 for i in number]
    [3, 4, 5, 6, 7]
    

    相关文章

      网友评论

        本文标题:python 赋值

        本文链接:https://www.haomeiwen.com/subject/awmxtqtx.html