Python全栈之路系列之赋值与运算符

作者: 2890bd62c72a | 来源:发表于2019-10-08 23:01 被阅读0次

    在继续下面的文章之前我们先来浏览一下Python为我们提供的几种运算符,定义两个变量,分别是a和b,a的值是10,b的值是20。

    算术运算符

    运算符 描述 实例
    + 加,两个对象相加 a+b=30
    - 减,两个对象相减,可能会得到负数 a-b=-10
    * 乘,两数相称或是返回一个被重复若干次的字符串 a*b=200
    / 除,两个对象相除 b/a=2
    % 取膜,返回除法的余数 b%a=0
    ** 幂,返回x的y次幂 a**b=100000000000000000000L
    // 整除余,返回商的整数部分 a//b=0

    比较运算符

    运算符 描述 实例
    == 等于,比较两个对象是否相等 a==b返回False
    != 不等于,比较两个对象是否不相等 a!=b返回True
    <> 不等于,比较两个对象是否不相等 a<>b返回True
    > 大于,比较x是否大于y, a>b返回False
    < 小于,比较x是否小于y a<b返回True
    >= 大于等于,比较x是否大于等于y a>=b返回False
    <= 小于等于,比较x是否小于等于y a<=b返回True

    赋值运算符

    运算符 描述 实例
    = 赋值运算符 c=a+b,将a+b的运算结果赋值给c
    += 加法赋值运算符 c += a等效于c = c + a
    -= 减法赋值运算符 c -= a等效于c = c - a
    *= 乘法赋值运算符 c *= a等效于c = c * a
    /= 除法赋值运算符 c /= a等效于c = c / a
    %= 取模赋值运算符 c %= a等效于c = c % a
    **= 幂赋值运算符 c **= a等效于c = c **a
    //= 取整除赋值运算符 c //= a等效于c = c // a

    逻辑运算符

    运算符 描述 实例
    and “与” a and b返回true
    or “或” a or b返回true
    not “非” no(a and b)返回false

    成员运算符

    运算符 描述
    in 如果在指定的序列中找到值返回True,否则返回False
    not in 如果在指定的序列中没有找到值返回True,否则返回false

    赋值语句的语法

    运算 解释
    spam=’Spam’ 基本形式
    spam, ham=’yum’, ‘YUM’ 元组赋值运算
    [spam, han]=[‘yum’, ‘YUM’] 列表赋值运算
    a,b,c,d=’spam’ 序列赋值运算,通用性
    a, *b=’spam’ 扩展的序列解包
    spam = ham = ‘hello’ 多目标赋值运算
    spams += 42 增强赋值运算

    实例

    序列运算

    >>> nudge = 1
    >>> wink = 2
    >>> A, B = nudge, wink
    >>> A,B
    (1, 2)
    # 嵌套的方式
    >>> ((a, b), c) = ('SP', 'AM')
    >>> a, b, c
    ('S', 'P', 'AM')
    

    扩展的序列解包

    一个列表赋给了带星号的名称,该列表收集了序列中没有赋值给其他名称的所有项。

    先定义一个seq序列用于测试:

    >>> seq = [1, 2, 3, 4]
    

    a匹配序列中的第一项,b匹配剩下的内容

    在学习过程中有什么不懂得可以加我的
    python学习交流扣扣qun,784758214
    群里有不错的学习视频教程、开发工具与电子书籍。
    与你分享python企业当下人才需求及怎么从零基础学习好python,和学习什么内容
    >>> a, *b = seq
    >>> a, b
    (1, [2, 3, 4])
    

    b匹配序列中的最后一项,a匹配序列中最后一项之前的所有内容

    >>> *a, b = seq
    >>> a,b
    ([1, 2, 3], 4)
    

    第一项和最后一项分别赋值给了ac,而b获取了二者之间的所有内容。

    >>> a, *b, c = seq
    >>> a,b,c
    (1, [2, 3], 4)
    

    带星号的名称可能只匹配单个的项,但是,总会向其赋值一个列表,如果没有剩下的内容可以匹配那么会返回一个空列表:

    >>> a,b,c,*d = seq
    >>> print(a,b,c,d)
    1 2 3 [4]
    >>> a,b,c,d,*e = seq
    >>> print(a,b,c,d,e)
    1 2 3 4 []
    

    多目标赋值语句就是直接把所有提供的变量名都赋值给右侧的对象

    >>> a = b = c = 'As'
    >>> a,b,c
    ('As', 'As', 'As')
    # 所引用的值也都是同一个
    >>> id(a),id(b),id(c)
    (4331109208, 4331109208, 4331109208)
    

    如果你依然在编程的世界里迷茫,可以加入我们的Python学习扣qun:784758214,看看前辈们是如何学习的!交流经验!自己是一名高级python开发工程师,从基础的python脚本到web开发、爬虫、django、数据挖掘等,零基础到项目实战的资料都有整理。送给每一位python的小伙伴!分享一些学习的方法和需要注意的小细节,点击加入我们的 python学习者聚集地

    相关文章

      网友评论

        本文标题:Python全栈之路系列之赋值与运算符

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