关于循环for - if的问题
本帖最后由 0412zc 于 2022-5-1 22:43 编辑用for if 循环做一个图书查询功能
用户输入查询信息message,与books比较,找到结果,打印(可以忽略return i , 一个备用参数)。找不到结果,返回-1。
现在的结果是,如果books中有2条以上符合条件的信息,只能找出来一条,而且这一条信息打印2次。
请各位大神帮我找找,哪里出了问题,谢谢。
你for的判断条件i<k,k在函数里没定义,这是个全局变量?初始化过没有?
在if里面加一条打印i的值看看,同样的信息打印两次,要么i没有变过,要么存的图书信息有什么问题。而且也不知道你是怎么调用这个函数的,只能你自己调试 1、你的search函数在搜索到有效数据时就会return(退出函数),也就是说你的设计就是每次search被调用只要找到一个匹配的就退出了;
2、至于结果有两次打印,猜测是由于你的search被调用了两次;而且两次调用都是从0开始搜索的,所以得到的结果也是一样的;
具体你需要在检查一下你的函数调用是否是这样的。 930552489 发表于 2022-5-1 23:34
1、你的search函数在搜索到有效数据时就会return(退出函数),也就是说你的设计就是每次search被调用只要 ...
我也试着把return放到for外面,报错。我现在也知道放外面是对的,现在就从这开始改。之前也打印了i信息,第一次打印,循环内i=5, 循环外i=5. 第二次打印,循环内i=5, 循环外i=6。
谢谢
风车呼呼呼 发表于 2022-5-1 23:15
你for的判断条件i
k是全局变量,已经预加载了5本书,所以k=5, k是没问题的。
之前也打印了i信息,第一次打印,循环内i=5, 循环外i=5. 第二次打印,循环内i=5, 循环外i=6。
我现在已经把return放到循环外面了,在这个基础上再改。
谢谢 1.不知道books里面的内容,不了解两条符合条件的信息的位置关系
2.不知道你调用这函数的过程
3.不懂你各种修改是怎么改的,把return i放到循环外面,岂不是有两个return了;打印i的信息,循环内还能理解,循环外是怎么能打印两次的,那不是说明你调用这函数就不止一次;k=5,两次打印的时候循环内i=5,你循环终止条件都是i<k,这根本不可能啊
单独这一段代码貌似看不出什么问题,基于以上种种信息的缺乏,只能提供可能的验证方向,具体的你不提供详细就只能靠自己发现了 你这是Python2吧??? 連code也不給全,一看就調用不只一次,神仙也難救你
页:
[1]