求助关于python的eval()函数,特别神奇,不知道问题出在哪?

def getNum():
lt = []
Num = input("请输入数字(回车退出)")
while Num != '':
lt.append(eval(Num))
Num = input("请输入数字(回车退出)")
return lt

a = getNum()
print(a)

上面这段程序,运行无误。
但是稍微修改了一个eval()的位置,程序就出错,如下所示:
def getNum():
lt = []
Num = eval(input("请输入数字(回车退出)"))
while Num != '':
lt.append(Num)
Num = eval(input("请输入数字(回车退出)"))
return lt

a = getNum()
print(a)

完全找不到原因,希望高手帮忙

2个回答

Num = eval(input("请输入数字(回车退出)"))
这样一来,Num就是数字了
while Num != '':
数字和Num比较就不成立

weixin_42349854
weixin_42349854 非常感谢您的回复,我也是这么想的,但是试了一下这条语句“print('True') if 3 != '' else print('False')”,发现结果是‘True’,这是不是说明‘3 != '' ’是成立的,数字不等于空字符?
4 个月之前 回复

不推荐使用eval,直接给定一个格式就好了(不是回答)

weixin_42349854
weixin_42349854 非常感谢您的分享!现在我还没有想明白这个问题哈
4 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐