目录
1.布尔变量和布尔表达式
print(0 < 1) # True
print('a' < 'A') # False
布尔函数 bool(x):x 为数时,x 非 0 则返回 True,x 为 0 则返回 Fals。x 为字符串时,非空为 True,空为 False。
print(bool(-1)) # True
print(bool(0)) # False
print(bool(1)) # True
print(bool("")) # False
print(bool("ds")) # True
print(bool(" ")) # True
2.bool值与整数的关系
True作为int函数的实参时返回1,False返回0
print(int(True)) # 1
print(int(False)) # 0
其实True就等于1,False就等于0
a = True
print(a == 1) # True
print(a == 2) # False
b = False
print(b == 0) # True
print(b == -1) # False
3.if语句与bool值
if语句与bool值搭配用于条件判断,然后针对不同的判断结果做出不同的操作
a = 1
b = 2
ret = a < b
print(ret)
if ret: # ret为True时
print("a < b, forward right")
else:
print("a >= b, forward left")
if -1: # 非空则为 True
print("这句话会打印")
if "": # 空则为 False
print("这句话不会打印")
if None: # 空则为 False
print("这句话不会打印")
if语句类型:
- 单个 if 语句
-
if-else 语句
-
if-elif-elif 语句
-
if-elif-elif-else 语句
value = 1
# 单个if语句
if value > 100:
print("大于100的数")
# if-else 语句
if value % 10 == 0:
print("10的倍数")
else:
print("不能整除10")
# if-elif-elif 语句
if value < 0:
print("负数")
elif value == 0:
print("零")
elif value < 1:
print("小数")
else:
print("大于等于1的数")
4.if 语句和 if not 语句
5.空值为 False 的数据类型
6.条件表达式
if x > 0:
y = 1
else:
y = -1
这里推荐使用条件表达式来简洁代码
y = 1 if x > 0 else -1
7.比较运算符、逻辑运算符和身份运算符
比较运算符
<, <=, >, >=, ==, !=
逻辑运算符
not:非。比如not bool1,当bool1为False时,not bool1为True.
and:且。比如bool1 and bool2,当bool1和bool2均为True时,才返回True,否则返回False。
or:或。比如bool1 or bool2,当bool1或bool2至少有一个为True时,返回True,否则返回False。
print(1 < 2 > 1) # True,1 < 2 > 1是1 < 2 and 2 > 1的简写
print(1 < 3 > 2) # True, 1 < 3 and 3 > 2
逻辑判断的短路规则
def fun1():
print("run fun1")
return False
def fun2():
print("run fun2")
return True
if fun1() and fun2():
print("hello world")
运行结果
run fun1
从运行结果看待,只打印了run fun1,即只调用fun1函数,因为if语句先判断fun1(),发现为假,则and右边则不再判断,也就没有调用fun2()函数。
身份运算符 is
num1 = 3
num2 = 3
if num1 is num2:
print("同一个地址")
num2 = 4
if num1 is not num2:
print("不是同一个地址")
运行结果
同一个地址
不是同一个地址
8.运算符的优先级和结合性
优先级:优先级就是当表达式中有多个运算符时,先计算谁,后计算谁。比如在四则运算中乘除的优先级就高于加减。比如1 - 2 * 3,结果就是-5,而不是-3。
print(1-2*3) # -5
print(2*2**3) # 16
结合性:优先级相等时从左往右运还是从右往左算(指运算方向)。大多数运算符结合方向是“自左至右”,即:先左后右,也叫“左结合性”,例如 a-b + c,表达式中有-和+两种运算符,且优先级相同,按先左后右结合方向,先围绕减号结合,执行a-b的运算,再围绕加号结合,完成(a-b) + c。
def fun1():
print("run fun1")
return 1
def fun2():
print("run fun2")
return 2
def fun3():
print("run fun3")
return 3
ret = fun1() - fun2() + fun3()
print(ret)
"""
run fun1
run fun2
run fun3
2
"""
注意not判断符的结合性是从右向左,比如not not b,先not b,再not (not b)。
有才 = True
if not not 有才:
print("这个人有才")
好的习惯:对于不同的运算符,数学运算符,比较运算符,逻辑运算符等具有不同的优先级,一般不去记忆,而是通过加括号来改变优先级,让逻辑更加清楚易懂。这是一个好的习惯。多用括号来改变优先级,并多用空格和行来易看懂。
print( 1 + (2 * 2/3) > (2 * (3-2)) + 1 )
x = 1
y = 2
z = -3
print( x > 0 or (y < 0 and z < 0) )
9.pass 语句
content = input("输入对话:")
if content == "你好":
print("我们不适合")
else:
pass # 占坑
end