Python sequential search代码中ketemu变量作用及运行逻辑疑问
顺序搜索代码逻辑说明
你贴出的是基础的顺序搜索实现,核心通过ketemu这个布尔标记位实现是否找到目标值的状态记录,完整逻辑拆解如下:
a = [2,5,7,9,11] cari = int(input("Input the value : ")) ketemu = False for i in range(0, len(a)): if cari == a[i]: ketemu = True if ketemu: print("Value: ", cari, "ada") else: print("Value: ", cari, "not found")
标记位ketemu的赋值逻辑
ketemu是印尼语“找到”的意思,作为状态标记使用,两段赋值的作用分别是:
- 初始赋值
ketemu = False:遍历数组前先设定默认状态,假设输入的目标值cari不存在于数组a中 - 匹配时赋值
ketemu = True:遍历过程中只要有任意一个数组元素和cari相等,就把标记位改为「已找到」的状态
整体执行流程
- 先定义待搜索的数组
a,接收用户输入的目标值并转为整数类型存入cari - 初始化「未找到」的标记状态
- 遍历数组的每一个下标,依次对比当前下标对应的数组元素是否和目标值相等:
- 相等就修改标记位为「已找到」
- 不相等就继续遍历下一个元素
- 遍历完全部元素后,检查标记位状态:
- 标记位为
True:说明遍历过程中匹配到了目标值,输出存在提示 - 标记位为
False:说明所有元素都不匹配目标值,输出未找到提示
- 标记位为
小优化点:原代码匹配到目标值后还会继续遍历剩余元素,可以在
ketemu = True后面加一行break直接跳出循环,提升执行效率,不影响最终结果。
内容的提问来源于stack exchange,提问作者Wenky
相关产品推荐
相关产品推荐

