ValueError:以 10 为基数的 int() 的文字无效:'3 -1 1 14'

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

ValueError:以 10 为基数的 int() 的文字无效:'3 -1 1 14'

我收到此错误 实际上,我试图将由空格分隔的 n 个整数流作为输入,而不需要任何列表或字典,但我对 python 很陌生。 输入是:

4
3 -1 1 14

这是一个没有任何列表/集合/字典理解的问题要求

问题指出: 描述

  1. 我们希望您计算给定整数的平方和,不包括任何负数。 输入的第一行将是一个整数 N (1 <= N <= 100), indicating the number of test cases to follow.
  2. 每个测试用例都包含一行带有整数 X (0 < X <= 100), followed by another line consisting of X number of space-separated integers Yn (-100 <= Yn <= 100).
  3. 对于每个测试用例,计算整数的平方和(排除任何负数),并在输出中打印计算出的总和。
  4. 注意:在收到所有输入之前不应有输出。
  5. 注2:测试用例解决方案之间不要放置空行。
  6. 注3:从标准输入获取输入,并输出到标准输出。

Python解决方案的具体规则

  1. 您的源代码必须是单个文件,至少包含一个主函数
  2. 不要使用任何 for 循环、while 循环或任何列表/集合/字典理解
  3. 您的解决方案将针对 Python 3.11(截至 2023 年 2 月)或更高版本进行测试

我尝试使用递归获取输入,但陷入空白并得到相同的错误 我想知道如果我将它作为字符串输入然后将它们转换为数字可以吗?

这是我的代码:-

def helper2(n: int, sum: int):
    m = int(input()).split()
    if m > 0:
        sum += m * m
    else:
        sum += 0
    helper2(n - 1, sum)

def helper(n: int):
    if n == 0:
        return 0
    m = int(input())
    sum = 0
    helper2(m, sum)
    helper(n - 1)
    return sum

def main():
    n = int(input())
    sum = helper(n)
    print(sum)

if __name__ == "__main__":
    main()

我知道Python中的输入被视为字符串或列表(对于数组),但我们不能使用任何循环或列表、字典理解 我很困惑是否还有其他方法将数组作为输入

python valueerror
1个回答
0
投票
def main():
    n: int = int(input())
    input_str: str = input()
    final_sum: int = add(n - 1, 0, input_str)
    print(final_sum)

def add(n: int, sum_of_ints: int, input_str: str):
    # turning the input_str int a list of ints and taking the value at location n
    x: int = list(map(int, input_str.split()))[n]
    
    # adding x to the sum
    if x > 0:
        sum_of_ints += x ** 2
        
    # calling the add function and setting the sum to its output
    if n > 0:
        sum_of_ints = add(n - 1, sum_of_ints, input_str)
        
    # returning the output
    return sum_of_ints


if __name__ == "__main__":
    main()
© www.soinside.com 2019 - 2024. All rights reserved.