Python 3 - 为什么我的简单程序不能对输入做任何事情?

Python 3 - Why wont my simple program do anything with the input?

我刚开始学习Python 3. 所以我学习了一些基础知识并尝试自己写一些东西。它有点计算,但在用户输入后什么也没有发生,它就结束了。对不起,如果这是一个非常愚蠢的问题。提前致谢

print("Welcome")
n1 = float(input("Please insert a number"))
o1 = input("Please insert the operator(+,-,*,/)")
n2 = float(input("Please insert another number"))

def mult(x, y):
    z = x * y
    return z


def addi(x, y):
    z = x + y
    return z


def subi(x, y):
    z = x - y
    return z


def divi(x, y):
    if x == 0 or y == 0:
        print("Cant divide 0")
    elif x == 0 and y == 0:
        print("Cant divide 0")
    else:
        z = x / y
        return z


if o1 == "+":
    addi(n1, n2)
elif o1 == "-":
    subi(n1, n2)
elif o1 == "*":
    mult(n1, n2)
elif o1 == "/":
    divi(n1, n2)
else:
    print("Wrong Operator!")

编辑:感谢大家,我修复了它并且它可以工作。再次感谢。

您正在计算,但没有输出它们:

if o1 == "+":
    print(addi(n1, n2))
elif o1 == "-":
   print(subi(n1, n2))
elif o1 == "*":
   print(mult(n1, n2))
elif o1 == "/":
   print(divi(n1, n2))
else:
    print("Wrong Operator!")

注意:
您的 divi 功能有误,请改用此功能:

def divi(x, y):
    if y == 0:
        print("Cant divide by 0")
    else:
        z = x / y
        return z

+ 您可以只 return 结果而不将其存储在变量中:

def mult(x, y):
    return x * y
def addi(x, y):
    return x + y
def subi(x, y):
    return x - y
def divi(x, y):
    if y == 0:
        print("Cant divide by 0")
    else:
        return x / y

它工作得很好可能你只是想打印结果 添加打印

print("Welcome")
n1 = float(input("Please insert a number"))
o1 = input("Please insert the operator(+,-,*,/)")
n2 = float(input("Please insert another number"))

def mult(x, y):
    z = x * y
    return z


def addi(x, y):
    z = x + y
    return z


def subi(x, y):
    z = x - y
    return z


def divi(x, y):
    if x == 0 or y == 0:
        print("Cant divide 0")
    elif x == 0 and y == 0:
        print("Cant divide 0")
    else:
        z = x / y
        return z


if o1 == "+":
    print(addi(n1, n2))
elif o1 == "-":
    print(subi(n1, n2))
elif o1 == "*":
    print(mult(n1, n2))
elif o1 == "/":
    print(divi(n1, n2))
else:
    print("Wrong Operator!")

输出

欢迎

Please insert a number34
Please insert the operator(+,-,*,/)+
Please insert another number23
57.0

你计算了操作结果,但无论如何都使用它 - 所以它不会改变程序状态(例如,不在标准输出中写入)。

看下一个:

if o1 == "+":
    addi(n1, n2)  # addi return value not used
elif o1 == "-":
    subi(n1, n2)  # subi return value not used
elif o1 == "*":
    mult(n1, n2)  # mult return value not used
elif o1 == "/":
    divi(n1, n2)  # divi return value not used
else:
    print("Wrong Operator!")

如您所见 - return 个值未使用。

让我们看看函数

def mult(x, y):
    z = x * y
    return z


def addi(x, y):
    z = x + y
    return z


def subi(x, y):
    z = x - y
    return z


def divi(x, y):
    if x == 0 or y == 0:
        print("Cant divide 0")
    elif x == 0 and y == 0:
        print("Cant divide 0")
    else:
        z = x / y
        return z

只是return个值,反正不输出。

因此您需要打印 return 个值。例如。 -

if o1 == "+":
    print(addi(n1, n2))
elif o1 == "-":
    print(subi(n1, n2))
elif o1 == "*":
    print(mult(n1, n2))
elif o1 == "/":
    print(divi(n1, n2))
else:
    print("Wrong Operator!")