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 (' ')
答案 0 :(得分:4)
我看到了几个问题:
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)
答案 1 :(得分:3)
您的代码存在一些问题。
以下是我为您提供的修订代码:
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编译器。
为什么在print
结束时将return
更改为project_to_distance()
?这是一个更高级的编程概念 - 早期练习教你到print
,以便您可以看到结果,但不幸的是,它会使returning
的主题混淆。通常,您会将return
放在函数末尾,因为您总是想要打印。例如,math.sqrt()
就像project_to_distance()
一样。只是,它没有print
,它计算和returns
值。将project_to_distance()
与sqrt()
相关联,您就会明白为什么return
更有价值。
为什么在代码末尾添加print
?因为现在你的函数returns
,假设你想要它打印,你必须告诉它。但现在,当您运行程序时,您可以运行project_to_distance
并在以后的工作中将其用作工具,而不是始终打印的功能。
快乐的编码。
答案 2 :(得分:1)
当我写下以下内容时,它对我很好:
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)
不要意图扩展。