#python #algorithm
#python #алгоритм
Вопрос:
class Stack:
def __init__(self):
self.items= []
def is_empty(self):
return not self.items
def push(self, item):
self.items.append(item)
def pop(self):
return self.items.pop()
def peek(self):
return self.items [-1]
def size(self):
return len(self.items)
def __str__(self):
return str(self.items)
if __name__=="__main__":
result = Stack()
print(result)
result.push(3)
Комментарии:
1. Ваш отступ неверен. Все определения функций должны иметь отступы, чтобы они были внутри класса.
2. Это то, как ваш код имеет отступ?
3. Важность отступов должна быть одной из первых вещей, которые вы узнаете о Python.
Ответ №1:
Python сильно зависит от отступов, поэтому крайне важно правильно его использовать. Как у вас есть сейчас, Stack
имеет только один метод, __init__
, поскольку все остальные ваши функции определены глобально. Это можно исправить, сделав отступы для остальных предполагаемых методов одинаковыми __init__
, изменив их область действия.
Редактировать: поскольку у вас все еще возникают проблемы, вот рабочий отступ:
class Stack:
def __init__(self):
self.items= []
def is_empty(self):
return not self.items
def push(self, item):
self.items.append(item)
def pop(self):
return self.items.pop()
def peek(self):
return self.items [-1]
def size(self):
return len(self.items)
def __str__(self):
return str(self.items)
if __name__=="__main__":
result = Stack()
print(result)
result.push(3)
Комментарии:
1. я пытался это сделать, но все равно выдал мне ту же ошибку