简单的 Python 语法错误(缩进/空格)


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 ('        ')

我看到几个问题:

  1. scale = distance / dist_to_origin的缩进
  2. 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)

不要有意缩放。

最新更新