python错误地计算数字

时间:2017-07-04 10:04:09

标签: python python-3.5

所以,这是在我的试卷中,我真的很困惑

def num_input():
    num1 = input("num1: ")
    num2 = input("num2: ")
    num1 = int(num2)*2.5
    num2 = int(num1)*1.5
    print("num1:", num1, "num2:", num2)

num_input()

说num1 = 60,而num2 = 18,新数字不应该是:

num1: 45
num2: 90

但为什么输出:

num1: 45
num2: 67.5

4 个答案:

答案 0 :(得分:1)

好吧,当你计算

num1 = int(num2)*2.5

' int(num2)* 2.5'的值被分配给num1。在这个阶段,num1有一个新值,它是对上述结果的评价,​​而不再是60。

将代码改为:

def num_input():
    num1 = input("num1: ")
    num2 = input("num2: ")
    value1 = int(num2)*2.5
    value2 = int(num1)*1.5
    print("num1:", value1, "num2:", value2)

num_input()

答案 1 :(得分:1)

    num1 = input("num1: ")  # 60
    num2 = input("num2: ")  # 18
    num1 = int(num2)*2.5  # 18 * 2.5 = 45
    num2 = int(num1)*1.5  # 45 * 1.5 = 67.5
 `  print("num1:", num1, "num2:", num2)

在评论行中,计算答案

答案 2 :(得分:1)

您可以使用就地交换来解决此问题:

contour(xx,yy,zz,add=T,col="black",lwd=2,levels=cumlev1,labels=clev)
contour(xxx,yyy,zzz,add=T,col="grey",lwd=1,levels=cumlev2,drawlabels=F)

答案 3 :(得分:0)

在num2中,你在数学运算之后将num1的结果相乘而不是之前,当你写“num1 =”时,你在“num1”变量记忆位置内分配一个新值。