• 3.Python运算符详解


    1.算数运算符

    符号:+   -   *   /   %(取余、取模)   //(取整)   **(开方)

    2.比较运算符

    符号:>   >=   <   <=   ==(全等)   !=(不等于)

    特点:比较运算的结果一定是布尔值(True/False)

    print(7 >= 3)   #True

    print(7 < 3)    #False

    3.赋值&混合赋值运算符

    赋值运算符符号:=

    混合赋值运算符符号:+=   -=   *=   /=   %=

    a += 4      #相当于:a = a + 4

    a += b      #相当于:a = a + b

    4.逻辑运算符

    需求:a = 6    3<a<9(数学的实现,但是多数计算机语言不支持,python支持)

    拆分:a > 3    a < 9   两个表达式之间需要使用逻辑运算符来进行关联

    符号:and(逻辑与,并且,去交集)、or(逻辑或,或者,取并集)、not(逻辑非,取反)

    特点:运算符两侧的数据类型一定是布尔型,结果也是布尔型

    模板:

    对于and操作而言:

                    True and True           结果:True

                    True and False          结果:False

                    False and True          结果:False

                    False and False         结果:False

    总结:and操作,满足一假即假的特点,理解为:对False敏感

    对于or操作而言:

                    True or True           结果:True

                    True or False          结果:True

                    False or True          结果:True

                    False or False         结果:False

    总结:or操作,满足一真即真的特点,理解为:对True敏感

    对于not操作而言:

                    not True        结果为:False

                    not False       结果为:True

    5.位运算符

    长处:是运算效率最高的运算符,直接是底层二进制的运算

    符号:&(按位与)、|(按位或)、^(按位异或)(相异就为一)、<<(左移)、>>(右移)

    模板:

    对于按位与操作而言:(全1才为1)

                        9 & 5,结果为多少?    1

                        9:0000 1001

                        5:0000 0101

                   结果:0000 0001

    对于按位或操作而言:(有1就为1)

                        9 | 5,结果为多少?    13

                        9:0000 1001

                        5:0000 0101

                   结果:0000 1101

    对于按位异或操作而言:(相异就为1)

                        9 ^ 5,结果为多少?    12

                        9:0000 1001

                        5:0000 0101

                   结果:0000 1100

    对于<<(左移)操作而言:

                        9 << 2,结果为多少?   36

                        9:0000 1001

                   结果:00 100100

    对于>>(右移)操作而言:

                        9 >> 2,结果为多少?   2

                        9:0000 1001

                   结果:0000 0010

    6.成员运算符

    作用:运用对于容器对象的判断,结果都是布尔值;判断某个元素是否存在于容器中

    符号:in  /  not in

    1 str1 = "abcdefg1234567"
    2 print("c" in str1)      #True
    3 
    4 dic1 = {"name":"Tom","age":30}
    5 print("name" in dic1)   #True
    6 print("Tom" in dic1)    #False

    【注意】对于dict对象,只能判断键是否存在,对于值是无效的(永远返回False)

    补充: 何为表达式?

    大白话:凡是计算可以得出个值的就是表达式

    何为条件表达式?

    大白话:在表达式的基础上,最终结果一定是布尔值

    7.三元/三目运算符

    格式:【表达式1 if 条件表达式 else 表达式2】。执行流程:会先执行条件表达式,如果执行结果为True,那么就会执行表达式1,并且将表达式1的结果作为整个三元运算的最终结果;如果执行结果为False,那么就会执行表达式2,并且将表达式2的结果作为整个三元运算的最终结果

    例如:比较两个数的大小,得到较大值

    1 print(a if a > b else b)

    三元运算符就是python语法糖之一。【补充一个python语法糖:列表生成式】

    作用:执行完毕之后会返回给程序一个列表对象,在不破坏原本复杂需求的同时;更加便捷的得到一个列表对象(代码更加简短)。格式: 【expr for ver1,[ver2],... in 序列对象(range、str、list、tuple、dict...) if ...

     1 # 案例1:得到[1,2,3,...,10]列表对象
     2 print([x for x in range(1,11)])
     3 
     4 # 案例2:得到 1*1,2*2,3*3,...,10*10的一个列表对象
     5 print([x ** 2 for x in range(1,11)])
     6 
     7 # 案例3:得到 1*1,2*2,3*3,...,10*10的一个列表对象,元素只接受偶数的乘积值
     8 print([x ** 2 for x in range(1,11) if x % 2 == 0])
     9 
    10 #案例4:实现全排列,str1 = 'ABC',str2 = 'XYZ',得到效果如下:['AX','AY','AZ','BX','BY',...,'CZ']
    11 print([x + y for x in str1 for y in str2])
    12 
    13 # 案例5:字典对象:{'aa':'AA','bb':'BB','cc':'CC'},得到字典对象的键和值,然后组合成为如下数据存入到列表中返回:得到['aa=AA','bb=BB','cc=CC']
    14 print([k + '=' + v for k,v in dic1.items()])
    15 
    16 # 案例6:将列表lt = ['PYTHON','Java','PHP','IOS'] 中的每个字符串元素都转换为全小写返回,得到:['python','java','php','ios']
    17 print([x.lower() for x in lt])
    18 
    19 #需求7:将列表lt = ['PYTHON','Java','PHP','IOS',200]中的每个字符串元素都转换为全小写返回,得到:['python','java','php','ios']
    20 # print([x.lower() for x in lt])    # AttributeError类型错误
    21 print([x.lower() for x in lt if isinstance(x,str)])

    【注意事项】上面代码的需求7中,lower()函数是属于字符串类型独有的函数,而lt中200是int类型的数据,一旦尝试调用lower()就会报错(非法的,不允许的);这里可以使用内置函数:isinstance(obj,type)解决。isinstance(obj,type)函数的作用:判断obj对象是否属于type类型,如果类型匹配,则返回True,反之,返回False。

  • 相关阅读:
    vuejs cli3 env配置文件实践指南
    Nginx的rewrite(地址重定向)剖析
    什么是TCP粘包?怎么解决这个问题
    windows bat批处理语法简析
    BAT文件语法和技巧(bat文件的编写及使用)
    Asyncio之EventLoop笔记
    python struct的使用例子
    redis慢查询笔记
    redis基础操作概念等笔记
    Python实现Dijkstra算法
  • 原文地址:https://www.cnblogs.com/bonheur/p/11924028.html
Copyright © 2020-2023  润新知