以列表形式的用户输入[关闭]

问题描述 投票:-4回答:3

我是编码新手。因此,任何相关帮助将不胜感激。

到目前为止,我只得到了:

integer=int(input("Enter list of integers"))

但是必须输入用户输入,并用逗号分隔。所以1,2,3取其总和。我已经获得了可以工作的代码,但是仅当用户输入为123而不是1,2,3时,它才有效。谁能帮我吗?

问题的照片

“在此处输入链接描述”

python python-3.x list user-input
3个回答
0
投票

您可以尝试这个

def sum_recurrsive(n, arr):
    if n-1 == 0:
        return arr[0]
    return arr[n-1] + sum_recurrsive(n-1, arr)

arr = map(int, input("Enter list of integers: ").split(","))
print(sum_recurrsive(len(arr), arr))

0
投票
有几种解决这类问题的方法!

第一个:使用评估(非常危险)

Eval是python函数,无论您输入什么,它都可以自动解析输入的数据并将其转换为列表,字典等!但这很危险,因为如果不对数据进行清理,则数据可能会被劫持,并且永远不能在生产环境中使用!供参考,我附有示例代码!

myList=eval(input("Enter List:"))
print(type(myList))

输入

输入列表:[1,2,3,4]

((类型:列表)

第二次使用循环解析输入的数据

您可以有效地使用for和while循环来解析数据并自动创建列表,示例代码

L=input("Enter List:").split(",")
myList = []
for i in L:
    myList.append(int(i))
print(myList)

还有许多其他基于方法的解决方案,但我建议第二种,因为它更安全,并且可以根据整数对数据进行清理!


-1
投票

尝试:

def recur_sum(n):
    if len(n) <= 1:
       return n[0]
    else:
       return n.pop() + recur_sum(n)

integer = list(map(int, input().split(",")))

print("The sum is: ", recur_sum(integer))
© www.soinside.com 2019 - 2024. All rights reserved.