使用`input`这两个python代码有什么区别?

时间:2016-11-11 04:02:46

标签: python

a=int(input("Unesi a:  "))
b=int(input("Unesi b:  "))
c=a+b
print(c)

我不明白它的区别是什么,因为它做同样的事情。

d=input("Unesi c:  ")
e=input("Unesi d:  ")
f=int(d)+int(e)
print(f)

2 个答案:

答案 0 :(得分:2)

如果输入对a b de有效,则两个代码段最终都会执行相同的操作。如果输入不是数字,ab会立即为您提供ValueError,因为您正在立即评估字符串输入intde将接受任何类型的输入,包括那些包含非数字数据的输入,但在添加时您将获得相同的ValueError。相同的结果,错误发生时的不同时间。

修改

正如评论中指出的那样(再次感谢你),我还应该提一下,如果给a非数字输入,你会在ValueError之前获得b = int(input("Unesi b: ")) d 1}}。如果向e提供了非数字输入,则执行将很快继续执行到int,因为您尚未将输入转换为var lv_column_list = hiveContext.sql(s""" DESC MYTABLE""") lv_column_list.select("col_name").orderBy("col_name") 。非常微妙的差异。

答案 1 :(得分:0)

这两者之间的区别非常微妙。在第一种情况下,当分配ab时,将收集输入,然后转换为整数。如果此时输入无法转换为整数,则会引发错误。

在第二种情况下,分配de应该没有问题,但是当您尝试将int(d) + int(e)分配给变量f时会出现错误因为int(d)没有意义。