名称错误:未定义名称“L1”

2024-04-29 08:40:21 发布

您现在位置:Python中文网/ 问答频道 /正文

为什么我的代码在尝试运行时显示“NameError:name‘L1’is not defined”错误?当我试图将值列表分配给变量步骤时,似乎遗漏了一些东西。在

steps = (L1, R3, R1, L5, L2, L5, R4, L2, R2, R2, L2, R1, L5, R3, L4, L1, L2, R3, R5, L2, R5, L1, R2, L5, R4, R2, R2, L1, L1, R1, L3, L1, R1, L3, R5, R3, R3, L4, R4, L2, L4, R1, R1, L193, R2, L1, R54, R1, L1, R71, L4, R3, R191, R3, R2, L4, R3, R2, L2, L4, L5, R4, R1, L2, L2, L3, L2, L1, R4, R1, R5, R3, L5, R3, R4, L2, R3, L1, L3, L3, L5, L1, L3, L3, L1, R3, L3, L2, R1, L3, L1, R5, R4, R3, R2, R3, L1, L2, R4, L3, R1, L1, L1, R5, R2, R4, R5, L1, L1, R1, L2, L4, R3, L1, L3, R5, R4, R3, R3, L2, R2, L1, R4, R2, L3, L4, L2, R2, R2, L4, R3, R5, L2, R2, R4, R5, L2, L3, L2, R5, L4, L2, R3, L5, R2, L1, R1, R3, R3, L5, L2, L2, R5)
steps = steps.split(", ")

dir = 0
x,y = 0,0
turn, walk = 0, 0

for i in steps:
    turn = i[0]
    walk = i[1]
    if turn == "L":
        dir -= 1
    elif turn == "R":
        dir += 1
    if dir % 4 == 0:
        y += walk
    elif dir % 4 == 1:
        x += walk
    elif dir % 4 == 3:
        x -= walk
    elif (dir % 4 == 2):
        y -= walk

final = x.abs() + y.abs()
print(final)

Tags: l1dirstepsturnwalkr2r3r5
1条回答
网友
1楼 · 发布于 2024-04-29 08:40:21

你的代码有很多问题。第一个问题是steps应该是一个字符串,而不是其他人所说的未定义变量的元组。不过,一旦这种改变发生了,你就会被其他人绊倒。在

下面的代码应该可以解决此问题和其他发现的问题:

steps = "L1, R3, R1, L5, L2, L5, R4, L2, R2, R2, L2, R1, L5, R3, L4, L1, L2, R3, R5, L2, R5, L1, R2, L5, R4, R2, R2, L1, L1, R1, L3, L1, R1, L3, R5, R3, R3, L4, R4, L2, L4, R1, R1, L193, R2, L1, R54, R1, L1, R71, L4, R3, R191, R3, R2, L4, R3, R2, L2, L4, L5, R4, R1, L2, L2, L3, L2, L1, R4, R1, R5, R3, L5, R3, R4, L2, R3, L1, L3, L3, L5, L1, L3, L3, L1, R3, L3, L2, R1, L3, L1, R5, R4, R3, R2, R3, L1, L2, R4, L3, R1, L1, L1, R5, R2, R4, R5, L1, L1, R1, L2, L4, R3, L1, L3, R5, R4, R3, R3, L2, R2, L1, R4, R2, L3, L4, L2, R2, R2, L4, R3, R5, L2, R2, R4, R5, L2, L3, L2, R5, L4, L2, R3, L5, R2, L1, R1, R3, R3, L5, L2, L2, R5"
steps = steps.split(", ")

dir = 0
x,y = 0,0
turn, walk = 0, 0

for step in steps:
    turn = step[0]
    walk = int(step[1])
    if turn == "L":
        dir -= 1
    elif turn == "R":
        dir += 1
    if dir % 4 == 0:
        y += walk
    elif dir % 4 == 1:
        x += walk
    elif dir % 4 == 3:
        x -= walk
    elif (dir % 4 == 2):
        y -= walk

final = abs(x) + abs(y)
print(final)

输出

^{pr2}$

相关问题 更多 >