【发布时间】:2014-10-16 08:33:06
【问题描述】:
问题陈述:编写一个程序,读取未指定数量的整数,确定已读取的正值和负值的数量,并计算输入值的总和和平均值(不计算零)。您的程序以输入 0 结束。将平均值显示为浮点数。
示例输出(忽略项目符号,不知道如何将文本格式化为控制台输出):
- 输入一个整数,如果为0则输入结束:1
- 输入一个整数,如果为0则输入结束:2
- 输入一个整数,如果为0则输入结束:-1
- 输入一个整数,如果为0则输入结束:3
- 输入一个整数,如果为0则输入结束:0
- 您没有输入任何数字
- 阳性数为 3
- 底片数为 1
- 一共5个
- 平均为1.25
尝试的解决方案:
def main():
i = int( input ("Enter an interger, the input ends if it is 0: "))
count_pos = 0
count_neg = 0
total = 0
if (i != 0):
while (i != 0):
if (i > 0):
count_pos += 1
elif (i < 0):
count_neg += 1
total += i
i = int( input ("Enter an interger, the input ends if it is 0: "))
count = count_pos + count_neg
average = total / count
print ("The number of positives is", count_pos)
print ("The number of negatives is", count_neg)
print ("The total is", total)
print ("The average is", float(average))
else:
print ("You didn't enter any number.")
main()
【问题讨论】:
-
你有什么问题?
-
问题陈述位于标有“问题陈述:”的块的顶部
-
你的输出中有什么错误?
-
eval不仅危险,就我而言,它是邪恶的。eval所做的是执行您传递给它的任意 Python 代码。因此,如果用户输入import os;os.listdir(os.getcwd()),该代码将被执行,以便用户可以看到您当前工作目录的内容。他们将能够随意移动您的文件系统并像您一样删除/复制/移动内容。eval非常危险,如果你发现自己认为应该使用它,你应该非常仔细地考虑你是否在做正确的事情。 -
@DanielSchulze 如果您传递一个数字,它也不会做任何事情。在你的情况下这是完全没有必要的。
标签: python nested-loops python-3.4