python - Python:求数字的平均值
问题描述
我的任务是:“编写一个程序,不断向用户询问一些数字。如果用户在没有输入任何内容的情况下按回车键,程序会停止并打印所有给定数字的平均值。应该给出平均值到小数点后 2 位。如果在任何时候输入了 0,则不应将其包括在平均值的计算中”
我已经尝试了一段时间,但我不知道如何让程序在用户点击“输入”或忽略 0 时执行我指示的任何内容。这是我当前的代码:
count = 0
sum = 0
number = 1
while number >= 0:
number = int(input())
if number == '\n':
print ('hey')
break
if number > 0:
sum = sum + number
count= count + 1
elif number == 0:
count= count + 1
number += 1
avg = str((sum/count))
print('Average is {:.2f}'.format(avg))
解决方案
你很亲近!几乎所有的都是完美的!
这是一些更多的pythonic代码,它有效。我已经发表评论解释变化:
count = 0
sum = 0
# no longer need to say number = 1
while True: # no need to check for input number >= 0 here
number = input()
if number = '': # user just hit enter key, input left blank
print('hey')
break
if number != 0:
sum += int(number) # same as sum = sum + number
count += 1 # same as count = count + 1
# if number is 0, we don't do anything!
print(f'Average is {count/sum:.2f}') # same as '... {:.2f} ...'.format(count/sum)
为什么您的代码不起作用:
当用户只是按下回车而不是输入数字时,该input()
函数不会返回'\n'
,而是返回''
。
我真的希望这可以帮助你学习!
推荐阅读
- sql - 用于比较字段中某些值的计数的 SQL 查询
- javascript - 如何仅使用 JS 将 1% 添加到循环内的 div 宽度?
- javascript - 假对讲小部件 - 如何通过单击其他按钮来运行它
- android - TextFormField 验证器参数类型“动态函数()”不能分配给
- node.js - 如何打印 puppeteer 发送的原始 devtools 请求?
- sql - 基于年份的行号
- marklogic - 如何在查询控制台的上下文中运行 MarkLogic RestAPI 调用?
- mysql - MySQL内部连接限制第二个表的1行
- c++ - 当我为 linux 和 windows 编写代码时,如何正确构建我的文件
- docker - 运行 docker build 时,Webpack 构建命令未输出构建目录