首页 > 解决方案 > 什么是值错误?

问题描述

我有一个接受用户输入的简单 python 脚本:

limit=int(input())
answer=1
a=[]
for i in range(limit):
    data=int(input())
    a.append(data)
for j in a:
    answer = answer*j+10**9+7
print(answer)

当我运行它时,我不断收到类似这样的错误。

Execution failed.
ValueError: could not convert string to float : '1 2 3 4 5'

Stack Trace:
Traceback (most recent call last):
File "/hackerearth/PYTHON3_12/s_0b.py3", line 5, in 
data=int(float(input()))
ValueError: could not convert string to float: '1 2 3 4 5'

什么是 aValueError以及如何解决此问题?

标签: python

解决方案


您需要一次解析每个数字。您试图一次输入所有数字,但这是行不通的。尝试这个:

limit=int(input())
answer=1
a=[]
numbers = input()
toParse = numbers.split(' ') #breaks input string into individual numbers
for i in range(toParse):
    data=int(toParse[i])
    a.append(data)
for j in a:
    answer = answer*j+10**9+7
print(answer)

我将您的代码更改为 1)在循环之前输入输入数字,然后 2)将它们拆分为一个列表,其中每个元素都是原始字符串中的数字之一,3)然后可以将其解析为循环中的数据。


推荐阅读