【发布时间】:2018-06-05 09:24:21
【问题描述】:
我一直在阅读 python 小册子的介绍,并一直停留在以下问题上。问题概述如下,我的尝试紧随其后。我遇到的问题是总数固定为输入的第一个数字,而问题希望总数等于输入的每个新数字。我希望这是有道理的。提前致谢。
编写一个接受一系列数字(以 0 结尾)的程序。如果当前数字与前一个数字相同,则显示Same'; if the current number is greater than the previous one, it saysUp',如果小于前一个数字,则显示'Down'。它对第一个数字完全没有反应。例如,列表 9、9、8、5、10、10、0 的输出将是 Same、Down、Down、Up、Same(依次比较 9 和 9、9 和 8、8 和 5 , 5 和 10, 10 和 10)。您可以假设输入中至少有两个数字。
输入第一个数字:9
输入下一个数字(0 结束):9
一样
输入下一个数字(0 结束):8
向下
输入下一个数字(0 结束):5
向下
输入下一个数字(0 结束):10
向上
输入下一个数字(0 结束):10
一样
输入下一个数字(0 结束):0
--
我的尝试在下面
print('please enter the first number: (0 to finish) ', end = '')
d = input()
total = int(d)
finished = False
while not finished:
print('please enter the next number: (0 to finish) ', end = '')
s = input()
num = int(s)
if num != 0:
if num < total:
print('down')
elif num > total:
print('Up')
elif num == total:
print('Same')
else:
finished = True
【问题讨论】:
-
total令人困惑。它不会出现在作业文本中,您也不会更新它。它应该是什么?输入数字的总和?以前的号码? -
所以,你应该在
if-else块之后的循环中添加类似total = num的代码 -
谢谢大家!!是的,我必须承认“total”是一个可怕的名字......不会犯同样的错误!
标签: python