在python中如何使用if语句嵌套,真值表达式又是什么意思?

本文介绍了Python中的if语句如何使用,特别是真值表达式的概念,以及if语句的嵌套用法。通过示例解释了非零数值被视为真,零被视为假的规则。此外,还提出了利用if语句嵌套处理学生成绩分类的情况,推荐初学者加入相关学习交流群进一步提升Python技能。
摘要由CSDN通过智能技术生成

一:if 真值表达式: 例:

If 100:

Print(“这是真”)

之前我们的表达式,要么返回真,要么返回假,如果我们现在这样写,会是一个什么样的结果呢?上面这条语句相当等同于:

If bool(100):

Print(“这是真”)

这是什么意思?为什么两条不相同的语句会等同呢?下面我们来运行一下这几句代码:

额?这又是怎么了?两个语句除了等同外,值也相等,为什么?如果是if 0呢?注:对于一个数字来讲,只要它不为0,大于等于1,那么它就为真。在python任何类型都可以有真和假两种状态。

二:if语句嵌套:if语句本身是由多条子句组成的一条复合语句,if语句还可以作为语句嵌套到另一个语句的内部。

例:输入一个学生的成绩(0-100),优(90—100),良(80—90),及格(60—79),不及格,成绩不合法5种状态(建议使用if语句嵌套)

好的,实现真值表达式树需要用到二叉树和递归算法,以下是一个简单的 Python 实现: 首先,我们定义一个二叉树节点类,包含了节点的值、左子树和右子树: ```python class TreeNode: def __init__(self, val): self.val = val self.left = None self.right = None ``` 然后,我们定义一个函数 `build_tree(expr)` 来构建真值表达式树,其 `expr` 是一个字符串,表示一个真值表达式: ```python def build_tree(expr): if len(expr) == 1: return TreeNode(expr[0]) else: root = TreeNode(expr[-1]) i = len(expr) - 2 while i >= 0 and expr[i] not in ['&', '|', '!']: i -= 1 root.left = build_tree(expr[:i+1]) root.right = build_tree(expr[i+1:-1]) return root ``` 这个函数的实现利用了递归的思想,对于一个长度大于 1 的表达式,我们可以找到最后一位符号作为根节点,然后递归构建左子树和右子树。 最后,我们定义一个函数 `evaluate(root, vars)` 来计算真值表达式树的值,其 `root` 是真值表达式树的根节点,`vars` 是一个字典,表示变量名和对应的真值: ```python def evaluate(root, vars): if root.val == '!': return not evaluate(root.right, vars) elif root.val == '&': return evaluate(root.left, vars) and evaluate(root.right, vars) elif root.val == '|': return evaluate(root.left, vars) or evaluate(root.right, vars) else: return vars[root.val] ``` 这个函数的实现也利用了递归的思想,对于一个非操作符的节点,我们根据节点的值和变量真值字典来计算节点的值;对于一个非操作符的节点,我们递归计算其右子树的值,并对其取反;对于一个与或操作符的节点,我们递归计算其左右子树的值,并进行相应的逻辑运算。 完整的实现代码如下:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值