如何打印内置变量的多行代码?

时间:2017-11-15 20:39:57

标签: python

嘿,我继续在print语句的最后一行使用此代码获取此语法错误。我错过了一些明显的东西,还是我做错了。雷达()应该以18度为单位获得距离。然后Visual_radar()应该以半圈显示它们。如果您需要更多信息,请告诉我。

def radar():
    measures = {}
    angle = 18
    servo(0)
    for x in range(9):
        servo(angle)
        dist = distance()
        measures[angle] = dist
        angle += 18

    for number in measures:
        if number < min_distance:
            print('Too close!', number)
            can_move_forward = False

def visual_radar():

    print """
                     %f              %f    
           %f                                %f

       %f                                       %f

    """ %(measures[90]), %(measures[108]),%(measures[72]),measures[126]),%(measures[54]))

radar()
visual_radar()

2 个答案:

答案 0 :(得分:1)

多个%是造成语法错误的原因。你似乎还有一个额外的括号。你也可以在你做它的时候摆脱多余的括号。

试试这个:

print("""
                     %f              %f    
           %f                                %f

       %f                                       %f

    """ % (measures[90], measures[108], measures[72] ,measures[126], measures[54]))

看起来您还没有完全理解格式化运算符的工作原理,您可能需要阅读this

另请注意,之后您将收到其他错误消息。您有6个格式字符串,但只有5个格式参数。它应该是这样的:

TypeError: not enough arguments for format string

答案 1 :(得分:1)

正如之前Verv所述,您的错误来自%函数中最后"之后的多个print

我建议你试试这对&#34; {} .format&#34;在您的打印中或构造字符串变量时,路径等等。

根据我对%的概括,因为你不必确切地知道变量的类型是什么。

为您提供一个如何使用它的简单示例:

a = [i**2 for i in xrange(4)]
print ("{}".format(a)) # ints
>>> [0, 1, 4, 9]

a.append("s") # string
a.append(2.4) # float
print "{}, {}".format(a[-1], a[-2])
>>> 's', 2.4

在此,您只需要在.format上一次写入",并将{}的数量与您在.format()中放置的元素数量相匹配

我希望这会有用

相关问题