珠江东之虎 发表于 2020-11-3 00:35:40

求助,为什么运行时,else老是提示语法错误

name=input('请输入带查找的用户名:')
score=[['迷途',85],['黑夜,80'],['小布丁',65],['福禄娃娃',95],['怡静',90]]
for each in score:
    if each==name:
      break
    print(name+'的得分是:'+str(each))
    else:
      print('你输入的数据不存在')
   

赚小钱 发表于 2020-11-3 00:41:50

本帖最后由 赚小钱 于 2020-11-3 00:44 编辑

因为智障的py要求缩进对齐。 你让 print 往后,和 break 对齐再试试。

然后,另一个问题,我没看懂你程序的意思。或许你还可以试试把break 和第一个 print 上下交换。

jackz007 发表于 2020-11-3 00:49:01

本帖最后由 jackz007 于 2020-11-3 00:56 编辑

      1、下面这一句中红色的单引号位置显然不对
score=[['迷途',85],['黑夜,80'],['小布丁',65],['福禄娃娃',95],['怡静',90]]
      2、部分语句的顺序和缩进位置不对
      下面是经过修改的代码,谨供楼主参考
name = input('请输入待查找的用户名:')
score = [['迷途' , 85] , ['黑夜' , 80] , ['小布丁' , 65] , ['福禄娃娃' , 95] , ['怡静' , 90]]
for each in score:
    if each == name:
      print(name + '的得分是:' + str(each))
      break
else:
    print('你输入的数据不存在')

珠江东之虎 发表于 2020-11-3 00:53:40

赚小钱 发表于 2020-11-3 00:41
因为智障的py要求缩进对齐。 你让 print 往后,和 break 对齐再试试。

然后,另一个问题,我没看懂你程 ...

好的,我试了一下确实是print缩进没对齐的原因,但是这程序没跑出我想要的效果,我是想做一个输入名字,就能得到对应分数的程序,但是我这段代码留着break的话输入名字就得不出对应分数,把break删掉又会出现除了对应分数外,还会跑多几行你输入的数据不存在的文字出来。。。。这又是另外一个问题了

赚小钱 发表于 2020-11-3 00:56:12

珠江东之虎 发表于 2020-11-3 00:53
好的,我试了一下确实是print缩进没对齐的原因,但是这程序没跑出我想要的效果,我是想做一个输入名字, ...

所以,你看我的第二段了吗?

珠江东之虎 发表于 2020-11-3 01:01:01

jackz007 发表于 2020-11-3 00:49
1、下面这一句中红色的单引号位置显然不对
score=[['迷途',85],['黑夜,80'],['小布丁',65],['福禄 ...

那个引号我也注意到了,谢谢,看了你的代码后,我终于明白之前问题出在哪里了

珠江东之虎 发表于 2020-11-3 01:06:45

赚小钱 发表于 2020-11-3 00:56
所以,你看我的第二段了吗?

看了,只是break和print调换也还是会出现好几行你输入的数据不存在。还要加一步就是else不是和if组成if。。else语句,else是和上面的for 组成 for else语句才能得到最佳结果。

LuLD 发表于 2020-11-3 08:31:12

赚小钱 发表于 2020-11-3 00:41
因为智障的py要求缩进对齐。 你让 print 往后,和 break 对齐再试试。

然后,另一个问题,我没看懂你程 ...

哈哈哈,智障的python,很贴切

赚小钱 发表于 2020-11-3 16:17:35

珠江东之虎 发表于 2020-11-3 01:06
看了,只是break和print调换也还是会出现好几行你输入的数据不存在。还要加一步就是else不是和if组成if。 ...

学到了,还有 for - else 这样的语法,niubility,哈哈
页: [1]
查看完整版本: 求助,为什么运行时,else老是提示语法错误