如何在函数中编写条件以进行此评论 Python

How to write a condition in a function to make this comment Python

如何在函数中编写条件来进行此评论"Please provide two integers or floats" 现在我有一个类似“无法转换字符串或浮点数”的 ValueError

def divede():

   num1 = float(input("Enter first number:"))
   num2 = float(input("Enter second number:"))
   return num1, num2


num1, num2 = divede()

while True:
   if num2 == []:
       print("Please provide two integers or floats")

   elif num2 != 0:

       print(f"{num1} / {num2} is {num1/num2}")
       break

   else:

       print("Please do not divede by zero")
       num1, num2 = divede()

def divede():

   num1 = float(input("Enter first number:"))
   num2 = float(input("Enter second number:"))
   return num1, num2


num1, num2 = divede()

while True:
   if num2 == []:
       print("Please provide two integers or floats")

   elif num2 != 0:

       print(f"{num1} / {num2} is {num1/num2}")
       break

   else:

       print("Please do not divede by zero")
       num1, num2 = divede()

这里我有一个问题:

while True:
   if num2 == []: # wrong condition
       print("Please provide two integers or floats")

谢谢大家的回答

将除法函数更改为:

def divede():

   num1 = input("Enter first number:")
   num2 = input("Enter second number:")
   try:
       num1, num2 = float(num1), float(num2)
   except ValueError:
       print("Invalid entry, please enter numbers")
       return divede()
   return num1, num2

在那种情况下,您不需要 while 循环中的第一个 if

当您尝试将字符串输入转换为以下行中的浮点数时,就会出现错误:

num1 = float(input("Enter first number:"))
num2 = float(input("Enter second number:"))

我建议您将潜水功能更改为以下内容:

def divede():
    while True:
        try:
            num1 = float(input("Enter first number:"))
            num2 = float(input("Enter second number:"))
            return num1, num2
        except(ValueError):
            print("Please provide two integers or floats")

while 循环确保要求用户重复输入,直到他实际提供两个数字。 except(ValueError) 在那里只捕获您想要的特定错误。 然后你还需要像这样更改脚本的其余部分:

while True:
    if num2 != 0:

        print(f"{num1} / {num2} is {num1 / num2}")
        break

    else:

        print("Please do not divede by zero")
        num1, num2 = divede()

我的代码太复杂了:) 正确答案是:

def divide(a,b):
    try:
        total = a / b
    except TypeError:
        return "Please provide two integers or floats"
    except ZeroDivisionError:
        return "Please do not divide by zero"
    return total