首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >接收到零后反向打印输入号码

接收到零后反向打印输入号码
EN

Stack Overflow用户
提问于 2022-08-01 08:37:10
回答 2查看 69关注 0票数 0

在这段代码中,我希望用户输入一个整数,直到输入零,我才收到来自用户的输入。在接收到零号后,我将输入的数字按插入的相反顺序打印除零外。

我有两个问题:

-One是指如何在程序的输出中不打印零号。

-And第二个问题是如何正确地将while循环之前的条目添加到num列表中。

代码语言:javascript
运行
复制
inp = int(input())
num = []
num.append(inp)
while inp > 0:
    out = int(input())
    num.append(out)
    if out == 0:
        for i in num[::-1]:
            print(i)

样本输入:3 4 7 4 9 0样本输出:9 4 7 4 3,但我的输出如下:0 9 4 4 4 3

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-08-01 08:45:44

由于您使用的是break和when语句,所以您可以使用一个无限循环,并且只有在inp为零时才能中断它,否则继续将inp添加到列表中。

最后用相反的顺序打印数字,就像你已经在做的那样。

这比较简单,因为:

您所阅读的if).自动地看到时间停止循环(而不是被迫在中读取嵌套的if inp == 0: break )。

将代码拆分为:收集数字和打印数字(时间和statements). )

  • 您不再需要重复您的int(input(...))调用(因为所有操作都是在循环中完成)。

代码语言:javascript
运行
复制
num = []

while True:
    inp = int(input())
    if inp == 0:
        break
    num.append(inp)

for i in num[::-1]:
    print(i)
票数 0
EN

Stack Overflow用户

发布于 2022-08-01 08:39:05

只需在将值追加到列表之前添加检查输入是否为0的条件即可。

代码语言:javascript
运行
复制
inp = int(input())
num = []
num.append(inp)
while inp > 0:
    out = int(input())
    if out == 0:
        for i in num[::-1]:
            print(i)

    num.append(out)

即使是第一个输入也可以是0,因此请将代码修改为

代码语言:javascript
运行
复制
num = []
out = 1

while out > 0:
    out = int(input())

    if out == 0:
        for i in num[::-1]:
            print(i)
    else:
        num.append(out)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73190963

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档