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)
答案 0 :(得分:2)
如果输入对a
b
d
和e
有效,则两个代码段最终都会执行相同的操作。如果输入不是数字,a
和b
会立即为您提供ValueError
,因为您正在立即评估字符串输入int
。 d
和e
将接受任何类型的输入,包括那些包含非数字数据的输入,但在添加时您将获得相同的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)
这两者之间的区别非常微妙。在第一种情况下,当分配a
和b
时,将收集输入,然后转换为整数。如果此时输入无法转换为整数,则会引发错误。
在第二种情况下,分配d
或e
应该没有问题,但是当您尝试将int(d) + int(e)
分配给变量f
时会出现错误因为int(d)
没有意义。