当输入没有内容时如何退出循环[重复]

问题描述 投票:0回答:5

我正在尝试计算用户将输入的数字的平均值。如果用户什么也没输入(例如,根本没有值),我想计算到目前为止用户输入的所有数字的平均值。对这些输入进行求和并求出平均值效果很好,但是当用户没有输入任何内容时尝试打破循环时,我会遇到值错误。对于我尝试过的 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() 的文字无效:>

python if-statement while-loop integer
5个回答
0
投票
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 错误并进行中断。


0
投票

您将始终以字符串形式获取输入,如果输入不是 int,则无法将其转换为 int。尝试:

sum = 0

while True :
    number = input('Please enter the number: ')
    if number == '' :
        break
    sum += int(number)

print(sum//number)

0
投票

所有答案都不起作用,因为 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。

我的回答还确保输入字符串时脚本不会崩溃。


0
投票

用户必须始终输入一些内容(输入也是一个字符)才能结束,否则您将不得不给他一个时间限制。 您可以在看到它不是字符后将字符转换为 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,以便您可以打印错误消息。


-2
投票
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)
© www.soinside.com 2019 - 2024. All rights reserved.