【问题标题】:How to not count negative input如何不计算负输入
【发布时间】:2020-10-09 13:27:42
【问题描述】:

有没有办法让计数器在不计算负数的情​​况下保持运行,仅在输入为零时停止?

count = 0
total = 0
n = input()
while n != '0':
    count = count + 1
    total = total + int(n) ** 2
    n = input()
print(total)

这是一个执行结果的例子。

输入:-1 10 8 4 2 0 输出:184

【问题讨论】:

  • “弹出”是什么意思?你想一直要求一个数字,直到它 >= 0?
  • 是的,即使输入的是负数,也要继续直到我输入零
  • Eject 在这种情况下没有任何意义。请准确说明您想要实现的目标。如果可能,请提供预期结果的示例。
  • 输入:-1 10 8 4 2 0 输出:184
  • @Lorin 请将您的评论内容(带有示例输入和输出)放入问题本身。

标签: python python-3.x counter


【解决方案1】:
  1. 由于您只希望数字输入loop,您可以使用isnumeric() 内置函数来检查。
  2. 这里需要if() : break
num = input()
...
while(isnumeric(num)):
  ...
  if(num == "0"):
     break;

【讨论】:

    【解决方案2】:

    您等待的响应是:

    • 忽略负数
    • 计数正数
    • 当输入为0时停止
    count = 0
    total = 0
    
    n = int(input())
    
    while (n != 0): 
        count += 1
        if (n > 0): 
            total = total + n**2
        num = int(input())
    
    print(total)
    

    除了您没有将数字 n 转换为 int 并且您没有测试 n 以去除负值之外,您的代码已经可以了。

    执行: 当你输入-1 10 8 4 2 0时,它应该显示184

    【讨论】:

    • 我正在尝试您的建议,但是当我输入零时计数器不会停止
    【解决方案3】:

    您可以将输入解析为整数(数字)并检查它是否大于零:

    count = 0
    total = 0
    
    num = int(input())
    
    while number != 0:
        if number < 0:
            continue
        count += 1
        total = total + num**2
        num = int(input())
    print(total)
    
    

    pass、continue、break和return的区别是:

    • pass = 忽略我,继续,当你创建一个还没有目的的函数时很有用
    • 继续 = 忽略循环中的所有其他内容并开始一个新循环
    • break = 打破循环
    • return = 函数结束 - return 语句可用于为函数提供输出,但也可作为中断函数的一种方式,就像循环中的 break 语句所做的那样。

    【讨论】:

    • 我明白了,但是现在程序在输入负数时立即停止,有没有办法让计数器保持运行而不计算负数,只在输入为零时停止?跨度>
    猜你喜欢
    • 1970-01-01
    • 2013-06-28
    • 2013-07-03
    • 2022-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-07
    • 2014-02-22
    相关资源
    最近更新 更多