小鱼想学游泳 发表于 2020-5-27 15:08:43

为什么我输入‘小布丁’,会显示‘查找的数据不存在’?

我看了小甲鱼练习题的答案,他是加了一个变量isfind=False
name=input('请输入待查找的用户名:')
score=[['迷途',85],['黑夜',80],['小布丁',65],['福禄娃娃',95],['怡静',]]
for each in score:
    if name in each:
      print(name+'的得分是:',each)
      break
    else:
      print('查找的数据不存在')
      break

Twilight6 发表于 2020-5-27 15:11:01

因为你遍历第一个 就被else 的 break 退出循环了不在遍历查找后面的
改成这样~
name=input('请输入待查找的用户名:')
score=[['迷途',85],['黑夜',80],['小布丁',65],['福禄娃娃',95],['怡静',]]
for each in score:
    if name in each:
      print(name+'的得分是:',each)
      break
else:
    print('查找的数据不存在')

Twilight6 发表于 2020-5-27 15:13:23

你 for 循环第一个不是小布丁所以不执行 if 代码块,而执行else 代码块else 里面有break终止并退出了循环~

小小小菜菜菜 发表于 2020-5-27 15:18:06

改成这样,你去试试就明白了2者的区别了
for each in score:
        if name in each:
                print(name+'的得分是:',each)
                break
else:#此处else需要与for同一级别
print('查找的数据不存在')

小鱼想学游泳 发表于 2020-5-27 15:31:28

Twilight6 发表于 2020-5-27 15:11
因为你遍历第一个 就被else 的 break 退出循环了不在遍历查找后面的
改成这样~

原来是这样,但我原来也是按你这个写法,但会输出答案的同时,还会输出’查找的数据不存在‘

小鱼想学游泳 发表于 2020-5-27 15:32:26

小小小菜菜菜 发表于 2020-5-27 15:18
改成这样,你去试试就明白了2者的区别了
for each in score:
        if name in each:


这个写法,输出答案的时候,还会输出’查找的数据不存在‘欸

qiuyouzhi 发表于 2020-5-27 15:34:11

小鱼想学游泳 发表于 2020-5-27 15:31
原来是这样,但我原来也是按你这个写法,但会输出答案的同时,还会输出’查找的数据不存在‘

啊,是吗?
你把你代码发出来

Twilight6 发表于 2020-5-27 15:35:14

小小小菜菜菜 发表于 2020-5-27 15:18
改成这样,你去试试就明白了2者的区别了
for each in score:
        if name in each:


你代码 print 后面忘记缩进了

Twilight6 发表于 2020-5-27 16:11:33

小鱼想学游泳 发表于 2020-5-27 15:31
原来是这样,但我原来也是按你这个写法,但会输出答案的同时,还会输出’查找的数据不存在‘

不会的你是看错代码了~

小鱼想学游泳 发表于 2020-5-27 16:44:31

Twilight6 发表于 2020-5-27 16:11
不会的你是看错代码了~

真的我看错了!!可了可了~

Twilight6 发表于 2020-5-27 16:46:30

小鱼想学游泳 发表于 2020-5-27 16:44
真的我看错了!!可了可了~

{:10_297:}
https://xxx.ilovefishc.com/forum/202005/27/132745rjvcvw1z2148jthd.gif
页: [1]
查看完整版本: 为什么我输入‘小布丁’,会显示‘查找的数据不存在’?