为了账号安全,请及时绑定邮箱和手机立即绑定

将中间的2个elif 改为if后,为什么就会出错?

将中间的2个elif 改为if后,为什么就会出错?

T='12a34b56c' for i in T:             if i == 'a':                     print(i,'年')             elif i == 'b':                     print(i,'月')             elif i == 'c':                     print(i,'日')             else:                     digit=eval(i)                     print(i,"奇数") if digit in [1,3,5,7,9] else print(i,"偶数")      # 将中间2个elif改为if会提示SyntaxError: unexpected EOF while parsing错误
查看完整描述

5 回答

?
MyFray

TA贡献2条经验 获得超0个赞

如果两个elif改成if如果没有最后的else也是可以的,只是会增加多判断,执行完第一个if之后如果成立,仍然会运行后面的if。

但是,由于有else的存在,else只跟第三个if构成一对。

也就是说如果i是a,在第四行判断一次,是a,打印出来,第6行判断一次不是a,不执行,第8行判断一次,不成立,并执行else,else中的eval把引号剥掉了,就成了一个变量名a赋值给digit,由于事先没有定义变量a,因此报错。

查看完整回答
反对 回复 2018-11-22
?
qq_慕仙8248301

TA贡献1条经验 获得超0个赞


python的判断语句的语法就是这样规定的

if 条件:

    执行语句

elif 条件:

    执行语句

。。。。。。

else:

    执行语句

查看完整回答
反对 回复 2018-11-21
  • 5 回答
  • 2 关注
  • 2228 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信