我正在尝试计算用户将输入的数字的平均值。如果用户什么也没输入(例如,根本没有值),我想计算到目前为止用户输入的所有数字的平均值。对这些输入进行求和并求出平均值效果很好,但是当用户没有输入任何内容时尝试打破循环时,我会遇到值错误。对于我尝试过的 if 语句
if number == ''
第一次尝试没成功,又尝试了if number == int("")
if len(number) == 0
这仅适用于字符串
if Value Error
抛出同样的错误
完整代码如下
sum = 0
while True :
number = int(input('Please enter the number: '))
sum += number
if number == '' :
break
print(sum//number)
我遇到的错误是
number = int(input('请输入数字:')) ValueError:以 10 为基数的 int() 的文字无效:>
sum = 0
while True :
number = input('Please enter the number: '))
if number == '' :
break
sum += int(number)
print(sum//number)
尝试这样
问题是使用 int() python 尝试将输入值转换为 int。所以,当它不是整数值时,python无法转换它。所以它会引发错误。您也可以使用 Try catch 错误并进行中断。
您将始终以字符串形式获取输入,如果输入不是 int,则无法将其转换为 int。尝试:
sum = 0
while True :
number = input('Please enter the number: ')
if number == '' :
break
sum += int(number)
print(sum//number)
所有答案都不起作用,因为 print 语句引用了一个字符串。
sum = 0
while True :
user_input = input('Please enter the number: ')
try:
number = int(user_input)
except:
break
sum += number
print(sum//number)
包括 user_input 将使用最后一个 int 作为 devisor。
我的回答还确保输入字符串时脚本不会崩溃。
用户必须始终输入一些内容(输入也是一个字符)才能结束,否则您将不得不给他一个时间限制。 您可以在看到它不是字符后将字符转换为 int 或 使用尝试和例外。
sum = 0
i = 0
while True :
try:
number = int(input('Please enter the number: '))
except ValueError:
break
i += 1
sum += number
try:
print(sum/number)
except NameError:
print("User didn't input any number")
如果您尝试将字符转换为 int 它将显示 ValueError。 因此,如果发生此错误,您可以从循环中中断。 另外,您正在尝试获取平均值。 因此,如果用户未输入任何内容,您将收到 NameError,以便您可以打印错误消息。
total = 0
count = 0
while True :
try:
new_number = float(input('Please enter the number: '))
count += 1
total += new_number
except:
break
print(total/count)