python入门day05——基本运算符、逻辑运算符

一、基本运算符

1、算数运算符

print(10+3) # 13
print(10-3) # 7
print(10*3) # 30
print(10/3) # 3.3333333333333335
print(10//3)  # 3 整除 地板除
print(10%3)  # 1 取余 取余数部分

       了解(* *) +号不仅可以数字和数字相加 还可以字符串和字符串 列表和列表相加

x = 'aaa'
y = 'bbb'
print(x + y) # aaabbb
print([1,2,3] + [4,5]) # [1, 2, 3, 4, 5]

x = 'aaa'*3
print(x) # aaaaaaaaa

2、比较运算符

print(10 == 10)
print(10 != 3)
print(10 > 3)
print(10 < 3)
print(10 >= 3)
print(10 <= 3)

        了解

s1 = 'abced'
s2 = 'az'
print(s2>s1) # True
# 字符串可以比大小 比较的是ASCII码 一个一个比 比出结果为止 比如a和a比不出 下一个b<z

s1 = [123,123]
s2 = [111]
print(s1 <s2) False


l1 = [1, 'abc', 3.1]
# l2 = [1, 2222, 3.1]
l2 = [1, "abb", 3.1]
print(l1 > l2) True

3、赋值运算符

       1.增量赋值

age = 18
age += 1  # age = age + 1
print(age)
age -= 2  # 减法赋值运算符 c-=a等效于c=c-a
print(age)
age *= 2  # 乘法赋值运算符 c*=a等效于c=c*a
age /= 2  # 除法赋值运算符 c/=a等效于c=c/a
age %= 2  # 取模赋值运算符 C %=a等效于c=c% a
age **= 2  # 幂赋值运算符 c**=a等效于c=ca
age //= 2  # 取整除赋值运算符 c//=a等效于c=c//a

       2.交叉赋值

x = 111
y = 222
x, y = y, x
print(x, y)

       3.链式赋值

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

       4.解压赋值

salaries = [111,222,333,444,555]

m0,m1,m2,m3,m4=salaries
print(m0)  # 111
print(m1)  # 222
print(m2)  # 333
print(m3)  # 444
print(m4)  # 555

x, y, z = {'k1': 111, 'k2': 222, 'k3': 333}
dic = {'k1': 111, 'k2': 222, 'k3': 333}
x, y, z = dic
print(x, y, z)  # k1 k2 k3
print(dic[x], dic[y], dic[z])  # 111 222 333


x, y, z,a,b = "hello"
print(x)  # h
x,*_,a,b = "hello"
print(x,a,b)  # h l o

       注意变量名与值得个数必须一一对应

# m0,m1,m2,m3,m4,m5=salaries # 报错  多一个变量名不行
# m0,m1,m2,m3=salaries # 报错 少一个变量名不行

       引入'''':''''可以帮助我们取两头的值,无法取中间的值

salaries = [111, 222, 333, 444, 555]
m0, m1, *_ = salaries
print(m0)  # 111
print(m1)  # 222
print(*_)  # 333

*_,x,y=salaries
print(x,y)  # 444 555
x,*_,y,z=salaries
print(x,y,z)  # 111 444 555
_,*middle,_=salaries
print(middle) # [222,333,444]

       会将没有对应关系的值存成列表然后赋值给紧跟其后的那个变量名,此处为_,可用其他符号x、*xxx
       一般用'_'代表的是废弃 不打算用这个东西

二、逻辑运算符

条件

       只要能得到True或False两种值的东西都能当作条件
       1、显式的布尔值:表面上看就能看出true或false

#(1)比较运算的结果
print(10 > 3)
print(10 == 3)
#(2)变量值直接就是True或False
tag = True

       2、隐式的布尔值:表面上看上去是一种值,在底层会被解释器转换成True或False
       0、None、空(包括空列表、空字典)对应的布尔值为False、其余值对应的布尔值均为True

# 10
# 3.1
# ""
# []
# {"k1":222}
# None

逻辑运算符

       用来连接多个条件
       (1)not 条件:对条件的结果取反
       (2)条件1 and 条件2:连接左右两个条件,两个条件必须都为True,最终结果才为True
       (3)条件1 or 条件2:连接左右两个条件,两个条件只要有一个为True,最终结果就为True
       (4)优先级:not > and > or,推荐用括号去标识优先级

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

print(10 and 0)  # 0
print(10 and False)  # False
print(10 or False)  # 10
原文地址:https://www.cnblogs.com/liuxinging/p/13274204.html