bymyside_ 发表于 2022-6-2 13:05:30

input()读取数据时不加提示信息会出错的原因

line = []
divisor = 0
while True:
    number = int(input())
    if 0 <= number <= 100:
      line.append(number)
      divisor += 1
    else:
      print(f'{sum(line)/divisor:.2f}')
      break

>>>30
>>>40
Traceback (most recent call last):
File "F:\PyCharm\pycharmworkspace\pythonProject\main.py", line 4, in <module>
    number = int(input())
ValueError: invalid literal for int() with base 10: ''


line = []
divisor = 0
while True:
    number = int(input('anything'))
    if 0 <= number <= 100:
      line.append(number)
      divisor += 1
    else:
      print(f'{sum(line)/divisor:.2f}')
      break

>>>anything30
>>>anything40
>>>anything-1
>>>35.00

jackz007 发表于 2022-6-2 13:52:00

本帖最后由 jackz007 于 2022-6-2 13:53 编辑

      你必须键入数字,而且,不允许键入数字以外的任何字符,只有这样才能过关,否则,一定会出错。

Twilight6 发表于 2022-6-2 14:09:52



int 只能将十进制整数类型字符串转化为整型,你这里输入英文字符,导致 int 转化报错

ValueError: invalid literal for int() with base 10: '' 这个错误是因为你代码运行到 input 时,直接回车,导致 "" 空字符串 转化为 int 整型报错

bymyside_ 发表于 2022-6-3 00:27:19

Twilight6 发表于 2022-6-2 14:09
int 只能将十进制整数类型字符串转化为整型,你这里输入英文字符,导致 int 转化报错

ValueError: i ...

那有提示信息的时候,为啥就不出现错误了{:5_99:}

Twilight6 发表于 2022-6-3 10:22:35

bymyside_ 发表于 2022-6-3 00:27
那有提示信息的时候,为啥就不出现错误了



有无提示信息都一样,可能是你输入时候可能多按了下空格

页: [1]
查看完整版本: input()读取数据时不加提示信息会出错的原因