快捷导航

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

T='12a34b56c'foriinT:ifi=='a':print(i,'年')elifi=='b':print(i,'月')elifi=='c':print(i,'日')else:digit=eval(i)print(i,"奇数")ifdigitin[1,3,5,7,9]elseprint(i,"偶数")#将中间2个elif改为if会提示SyntaxError:unexpectedEOFwhileparsing错误

免责声明:本内容仅代表回答者见解不代表本站观点,请谨慎对待。

版权声明:作者保留权利,不代表本站立场。

回复

使用道具 举报

参与会员2

如果两个elif改成if如果没有最后的else也是可以的,只是会增加多判断,执行完第一个if之后如果成立,仍然会运行后面的if。
但是,由于有else的存在,else只跟第三个if构成一对。
也就是说如果i是a,在第四行判断一次,是a,打印出来,第6行判断一次不是a,不执行,第8行判断一次,不成立,并执行else,else中的eval把引号剥掉了,就成了一个变量名a赋值给digit,由于事先没有定义变量a,因此报错。
回复

使用道具 举报

python的判断语句的语法就是这样规定的
if 条件:
执行语句
elif 条件:
执行语句
。。。。。。
else:
执行语句
回复

使用道具 举报

可能感兴趣的问答

发新帖
  • 微信访问
  • 手机APP