Python If/else语句与数学

2024-09-26 22:45:09 发布

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

我一直在试着做一个圆面积计算器,我已经掌握了基本知识。但是如果用户输入类似5m的内容,那么我会看到一个错误。我想返回“enteranumber”,而不是返回错误退出。这是我的密码。在

from math import pi

r = float(input("Input the radius of the circle : "))
print("The area of the circle with radius " + str(r) + " is: " + str(pi * r**2))

if r==(str):
    print("Enter a Number")

Tags: ofthe用户内容错误pi计算器print
2条回答

您可以反复询问,直到输入可以转换为浮点的字符串。您可以通过捕捉ValueError来检测将字符串转换为float的失败,这是类型转换失败时引发的异常。在

while True:
    try:
        r = float(input("Input the radius of the circle : "))
        break
    except ValueError:
        pass

请在当前包含input调用的行中执行此操作,并删除r == (str)测试,该测试实际上不会执行任何与您的预期接近的操作。在

另外请注意,如果使用Python2,则需要raw_input函数,而不是input。在

这个在这里

if r==(str):

没有做你期望的事。在

您希望使用string模块进行此检查(请注意,在尝试将输入转换为浮点之前,应先完成此操作):

^{pr2}$

或者字符串对象上有一个方法用于此检查:

r.isdigit()

但还有更好的方法:

from math import pi
try:
    radius = float(input("Input the radius of the circle : "))
except ValueError:
    print("Invalid input, enter a Number!")
else:
    print("The area of the circle with radius " + str(r) + " is: " + str(pi * r**2))

这说明了如何处理无效输入。在得到有效的输入之前,您可能需要将其放入一个循环中。在

相关问题 更多 >

    热门问题