Python不正确地计算麻木

2024-04-27 00:36:04 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

什么?你知道吗


Tags: inputdef数字numintprintnum2num1
3条回答
    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)

在注释行中,计算答案

好吧,当你计算

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()

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

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

>>>num_input()
num1: 60
num2: 18
('num1:', 45.0, 'num2:', 90.0)

相关问题 更多 >