Код о стеках в Python ничего не печатает.Зачем? - PullRequest
0 голосов

У меня есть задание, где учитель дал мне готовый код, но я должен его запустить и выяснить, что он делает и почему. Код не запускается в pycharm. Можете ли вы помочь мне найти ошибки ???

Я пытался поместить каждую строку на свое место, чтобы избежать ошибок, но она просто ничего не печатала. Нужен ли другой класс или что-то в этом роде?

def push(elements):
    if len(stack)>=limit:
        print('Stack Overflow!')
    else:
        stack.append(elements)
        print('Stack after Push',stack)
        def pop():
            if len(stack)<=0:
                print('Stack Underflow!')
                return0
            else:
                return stack.pop() 
        stack = []
contents, elements = 0, 0
limit = int(input('Enter the no of elements to be stored in stack:'))
for contents in range(limit):
    elements = int(input('Enter elements' + str(contents) + ':'))
    push(elements)
for contents in range(limit):
    print('Popping' + str(limit - contents) + 'th element:', pop())
    print('Stack after Popping!', stack)

Я действительно не могу сказать, почему он ничего не печатает

1 Ответ

1 голос
/ 29 мая 2019

Я считаю, что ваши отступы неверны.Я считаю, что код должен быть:

def push(elements):
    if len(stack)>=limit:
        print('Stack Overflow!')
    else:
        stack.append(elements)
        print('Stack after Push',stack)
def pop(): # unindent this function
    if len(stack)<=0:
        print('Stack Underflow!')
        return0
    else:
        return stack.pop() 
stack = [] # unindent
contents, elements = 0, 0
limit = int(input('Enter the no of elements to be stored in stack:'))
for contents in range(limit):
    elements = int(input('Enter elements' + str(contents) + ':'))
    push(elements)
for contents in range(limit):
    print('Popping' + str(limit - contents) + 'th element:', pop())
    print('Stack after Popping!', stack)

Тогда вывод:

Enter the no of elements to be stored in stack:3
Enter elements0:1
Stack after Push [1]
Enter elements1:2
Stack after Push [1, 2]
Enter elements2:3
Stack after Push [1, 2, 3]
Popping3th element: 3
Stack after Popping! [1, 2]
Popping2th element: 2
Stack after Popping! [1]
Popping1th element: 1
Stack after Popping! []
...