【问题标题】:conditional statements - intro to python条件语句 - python 简介
【发布时间】: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


【解决方案1】:

您只需将每个读取编号的值分配为“上一个”。

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 = num  # <---------!!!!!

【讨论】:

  • total 仍然是 previous 的可怕名称。
  • if 和它的else 之间不能有total = num。它应该在if 块内吗?
  • 谢谢各位!!是的,我必须承认“total”是一个可怕的名字......不会犯同样的错误!
  • @Farah 如果您的问题已解决,请接受答案。
猜你喜欢
  • 1970-01-01
  • 2015-07-21
  • 1970-01-01
  • 2012-06-10
  • 2019-04-12
  • 1970-01-01
  • 2015-03-22
  • 1970-01-01
  • 2018-04-17
相关资源
最近更新 更多