Пропущенная строка печати

Я пытаюсь распечатать программу, чтобы она выглядела так.


Вставка 1
Вставка 2
Вставка 3
Верхний элемент 3
Удаление 3
Удаление 2
Удаление 1
Стек пуст


Но когда я запускаю программу, я пропустил «Вставка 1». Мой код выглядит так

class Node:
    def __init__(self,data):
        self.data = data
        self.next = None
    
class Stack:
    def __init__(self):
        self.head = None

    def isempty(self):
        if self.head == None:
            return True
        else:
            return False

    def push(self,data):
        if self.head == None:
            self.head=Node(data)
        else:
            newnode = Node(data)
            newnode.next = self.head
            self.head = newnode
            print("Inserting ", str(self.head.data))
    
    def pop(self):
        if self.isempty():
            return None
        else:
            poppednode = self.head
            self.head = self.head.next
            poppednode.next = None
            print("Removing",poppednode.data)
            return poppednode.data

    def peek(self):
        if self.isempty():
            return None
        else:
            return self.head.data

    def display(self):
        iternode = self.head
        if self.isempty():
            print("The stack is empty")
        else:
            while(iternode != None):
                print(iternode.data,"->",end = "")
                iternode = iternode.next
            return
        
stack = Stack()
stack.push(1)
stack.push(2)
stack.push(3)

print("Top element is ",stack.peek())

stack.pop()
stack.pop()
stack.pop()
stack.display()

Не могу увидеть ваш код.

Swapstar 10.04.2022 16:06

извините, сейчас отредактировал

iFIKOZ 10.04.2022 16:07
Анализ настроения постов в Twitter с помощью Python, Tweepy и Flair
Анализ настроения постов в Twitter с помощью Python, Tweepy и Flair
Анализ настроения текстовых сообщений может быть настолько сложным или простым, насколько вы его сделаете. Как и в любом ML-проекте, вы можете выбрать...
7 лайфхаков для начинающих Python-программистов
7 лайфхаков для начинающих Python-программистов
В этой статье мы расскажем о хитростях и советах по Python, которые должны быть известны разработчику Python.
Установка Apache Cassandra на Mac OS
Установка Apache Cassandra на Mac OS
Это краткое руководство по установке Apache Cassandra.
Сертификатная программа "Кванты Python": Бэктестер ансамблевых методов на основе ООП
Сертификатная программа "Кванты Python": Бэктестер ансамблевых методов на основе ООП
В одном из недавних постов я рассказал о том, как я использую навыки количественных исследований, которые я совершенствую в рамках программы TPQ...
Создание персонального файлового хранилища
Создание персонального файлового хранилища
Вы когда-нибудь хотели поделиться с кем-то файлом, но он содержал конфиденциальную информацию? Многие думают, что электронная почта безопасна, но это...
Создание приборной панели для анализа данных на GCP - часть I
Создание приборной панели для анализа данных на GCP - часть I
Недавно я столкнулся с интересной бизнес-задачей - визуализацией сбоев в цепочке поставок лекарств, которую могут просматривать врачи и...
0
2
30
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Когда вы нажимаете в первый раз, self.head будет None, и он не перейдет в состояние else, где печатается «Вставка 1».

Ответ принят как подходящий

Когда вы впервые нажимаете элемент, селф.голова имеет значение None, поэтому выполняется первый блок кода. Удалите отступ строки print('Insert'), чтобы она печаталась в обоих случаях.

    def push(self,data):
        if self.head == None:
            self.head = Node(data)
        else:
            newnode = Node(data)
            newnode.next = self.head
            self.head = newnode
        print("Inserting ", str(self.head.data)) # <== unindent 1-level

Другие вопросы по теме