我正在做一个三角形标识符,我的问题是,我不能得到如果用户输入一个字符串



所以我正在做我的第一个项目这是一个三角形标识符通过边,我遇到了这个问题,如果有人写了一个字母,程序会崩溃,因为你不能浮动输入时,它是一个字符串所以我尝试了一些方法(尝试:除了我尝试:

if x == STR and x != int and x != float:打印("请选择一个可行的单位")但它现在显示,即使我有正常的数字,如(4,6,6)我只做了x的输入来确定它是否有效最后的代码:

print("please input the sides of the triangle")
x = input("the first side = ")
y = input(" the second side = ")
z = input("the third side = ")
if str(x) == x and int(x) != x and float(x) != x:
print("please choose a viable unit ")
elif x == y == z:
print("the triangle is equilateral ")
elif x == y or y == z or x == z:
print("the triangle is isosceles")
elif x != y or x != z or y != z:
print("the triangle is scalene")
elif(x*x) + (y*y) == (z*z) or (z*z) + (y*y) == (x*x) or (z*z) + (x*x) == (y*y):
print("the triangle is also right")

这一行:

if str(x) == x and int(x) != x and float(x) != x:

实际上不会将x变为intfloat;它也永远不可能是真的,因为x不可能同时是所有这些类型。x总是一个str,因为input总是返回一个str。如果x是一个不能转换为int的值,这一行唯一能做的就是引发一个ValueError(这将导致您的脚本退出,因为您还没有捕捉到它)。

你要做的是把x,yz转换成floats,一旦你读到它们:

try:
x = float(input("the first side = "))
y = float(input(" the second side = "))
z = float(input("the third side = "))
except ValueError:
print("please choose a viable unit ")
exit()

在此之后,如果脚本没有退出,则xyz保证为float值,并且可以对它们执行数学运算而不会遇到TypeErrors。

首先,帮大家一个忙,把你的标题改成类似于"帮助Python输入和输入"的东西

第二:当您使用python输入时,它将该输入作为字符串读取。因此,为了对该字符串进行任何数学运算,它必须不是字符串,而是一个数字。

也就是说,输入必须沿着

的行
foo = float(input("bar"))

编辑:您还提到,如果用户输入字符串,您会遇到问题。您可以将此答案用于参考如何实现该实例

的try except case

相关内容

  • 没有找到相关文章

最新更新