zoukankan      html  css  js  c++  java
  • Python3简明教程(三)—— 运算符和表达式

    运算符

    什么是运算符?

    举个简单的例子 4 +5 = 9 。 例子中,4 和 5 被称为操作数,"+" 称为运算符

    Python支持以下类型的运算符:

    • 算术运算符
    • 关系运算符
    • 赋值运算符
    • 逻辑运算符
    • 位运算符
    • 成员运算符
    • 身份运算符

    算术运算符

    加减乘除和取模与C语言相同,a**b 表示a^b// 表示向下取接近除数的整数。

    #!/usr/bin/env python3
    days = int(input("Enter days: "))
    months = days // 30
    days = days % 30
    print("Months = {} Days = {}".format(months, days))

    输出结果:

    shiyanlou:~/ $ ./interger.py                                    
    Enter days:256
    Months = 8 Days = 16

    还有一种更容易地方法:

    #!/usr/bin/env python3
    days = int(input("Enter days: "))
    print("Months = {} Days = {}".format(*divmod(days, 30)))

    divmod(num1, num2) 返回一个元组,这个元组包含两个值,第一个是num1和num2相整除得到的值,第二个是num1和num2求余得到的值,然后我们用 * 运算符拆封这个元组,得到这两个值。

    关系运算符

    逻辑运算符

    对于逻辑 与,或,非,我们使用 andornot 这几个关键字。

    逻辑运算符 and 和 or 也称作短路运算符:它们的参数从左向右解析,一旦结果可以确定就停止。

    关系运算可以通过逻辑运算符 and 和 or 组合,比较的结果可以用 not 来取反意。逻辑运算符的优先级又低于关系运算符,在它们之中,not 具有最高的优先级,or 优先级最低,所以 A and not B or C 等于 (A and (notB)) or C。当然,括号也可以用于比较表达式。

    下面是一些例子:

    >>> 5 and 4   # 首先判断5,肯定为true,那么最终的结果就取决于 and 后面那个的布尔值,4 的布尔值为 true,这样就可以确定整个表达式的值为 true 了,所以返回 4
    4
    >>> 0 and 4   # 首先判断0,因为 0 的布尔值为 false,那么不管 and 后面那个的布尔值是什么,整个表达式的布尔值都应该为 false 了,这个时候就不需要判断 4 了,直接返回最先确定结果的那个数也就是0
    0
    >>> False or 3 or 0
    3
    >>> 2 > 1 and not 3 > 5 or 4
    True

     赋值运算符

    除了用“=”来简单赋值,还有一类简写的赋值方法:x op= expression 为简写运算的语法形式。其等价于 x = x op expression ,举例如下:

    >>> a = 12
    >>> a += 13
    >>> a
    25
    >>> a /= 3
    >>> a
    8.333333333333334
    >>> a += (26 * 32)
    >>> a
    840.3333333333334

    位运算符

    成员运算符

    用来判断元素是否为字符串、列表或元组中的成员。

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

    例如:

    #!/usr/bin/python3
     
    a = 10
    b = 20
    list = [1, 2, 3, 4, 5 ];
     
    if ( a in list ):
       print ("1 - 变量 a 在给定的列表中 list 中")
    else:
       print ("1 - 变量 a 不在给定的列表中 list 中")
     
    if ( b not in list ):
       print ("2 - 变量 b 不在给定的列表中 list 中")
    else:
       print ("2 - 变量 b 在给定的列表中 list 中")
     
    # 修改变量 a 的值
    a = 2
    if ( a in list ):
       print ("3 - 变量 a 在给定的列表中 list 中")
    else:
       print ("3 - 变量 a 不在给定的列表中 list 中")

    其输出结果:

    1 - 变量 a 不在给定的列表中 list 中
    2 - 变量 b 不在给定的列表中 list 中
    3 - 变量 a 在给定的列表中 list 中

    身份运算符

    表达式

    通常我们书写表达式的时候,会在每一个运算符左右都放一个空格,这样使代码更可读,如:

    a = 234 * (45 - 56 / 34)

    其次,注意运算符之间的优先级,如果记不清请多加括号。

    类型转换

    Python 是强类型语言,所以必要的时候需要手动进行类型转换。

    类型转换函数转换路径
    float(string) 字符串 -> 浮点值
    int(string) 字符串 -> 整数值
    str(integer) 整数值 -> 字符串
    str(float) 浮点值 -> 字符串

    例如:

    >>> a = 8.126768
    >>> str(a)
    '8.126768'

    参考链接:

    1、https://www.shiyanlou.com/courses/596

    2、http://www.runoob.com/python3/python3-basic-operators.html#ysf6

  • 相关阅读:
    【leetcode】590. N-ary Tree Postorder Traversal
    【leetcode】589. N-ary Tree Preorder Traversal
    【leetcode】402. Remove K Digits
    【leetcode】42. Trapping Rain Water
    【leetcode】32. Longest Valid Parentheses
    【leetcode】870. Advantage Shuffle
    【leetcode】22. Generate Parentheses
    BEC translation exercise 2
    New Concept English three (50)
    BEC translation exercise 1
  • 原文地址:https://www.cnblogs.com/lfri/p/10368924.html
Copyright © 2011-2022 走看看