zoukankan      html  css  js  c++  java
  • python入门day05——基本运算符、逻辑运算符

    一、基本运算符

    1、算数运算符

    print(10+3) # 13
    print(10-3) # 7
    print(10*3) # 30
    print(10/3) # 3.3333333333333335
    print(10//3)  # 3 整除 地板除
    print(10%3)  # 1 取余 取余数部分
    

           了解(* *) +号不仅可以数字和数字相加 还可以字符串和字符串 列表和列表相加

    x = 'aaa'
    y = 'bbb'
    print(x + y) # aaabbb
    print([1,2,3] + [4,5]) # [1, 2, 3, 4, 5]
    
    x = 'aaa'*3
    print(x) # aaaaaaaaa
    

    2、比较运算符

    print(10 == 10)
    print(10 != 3)
    print(10 > 3)
    print(10 < 3)
    print(10 >= 3)
    print(10 <= 3)
    

            了解

    s1 = 'abced'
    s2 = 'az'
    print(s2>s1) # True
    # 字符串可以比大小 比较的是ASCII码 一个一个比 比出结果为止 比如a和a比不出 下一个b<z
    
    s1 = [123,123]
    s2 = [111]
    print(s1 <s2) False
    
    
    l1 = [1, 'abc', 3.1]
    # l2 = [1, 2222, 3.1]
    l2 = [1, "abb", 3.1]
    print(l1 > l2) True
    

    3、赋值运算符

           1.增量赋值

    age = 18
    age += 1  # age = age + 1
    print(age)
    age -= 2  # 减法赋值运算符 c-=a等效于c=c-a
    print(age)
    age *= 2  # 乘法赋值运算符 c*=a等效于c=c*a
    age /= 2  # 除法赋值运算符 c/=a等效于c=c/a
    age %= 2  # 取模赋值运算符 C %=a等效于c=c% a
    age **= 2  # 幂赋值运算符 c**=a等效于c=ca
    age //= 2  # 取整除赋值运算符 c//=a等效于c=c//a
    

           2.交叉赋值

    x = 111
    y = 222
    x, y = y, x
    print(x, y)
    

           3.链式赋值

    x = y = z = 10
    print(id(x),id(y),id(z))
    

           4.解压赋值

    salaries = [111,222,333,444,555]
    
    m0,m1,m2,m3,m4=salaries
    print(m0)  # 111
    print(m1)  # 222
    print(m2)  # 333
    print(m3)  # 444
    print(m4)  # 555
    
    x, y, z = {'k1': 111, 'k2': 222, 'k3': 333}
    dic = {'k1': 111, 'k2': 222, 'k3': 333}
    x, y, z = dic
    print(x, y, z)  # k1 k2 k3
    print(dic[x], dic[y], dic[z])  # 111 222 333
    
    
    x, y, z,a,b = "hello"
    print(x)  # h
    x,*_,a,b = "hello"
    print(x,a,b)  # h l o
    

           注意变量名与值得个数必须一一对应

    # m0,m1,m2,m3,m4,m5=salaries # 报错  多一个变量名不行
    # m0,m1,m2,m3=salaries # 报错 少一个变量名不行
    

           引入'''':''''可以帮助我们取两头的值,无法取中间的值

    salaries = [111, 222, 333, 444, 555]
    m0, m1, *_ = salaries
    print(m0)  # 111
    print(m1)  # 222
    print(*_)  # 333
    
    *_,x,y=salaries
    print(x,y)  # 444 555
    x,*_,y,z=salaries
    print(x,y,z)  # 111 444 555
    _,*middle,_=salaries
    print(middle) # [222,333,444]
    

           会将没有对应关系的值存成列表然后赋值给紧跟其后的那个变量名,此处为_,可用其他符号x、*xxx
           一般用'_'代表的是废弃 不打算用这个东西

    二、逻辑运算符

    条件

           只要能得到True或False两种值的东西都能当作条件
           1、显式的布尔值:表面上看就能看出true或false

    #(1)比较运算的结果
    print(10 > 3)
    print(10 == 3)
    #(2)变量值直接就是True或False
    tag = True
    

           2、隐式的布尔值:表面上看上去是一种值,在底层会被解释器转换成True或False
           0、None、空(包括空列表、空字典)对应的布尔值为False、其余值对应的布尔值均为True

    # 10
    # 3.1
    # ""
    # []
    # {"k1":222}
    # None
    

    逻辑运算符

           用来连接多个条件
           (1)not 条件:对条件的结果取反
           (2)条件1 and 条件2:连接左右两个条件,两个条件必须都为True,最终结果才为True
           (3)条件1 or 条件2:连接左右两个条件,两个条件只要有一个为True,最终结果就为True
           (4)优先级:not > and > or,推荐用括号去标识优先级

    #        False    or          True
    res=(3 > 4 and 4 > 3) or (not (1 == 3 and 'x' == 'x')) or 3 > 3
    print(res) # True
    
    print(10 and 0)  # 0
    print(10 and False)  # False
    print(10 or False)  # 10
    
  • 相关阅读:
    JS在ff和ie区别(未完,待续...)
    得出一年中已过的天数
    div高度随浏览器变化
    offsetTop,offsetLeft
    完美的DIV三行三列自适应高度布局
    YUI Compressor
    Android repo 出现error.GitError: manifests revlist ('^12303f87b9f90c07bf4aec4c4353ba514ee70c8a', 'HEAD', ''): fatal: bad revision 'HEAD'
    1、ECharts(中国地图篇)的使用
    2012年新浪微博用户密码泄露漏洞(图片解析)
    铁道部购票网站可能造成另一次的密码危机(转)
  • 原文地址:https://www.cnblogs.com/liuxinging/p/13274204.html
Copyright © 2011-2022 走看看