多个并列的if条件句和if-elif的区别

本文探讨了Python编程中多个并列if条件语句与if-elif结构的区别。并列if会逐个检查条件,而if-elif在找到满足条件的语句后将停止后续判断。通过一个实例——去除出现两次及以上的数字,展示了两种方式的不同效果,if-elif能正确实现需求,输出结果为[0, 2, 4]。" 137567282,22803117,HarmonyOS XML解析与转换实战:开发天气App,"['HarmonyOS', 'XML处理', '鸿蒙应用开发', '程序设计', '移动开发']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

多个并列if条件句:程序会对每一个if条件句都执行。判断条件真假,为真时,执行if后面的语句块;然后再接着对下一个if条件句进行判断,再执行
if-elif:不是并列关系,依次判断,当条件为真执行语句块后,退出判断,不会再执行接下来的elif语句。
在这里插入图片描述

实例:去除出现两次及以上的数字(注意不是去重)

nums = [0,1,2,3,4,5,
### 导致 `IndentationError: unexpected indent` 的原因 在 Python 编程中,`IndentationError: unexpected indent` 是由于代码中的缩进不符合 Python 的语法规则而引发的错误。以下是可能导致该错误的一些常见原因: #### 1. **并列语句被不当缩进** 当两个或多个语句处于同一逻辑层次时,它们应该具有相同的缩进级别。如果其中一个语句被额外缩进,则会触发此错误[^3]。 ```python # 错误示范 a = 1 b = 2 # 不必要的缩进导致 IndentationError # 正确写法 a = 1 b = 2 ``` #### 2. **上下级关系未正确处理** 对于条件语句、循环或其他控制结构,子语句必须相对于父语句适当缩进。如果没有遵循这一规则,也会引起错误[^3]。 ```python # 错误示范 if a == 1: print(a) # 应该缩进但未缩进 # 正确写法 if a == 1: print(a) ``` #### 3. **代码块内的语句未对齐** 在同一代码块内,所有语句应保持一致的缩进量。任何偏离都会造成语法冲突[^3]。 ```python # 错误示范 if 2 > 3: a = 3 # 缩进不足 print(True) # 正确写法 if 2 > 3: a = 3 print(True) ``` #### 4. **嵌套逻辑中的重复判断** 在复杂的嵌套逻辑中,可能会因为遗漏某些部分而导致不必要的缩进问题。例如,在循环内部进行多次独立判断时,需特别注意每条分支的结束位置。 ```python # 错误示范:水仙花数实现 x = int(input()) s = 0 L = [int(xi) for xi in str(x)] if len(L) != 3: print(False) else: for i in L: s = s + i**3 if x == s: # 额外缩进可能存在问题 print(True) else: print(False) # 正确写法 x = int(input()) s = 0 L = [int(xi) for xi in str(x)] if len(L) != 3: print(False) else: for i in L: s = s + i**3 if x == s: # 调整到合适的位置 print(True) else: print(False) ``` --- ### 解决方案 针对以上提到的各种情况,可以采取以下措施来修复 `IndentationError: unexpected indent` 错误: 1. **检查并修正多余的缩进** 确保每一层逻辑都按照预期进行了正确的缩进操作。可以通过手动调整或者借助 IDE 自动化工具完成此项工作[^1]。 2. **统一使用空格或制表符作为缩进单位** 推荐始终采用固定数量的空格(通常是四个)代替 Tab 字符来进行缩进设置,这样能够有效减少跨平台编辑带来的潜在混乱[^2]。 3. **利用现代开发环境辅助检测** 大多数集成开发环境 (IDE),像 PyCharm 或 VS Code,均内置了强大的功能帮助开发者快速定位此类低级失误,并提供即时反馈提示[^1]。 4. **仔细审查复杂逻辑下的每一个细节** 对于涉及多重嵌套的情况尤其要小心谨慎,逐行验证各组成部分之间的相对位置是否合理合法[^3]。 通过上述方法的应用实践,绝大多数由不恰当缩进所引起的运行期异常都可以得到妥善解决。 --- ### 示例代码片段 下面给出一段经过优化后的代码样例供参考学习: ```python def check_narcissistic_number(): try: num = input("请输入一个三位正整数:") digits_sum_cubed = sum([int(digit)**3 for digit in list(num)]) if len(str(digits_sum_cubed)) != 3 or not isinstance(int(num), int): raise ValueError elif digits_sum_cubed == int(num): result_message="是" else: result_message="否" final_output=f"{num}是一个{result_message}水仙花数." return final_output except Exception as e: error_info='输入数据非法,请重新尝试.' return error_info output_result=check_narcissistic_number() print(output_result) ``` ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值