zoukankan      html  css  js  c++  java
  • 3.Python常用逻辑运算符

     

    一、算术运算符

    In [1]:
    a = 9
    b = 2
    
    In [2]:
    #乘
    result = a * b
    print('{}*{}={}'.format(a, b, result))
    
     
    9*2=18
    
    In [3]:
    #除
    result = a / b
    print('{}/{}={}'.format(a, b, result))
    
     
    9/2=4.5
    
    In [4]:
    #幂
    result = a ** b
    print('{}**{}={}'.format(a, b, result))
    
     
    9**2=81
    
    In [5]:
    #整除
    result = a // b
    print('{}//{}={}'.format(a, b, result))
    
     
    9//2=4
    
    In [6]:
    #取模
    result = a % b
    print('{}%{}={}'.format(a, b, result))
    
     
    9%2=1
    
     

    二、逻辑运算

     

    2.1 数值逻辑

    In [7]:
    n1 = int(input('请输入第一个数'))
    n2 = int(input('请输入第二个数'))
    
     
    请输入第一个数100
    请输入第二个数200
    
    In [8]:
    result = n1 > n2
    print('%d > %d is %s' %(n1, n2, result))
    
     
    100 > 200 is False
    
    In [9]:
    result = n1 < n2
    print('%d < %d is %s' %(n1, n2, result))
    
     
    100 < 200 is True
    
    In [10]:
    result = n1 == n2
    print('%d == %d is %s' %(n1, n2, result))
    
     
    100 == 200 is False
    
    In [11]:
    result = n1 != n2
    print('%d != %d is %s' %(n1, n2, result))
    
     
    100 != 200 is True
    
     

    2.2 字符串逻辑

    In [12]:
    UserName_Check = 'xiaoming'
    
    In [13]:
    UserName = input('请输入姓名:')  #输入错误用户名
    
     
    请输入姓名:xiaoqiang
    
    In [14]:
    result = UserName_Check == UserName
    print('输入匹配是:%s' %(result))
    
     
    输入匹配是:False
    
    In [15]:
    UserName = input('请重新输入姓名:') #输入正确用户名
    
     
    请重新输入姓名:xiaoming
    
    In [16]:
    result = UserName_Check == UserName
    print('输入匹配是:%s' %(result))
    
     
    输入匹配是:True
    
     

    2.3 对象的比较

    In [17]:
    Num1 = 100
    Num2 = 100
    print(id(Num1), Num1)
    print(id(Num2), Num2)
    print(Num1 is Num2)
    
     
    140719116754848 100
    140719116754848 100
    True
    
     

    2.4 and or not

     

    and 逻辑与

    or 逻辑或

    not 逻辑非

     

    2.5 注意:python中存在小整数对象池和大整数对象池问题。

    1.小整数对象池

    整数在程序中的使用非常广泛,Python为了优化速度,使用了小整数对象池, 避免为整数频繁申请和销毁内存空间。Python 对小整数的定义是 [-5, 256] 这些整数对象是提前建立好的,不会被垃圾回收。在一个 Python 的程序中,无论这个整数处于LEGB中的哪个位置,所有位于这个范围内的整数使用的都是同一个对象。同理,单个字母也是这样的。

    2.大整数对象池

    终端是每次执行一次,每次的大整数都重新创建,而在python源文件中,每次运行是所有代码都加载都内存中,属于一个整体,所以这个时候会有一个大整数对象池,即处于一个代码块的大整数是同一个对象

    而在终端交互模式中,即使执行相同的终端命令,不同交互模式下的每个大整数变量分别有自己的代码块内存,申请存储大整数的内存空间也不同,所以不相等

    详细实验如下:

     

    终端模式下的大整数对象池(不同的内存块定义大整数):

    In [18]:
    Num1 = 10000
    
    In [19]:
    Num2 = 10000
    
    In [20]:
    print('Num1:', Num1, id(Num1))
    print('Num2:', Num2, id(Num2))
    print('Num1 is Num2: ', (Num1 is Num2))
    
     
    Num1: 10000 2243219552560
    Num2: 10000 2243219553296
    Num1 is Num2:  False
    
     

    源文件模式下的大整数对象池(同一个内存块定义大整数):

  • 相关阅读:
    ASP.NET中级学习3
    C#面向对象学习笔记
    Javascript学习笔记
    FormView控件使用
    ASP.NET初级学习
    ListView控件是使用
    Java NIO 学习笔记一
    堆栈和托管堆 c#
    安装php7.2并且整合nginx且分开部署
    Python 安装requests和MySQLdb
  • 原文地址:https://www.cnblogs.com/King-Penguin/p/12079658.html
Copyright © 2011-2022 走看看