只接受正整数

时间:2018-01-28 23:16:22

标签: python python-3.x

我正在编写一个程序,它接受用户输入并打印出用户输入的均值和方差。如果用户输入负整数,我希望程序崩溃。我尝试了几种不同的方法,但似乎没有用。这是我到目前为止所拥有的

userlist = []

for i in range():
    num = userlist.append(float(input("Enter a number: ")))
    print("Mean is", float(mean(userlist)), "Variance is ")
    print()

for j in range():
    num = userlist.append(float(input("Enter a number: ")))
    print("Mean is", float(mean(userlist)),
          "Variance is ", variance(userlist, xbar=0))
    print()

1 个答案:

答案 0 :(得分:2)

这个答案假设您根本不需要任何负值。请注意,由于Python的append方法没有返回任何值,因此您的代码无法将输入的值正确地输入到列表中。将值放入列表中,如下所示:

num = float(input("Enter a number: "))
userlist.append(num)

每次找到num的值后,执行语句

if num < 0:
    raise ValueError('Negative values not allowed!')

这会为

提升standard exception
  

当内置操作或函数接收到具有的参数时   正确的类型,但不恰当的价值,情况不是   由更准确的异常描述,例如IndexError。

如果程序中没有异常处理程序,程序将崩溃。如果此异常存在异常处理程序,则应对其进行适当处理。

如果您确实要禁止负整数但允许其他负浮点值,请使用

if num < 0 and num.is_integer():
    raise ValueError('Negative integer values not allowed!')