Python返回错误“无法分配给函数调用”

时间:2019-01-21 22:35:25

标签: python python-3.x python-3.7

我一直遇到同样的错误。

这可能是一个简单的错误,我只是有一段时间没有编码了。

#import
import math

#initailse variables
float(x1)=0.0
float(y1)=0.0
float(x2)=0.0
float(y2)=0.0
float(complete_y)=0.0
float(complete_x)=0.0
float(final_decimal)=0.0
float(heading)=0.0

#get input
print("Welcome user!")
print("please enter your coordinates in format x and y including 
negatives")
x1=input()
y1=input()
print("please enter the coordinates of your target in the format x and y 
including negatives, you can obtain these from the map")
x2=input()
y2=input()
print("please hold for calculation")

#calculate
y2-y1==float(complete_y)
x2-x1==float(complete_x)
y/x==float(final_decimal)
math.asin(a)==float(heading)

#output
print("fire at a heading of", heading, "not including the negative if 
there is one")`enter code here`
print("press enter to close the programme")

导致错误

  

期望的结果是以度为单位的航向。

2 个答案:

答案 0 :(得分:2)

我的猜测是,您想在分配值之前声明类型:

float(x)=0.0
x = input()

在python中,仅在运行时知道类型,而不能声明变量的类型。

如果您这样做:

x = 0.0
x = input()
print(type(x))

您将看到x是一个字符串,因为您使用input方法分配了一个字符串。如果需要浮点数,则需要对其进行转换。

x = float(input())

作为旁注,

#calculate
y2-y1==float(complete_y)

如果之前声明了y1y2complete_y,则此代码有效,它仅返回布尔值TrueFalse。并且不要分配任何值。

如果需要分配值,请使用单个=,例如

complete_y = y2 - y1

答案 1 :(得分:1)

你不能做

float(x)=0.0

您要在值float上调用函数x,并尝试将0.0分配给该调用的结果,而Python无法理解。 Python知道0.0的类型,您不必指定它是浮点数。只需

x = 0.0  

此外,我不确定您希望自己的#calculate部分会做什么,但是目前它不会以任何方式对程序的其余部分产生任何影响。