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

将中间的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错误		


查看完整描述

4 回答

?
慕标4242898

chengdu1266.bandcamp.com

kuming1688.bandcamp.com

suzhou16880.bandcamp.com

shenzheng1688.bandcamp.com

guiyang1688.bandcamp.com

zhengzhou1688.bandcamp.com

hefei1688.bandcamp.com

shijiazhuang1687.bandcamp.com

shijiazhuang1687.bandcamp.com

taiyuan1688.bandcamp.com

taiyuan1688.bandcamp.com

fuzhou1686.bandcamp.com

fuzhou1686.bandcamp.com

nanchang1687.bandcamp.com


查看完整回答
反对 回复 2019-11-14
?
MyFray

如果两个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


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

if 条件:

    执行语句

elif 条件:

    执行语句

。。。。。。

else:

    执行语句

查看完整回答
反对 回复 2018-11-21

添加回答

回复

举报

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