在Python中确定输入是否为数字
我创建了一个要求用户输入数字的代码。以下代码仅允许用户输入数字在Python中确定输入是否为数字,python,Python,我创建了一个要求用户输入数字的代码。以下代码仅允许用户输入数字 while True: strainx =input("Please enter a value for strain in the x-direction: ") try: num_format=float(strainx) break except ValueError: print("Invalid Entry") strainx=float(stra
while True:
strainx =input("Please enter a value for strain in the x-direction: ")
try:
num_format=float(strainx)
break
except ValueError:
print("Invalid Entry")
strainx=float(strainx)
这只是代码的一部分。我有几个输入,它们的代码完全相同,但名称不同。其中之一是为“v”输入一个值
最后一行'strainx=float(strainx)'对我来说没有意义,因为它将strainx格式化为一个float,但是输入应该只接受float
此外,在代码中还有一个涉及v**2的方程
如果我去掉'strainx=float(strainx)'行和所有其他输入(包括v)的同一行,则涉及v**2的方程式不再有效,并给出错误:
TypeError: unsupported operand type(s) for ** or pow(): 'str' and 'int'
谁能帮我解释一下为什么会这样?当然,我应该能够在没有错误的情况下删除'strainx=float(strainx)'行?问题在于,在
try
块中,您分配了一个新变量。如果您重新分配给straintx
,则无需执行更多操作
while True:
strainx = input("Please enter a value for strain in the x-direction: ")
try:
strainx = float(strainx)
break
except ValueError:
print("Invalid Entry")
最后一行“strainx=float(strainx)”对我来说没有意义,因为它
是否将strainx格式化为浮点,但输入应仅为
无论如何,接受浮动
它不是格式化,而是从字符串创建一个浮点。Python中的对象定义了类型,这些类型是它们在内部的表示方式。如果您的变量是字符串,您不能像使用浮点一样使用它,您必须明确地告诉Python您希望从它生成一个浮点,您可以这样做。执行此操作时,它将返回一个需要使用的新浮点值,而不是字符串。通过重新指定相同的名称,可以实现所需的效果
或者,从那一点开始就使用新名称