def project_to_distance(point_x, point_y, distance):
dist_to_origin = math.square_root(point_x ** 2 + point_y ** 2)
scale = distance / dist_to_origin
print point_x * scale, point_y * scale
project_to_distance(2, 7, 4)
我在刻度线上收到以下错误(如下所示)。任何人都可以告知这与什么有关吗?
SyntaxError: bad input (' ')
我看到几个问题:
scale = distance / dist_to_origin
的缩进-
math.square_root
不存在,它是math.sqrt
法典:
import math
def project_to_distance(point_x, point_y, distance):
dist_to_origin = math.sqrt(point_x ** 2 + point_y ** 2)
scale = distance / dist_to_origin
print point_x * scale, point_y * scale
project_to_distance(2, 7, 4)
你的代码有一些问题。
这是我为您提供的修订后的代码:
import math
def project_to_distance(point_x, point_y, distance):
dist_to_origin = math.sqrt(point_x ** 2 + point_y ** 2)
scale = distance / dist_to_origin
return point_x * scale, point_y * scale
print project_to_distance(2, 7, 4)
为什么包括"导入数学"?如果您不知道导入,则需要包含
math
模块才能使用高级功能。我的square_root在哪里?
math.square_root()
不存在 - 您要调用的函数是math.sqrt()
。为什么我得
SyntaxError: bad input (' ')
?因为在 Python 中,空格(缩进)被认为是语法的一部分,因此 Python 中的程序总是更容易阅读。你的行scale = distance / dist_to_origin
缩得太远,这会混淆 Python 编译器。为什么在
project_to_distance()
年底将print
改为return
?这是一个更高的编程概念 - 早期的练习教你print
以便你可以看到你的结果,但不幸的是,它混淆了returning
值的主题。通常,您会将return
放在函数的末尾,因为您并不总是想要打印。例如,math.sqrt()
是一个函数,就像project_to_distance()
一样。只是,它不print
,它计算并returns
值。将project_to_distance()
与sqrt()
联系起来,您就会明白为什么return
更有价值。为什么要在代码末尾添加
print
?因为现在你的函数returns
,假设你想让它打印,你必须告诉它。但是现在,当您运行程序时,您可以运行project_to_distance
并将其用作以后工作的工具,而不是始终打印的功能。
快乐编码。
奖励:这是一个了不起的Python教程
当我写以下内容时,它对我来说工作正常:
def project_to_distance(point_x, point_y, distance):
dist_to_origin = math.sqrt(point_x ** 2 + point_y ** 2)
scale = distance / dist_to_origin
print point_x * scale, point_y * scale
project_to_distance(2, 7, 4)
不要有意缩放。