• python05入门——基本运算符


    一、算术运算符

    +、-、*、/、**、%、//

    print(10 + 3)  # 输出:13
    print(10 - 3)	 # 输出:7
    print(10 * 3)	 # 输出:30
    print(10 / 3)  # 输出:3.3333333333333335
    print(10 ** 3) # 次方 输出:1000
    print(10 % 3)  # 取余 输出:1
    print(10 // 3) # 地板除——保留整数 输出:3
    

    二、比较运算符

    =、==、>、<、>=、<=、!=

    x=20
    y=23
    print(x==y) # ==是否相等,输出False
    print(x!=y) # !=是否不相等,输出True
    

    注意:数字类型之间可以比较大小,但不可以与字符串之间进行比较

    x=22
    b="123"
    print(x > b)
    # 报错:TypeError: '>' not supported between instances of 'int' and 'str'
    # 字符串跟整型数值进行比较,类型不匹配导致报错
    

    同类型之间可以进行比较,str按照ascii码表进行比较,列表按照索引进行比较

    print("abc" > "az")  # 输出:False
    print([1,2,3] < [1,3,4]) # 输出:True
    

    三、赋值运算符

    +、+=、-=、*=、/=、**

    3.1 增量赋值

    age=10
    age +=2    # age =age+2
    age -=2		 # age = age-2
    age **=2   # age = age*age
    age *=2    # age = age*2
    age /=2    # age = age/2
    print(age)
    

    3.2 链式赋值

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

    3.3 交叉赋值

    x=10
    y=20
    
    # 第一种
    temp=x  # 把x再赋值一次给一个变量名
    x=y
    y=temp
    
    # 第二种
    x,y=y,x
    print(x,y)
    

    3.4 解压赋值

    salary = [1.1,2.2,3.3,4.4,5.5]
    mon1=salary[0]
    mon2=salary[1]
    mon3=salary[2]
    mon4=salary[3]
    mon5=salary[4]
    mon1,mon2,mon3,mon4,mon5 =salary
    print(mon1,mon2,mon3,mon4,mon5)
    # 变量名多一个不行少一个也不行,必须与值一一对应
    # mon1,mon2,mon3,mon4,mon5,mon6=salary
    # mon1,mon2,mon3,mon4=salary
    # 报错:ValueError: not enough values to unpack(expected 6, got 5)
    #	期望有5个返回值,但函数有6返回值
    

    取前三个值

    *代表所有,_下划线相当于一个变量名,把不需要解压的全部赋值给下划线

    mon1,mon2,mon3,*_=salary
    print(mon1,mon2,mon3) # 输出:1.1 2.2 3.3
    # 取下划线内所有的值
    print(_)  # 输出:[4.4, 5.5]
    

    取前2个和最后一个

    mon1,mon2,*_,mon5=salary
    print(mon1,mon2,mon5)  # 输出:1.1 2.2 5.5
    

    解压字典取出的是key

    dic={"k1":111,"k2":222,"k3":333}
    x,y,z=dic
    print(x,y,z)  # 输出:k1 k2 k3
    
    x,*_=dic
    print(x)   # 输出:k1 
    # 通过key取value
    print(dic[x])  # 输出:111
    # 注意:字典取值用[]
    

    四、逻辑运算符

    一、优先级: not > and > or

    not:代表把紧跟其后的条件结果取反

    print(not 10 > 3)  # False
    

    and:连接左右两个条件,左右两个条件必须同时成立,最终结果才为True

    print(True and 1 > 0 and "aaa" == "aaa")  # True
    print(True and 1 < 0 and "aaa" == "aaa")  # False
    

    or:连接左右两个条件,左右两个条件但凡是有一个成立的,最终结果才为True

    print(True or 1 < 0 or "aaa" == "aaa")  # True
    print(False or 1 < 0 or "aaa" != "aaa")  # False
    #      False   False           False
    

    注意

    not与紧跟其后的那个条件是不可分割的

    如果条件语句全部由纯and、或纯or链接,按照从左到右的顺序依次计算既可

    print(True and 10 > 3 and not 4 < 3 and 1 == 1)  # True
    print(False or 10 < 3 or not 4 < 3 or 1 == 1)	   # True
    

    三者混合用时,以and为中心把左右两个条件用括号括起来

    # res = 3 > 4 and 4 > 3 or not 1 == 3 and 'x' == 'x' or 3 > 3
    
              false         or             true        or     false
    res = (3 > 4 and 4 > 3) or (not 1 == 3 and 'x' == 'x') or 3 > 3
    print(res)  # 输出:True
    

    二、短路运算=》偷懒原则

    1、所有数据类型的值都自带布尔值,所以值可以直接被当成条件使用

    2、0、None、空对应的布尔值为False,其余为True

    if 0:
        print('ok')
    else:
        print('打印')
    
    
    if None:
        print('yes')
    else:
        print('NO')
    
        
    if 3 and []:
        print('真')
    else:
        print('假')
        
    # 打印
    # NO
    # 假
    
    

    3、and运算会返回当前计算位置的值

    print(1 and 3)  # 3
    # 数字3为True,算到3打印3
    
    print(1 and 3 or 4)  # 3
    # 数字3为True,算到3后条件成立则直接打印3
    
  • 相关阅读:
    POJ 2996 Help Me with the Game (模拟)
    PCL系列——怎样逐渐地配准一对点云
    sublime text3同时编辑多行
    博客搬家
    将博客搬至CSDN
    centos7用xshell可以连接, xftp连接失败!(墙裂推荐)
    重启ssh服务出现Redirecting to /bin/systemctl restart sshd.service
    重装wordpress
    ubuntu 16.04 启用root用户方法
    Ubuntu创建新用户并增加管理员权限(授权有问题)
  • 原文地址:https://www.cnblogs.com/yueqiuqiu/p/14004787.html
Copyright © 2020-2023  润新知