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

Python3-为什么我的简单程序不能对输入做任何事情?,python,python-3.x,calculator,Python,Python 3.x,Calculator,我刚开始学习Python 3。所以我学了一些基础知识,试着自己写一些东西。这是一个小计算,但在用户完成输入后,什么都没有发生,它只是结束。对不起,如果这是一个非常愚蠢的问题。提前谢谢 print("Welcome") n1 = float(input("Please insert a number")) o1 = input("Please insert the operator(+,-,*,/)") n2 = float(input("Please insert another number"

我刚开始学习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
+您只需返回结果,无需将其存储在变量中:

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

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

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
+您只需返回结果,无需将其存储在变量中:

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

它工作得非常完美,可能是因为您只想打印结果 添加打印

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!")
如您所见-返回未使用的值

让我们看看函数

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!")

您可以计算运算结果,但无论如何都要使用它-这样它就不会改变程序状态(例如,不写入标准输出)

见下一页:

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!")
如您所见-返回未使用的值

让我们看看函数

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!")


你需要把它打印出来。天哪!我肯定已经接近这个问题了。我现在觉得自己很笨哈哈非常感谢你需要
打印它!我肯定已经接近这个问题了。我现在觉得很傻哈哈谢谢你非常友好的小字体打印(addi(n1,n2)为什么只检查y?如果x=0呢?你会在数学中得到>>>0/40.0,或者数学:p,对于每个数字a,0/a=0(存在),但a/0是未定义的,所以我们只检查第二个数字y。朋友小字体打印(addi(n1,n2)为什么只检查y?如果x=0呢?你会在数学中得到>>>0/40.0,或者数学:p,对于每个数字a,0/a=0(存在),但a/0未定义,因此我们只检查第二个数字y。非常感谢非常感谢much@LuigiDavinci欢迎光临,我建议,因为您使用的是python 3.0,所以请使用floor division@HariomSingh,但这不会给我正确的结果,不是吗?当被问及5/2时,它会打印2.0,所以我认为这是一个浮动,为什么不准确地划分呢?还是我遗漏了什么much@LuigiDavinci欢迎使用,我建议您使用python 3.0,使用floor division@HariomSingh,但这不会给我正确的结果,不是吗?当被问到什么是5/2时,它会打印2.0,所以我想既然它是一个浮点,为什么不准确地分割或是我错过什么了吗