python基础之条件判断

目录

1.布尔变量和布尔表达式

2.bool值与整数的关系

3.if语句与bool值

4.if 语句和 if not 语句

5.空值为 False 的数据类型

6.条件表达式

7.比较运算符、逻辑运算符和身份运算符

比较运算符

逻辑运算符

逻辑判断的短路规则

身份运算符 is

8.运算符的优先级和结合性

9.pass 语句


1.布尔变量和布尔表达式

布尔变量有 True 和 False,分别代表真和假。
返回布尔值的表达式 为布尔表达式。比如 radius < 0,再比如(n % 2 == 0 or n % 3 == 0 ) and not(n % 2 == 0 and n % 3 == 0)。
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 语句会把自动把后面的表达式变为布尔变量
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 语句

If bool:
        xxxx
这里只有当 bool 为真即 bool = True 时,才会执行语句 xxxx
If not bool:
        xxxx
这里只有当 bool 为假时,即 bool = False 时,才会执行语句 xxxx
因为当 bool = False 时,not bool = True,出现 if 语句的执行条件

5.空值为 False 的数据类型

6.条件表达式

普通的if-else判断
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

逻辑判断的短路规则

and 判断叫做短路效应,从左往右依次判断,出现假则不再判断后面,没找到假则为真。or 判断反向理解。
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 语句

pass  # 空语句,什么都不执行
content = input("输入对话:")
if content == "你好":
    print("我们不适合")
else:
    pass  # 占坑

end

  • 23
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值