以下Python脚本中的IndentationError

时间:2018-02-06 12:05:30

标签: python python-3.x

我的代码没有运行,虽然一切都正确缩进,我已经使用Python一段时间了,所以我不再是编程世界。我找不到解决方案。

def revisedRussianRoulette(doors):
    counter = 0
    for i in range(0, len(doors), 2):
        i = int(i)
        if doors[i] == 1 & counter == 0:
            counter += 1
        elif doors[i] == 1 & counter == 1:
            doors[i] = 0
            doors[i-2] = 0
            doors[i+2] = 0
        elif doors[i] == 0 & counter == 1:
            doors[i-2] = 0
    return doors


n = int(input().strip())
doors = list(map(int, input().strip().split(' ')))
result = revisedRussianRoulette(doors)
print (" ".join(map(str, result)))

我想用这段代码做的事并不重要。我只是想问一下语法是否正确,因为我收到了以下错误。

C:\Users\lenovo\Desktop\Practice Files>2nd_answer_week_of_code_36.py
  File "C:\Users\lenovo\Desktop\PracticeFiles\2nd_answer_week_of_code_36.py", line 13
return doors
           ^
IndentationError: unindent does not match any outer indentation level

拜托,有人能快速告诉我解决方案吗?

修改

Vikas提供的解决方案是准确的,尽管他和我的代码之间没有差异。

2 个答案:

答案 0 :(得分:1)

做这样的缩写:

def revisedRussianRoulette(doors):
    counter = 0
    for i in range(0, len(doors), 2):
        i = int(i)
        if doors[i] == 1 & counter == 0:
            counter += 1
        elif doors[i] == 1 & counter == 1:
            doors[i] = 0
            doors[i-2] = 0
            doors[i+2] = 0
        elif doors[i] == 0 & counter == 1:
            doors[i-2] = 0
    return doors

答案 1 :(得分:0)

def revisedRussianRoulette(doors):
    counter = 0
    for i in range(0, len(doors), 2):
        i = int(i)
        condition_one = doors[i] == 1 & counter == 0
        condition_two = doors[i] == 1 & counter == 1
        condition_three = doors[i] == 0 & counter == 1
        if condition_one:
            counter += 1
        elif condition_two:
            doors[i] = 0
            doors[i-2] = 0
            doors[i+2] = 0
        elif condition_three:
            doors[i-2] = 0
        return doors

n = int(input().strip())
doors = list(map(int, input().strip().split()))
result = revisedRussianRoulette(doors)
print (" ".join(map(str, result)))