zoukankan      html  css  js  c++  java
  • 02python开发之基本运算符

    02 python开发之基本运算符

    2 基本运算符

    2.1 算数运算符

    2.1.1 种类

    运算符 作用 运算符 作用 运算符 作用 运算符 作用
    + 相加 - 相减 * 相乘 **
    / 相除 % 取模/余数 // 取整除/整数部分

    2.1.2 用法

    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
    
    • 字符串与字符串、列表与列表、字典与字典之间也可使用+和*
    print([1, 2, 3] + [3, 4, 5])	# [1, 2, 3, 3, 4, 5]
    print([1, 2, 3] * 3)	        # [1, 2, 3, 1, 2, 3, 1, 2, 3]
    

    2.2 比较运算符

    2.2.1 种类

    运算符 作用 运算符 作用 运算符 作用
    == 比较是否相等 != 比较是否不相等 > 是否大于
    < 是否小于(1真0假) >= 是否大于等于 <= 是否小于等于

    2.2.2 用法

    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根据ASCⅡ码表进行比较,列表按照索引进行比较
    print("abc" > "az")        # 输出:False
    print([1,2,3] < [1,3,4])   # 输出:True
    

    2.3 赋值运算符

    2.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
    

    2.3.2 链式赋值

    # 方法一
    x=10
    y=x
    z=y  # 麻烦
    
    # 方法二
    x=y=z=10
    print(id(x))
    print(id(y))
    print(id(z))
    

    2.3.3 交叉赋值

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

    2.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返回值
    
    # 优化方案
    salary = [1.1, 2.2, 3.3, 4.4]
    month1, month2, *_ = salary
    print(month1, month2)  # 得到1.1 2.2
    print(_)  # 得到[3.3, 4.4]
    
    dic = {'k1': 111, 'k2': 222, 'k3': 333}
    x, *_ = dic
    print(x)	# 得到k1
    

    2.4逻辑运算符

    2.4.1 种类

    运算符 作用
    not 布尔"非",若x为True,则返回False
    and 布尔"与",若x为False,x and y返回False,否则返回y的计算值
    or 布尔"或",若x为True,则返回True,否则返回y的计算值

    2.4.2 优先级

    #   not > and > or
    res = 3 > 4 and 4 > 3 or not 1 == 3 and 'x' == 'x' or 3 > 3
    print(res)	# True
    

    2.4.3 用法

    # not代表把紧跟其后的条件结果取反
    print(10 > 3)			# True
    print(not 10 > 3)		# False
    # and连接左右两个条件,左右两个条件必须同时成立,最终结果才为True
    print(True and 1 > 0 and "aaa" == "aaa")	# True
    print(False 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")		# True
    # 短路运算
    print(10 and 0 or '' and 0 or 'abc' or 'egon' == 'dsb' and 333 or 10 > 4)		# abc
    print((10 and 0) or ('' and 0) or 'abc' or ('egon' == 'dsb' and 333) or 10 > 4)	 # abc
    

    2.4.4 补充

    # 对于and运算符,两边的值都为真时最终结果才为真,但是只要其中有一个值为假,那么最终结果就是假:
    # 如果左边表达式的值为假,不管右边表达式的值是什么最终结果都是假,此时and会把左边表达式的值作为最终结果。
    # 如果左边表达式的值为真,那么最终值是不能确定的,and会继续计算右边表达式的值,并将右边表达式的值作为最终结果。
    
    # 对于or运算符,情况是类似的,两边的值都为假时最终结果才为假,只要其中有一个值为真,那么最终结果就是真:
    # 如果左边表达式的值为真,不管右边表达式的值是什么最终结果都是真,此时or会把左边表达式的值作为最终结果。
    # 如果左边表达式的值为假,那么最终值是不能确定的,or会继续计算右边表达式的值,并将右边表达式的值作为最终结果。
    print(1 and 3)			 # 得3
    print(1 and 3 or 4)		 # 得3
    print(0 and 2 or 1 or 4)	 # 得到1
    print(0 or False and 1)		 # 得到False
    

    2.5 身份运算

    2.5.1 is

    • is 比较的是id

    2.5.2 ==

    • == 比较的是值

    2.5.3 总结

    • is 相等值一定相等
    • == 相等id不一定相等
  • 相关阅读:
    内存中字的存储
    代码段
    CPU运行的流程
    字的传送
    内存中字的存储
    c语言中求数组元素的最大值和最小值
    linux系统 centos8.3 中安装 Rsudio
    Error in .External2(C_X11, paste0("png::", filename), g$width, g$height, : 解决linux R绘图问题
    linux系统中使用R的Cairo绘制png格式图片
    c语言中利用二维数组统计考试成绩之和
  • 原文地址:https://www.cnblogs.com/caojiaxin/p/14032626.html
Copyright © 2011-2022 走看看