Python动漫推荐算法Bug:循环中条件判断语句失效求助
动漫推荐算法条件判断错误修复方案
你的问题根源在于条件判断的逻辑写法错误:原代码里的if r1 == 'M' or 'm'等价于(r1 == 'M') or ('m'),而非空字符串'm'在布尔判断中会被视为True,导致第一个条件永远成立——不管用户输入什么,程序都会进入动漫电影的分支;调整分支顺序后同理,第一个分支的条件会永远触发。
修复方法有两种:
- 方法一:完整写出每个等值判断条件
- 方法二:将输入转为统一大小写后再判断,简化代码
修复后的代码示例:
方法一:
if r1 == 'M' or r1 == 'm': r1 = animemovies break elif r1 == 'S' or r1 == 's': r1 = animeseries break elif r1 == 'O' or r1 == 'o': r1 = animeother break else: print('NANI!??\nINVALID INPUT!!!\nBAKA!') continue lis = r1[r1['genre'].isin([r2])]...
方法二(更简洁):
r1_lower = r1.lower() if r1_lower == 'm': r1 = animemovies break elif r1_lower == 's': r1 = animeseries break elif r1_lower == 'o': r1 = animeother break else: print('NANI!??\nINVALID INPUT!!!\nBAKA!') continue lis = r1[r1['genre'].isin([r2])]...
修改后,程序就能根据用户输入正确匹配对应的数据源了。
内容的提问来源于stack exchange,提问作者Rick Sky
相关产品推荐
相关产品推荐

