我正在尝试编写一个读取整数“num”的函数,将所有整数存储在堆栈中并以相反的顺序打印它们。但是,如果连续的数字相同,则只有其中一个存储在堆栈中。
这是我到目前为止所提出的,但我并没有得到我想要的东西。
def read_integers(num):
s = Stack()
count = 0
string = ""
for i in range(num):
int_str = input("Enter an integer:")
if int_str != string:
string += int_str
s.push(int_str)
count += 1
for i in range(count-1):
print(s.pop())
答案 0 :(得分:0)
您的问题可能是string += int_str
尝试将其更改为string = int_str
。
问题是你在字符串中构建整数。
string = "" # initially
string = "1" # after first input
string = "12" # after second input
现在,除非您输入12
作为下一个输入,否则将追加下一个字符串。
此外,由于您只是在函数末尾循环count-1
,因此您不会在堆栈中打印底部数字。
您的读取循环可能还有问题,因为如果您想要读取四个数字并且其中一个用户输入被拒绝,那么只有三个值将存储在堆栈中。