我是Python新手,需要一些帮助来编写一个将列表作为参数的函数.
我希望用户能够输入数字列表(例如[1,2,3,4,5]),然后让我的程序对列表中的元素求和.但是,我想使用for循环对元素求和,而不仅仅是使用内置的sum函数.
我的问题是我不知道如何告诉解释器用户正在输入列表.当我使用此代码时:
def sum(list):
这是行不通的,因为解释器只希望从sum中获取一个元素,但是我想输入一个列表,而不仅仅是一个元素.我尝试使用list.append(..),但无法按照我想要的方式工作.
谢谢您的期待!
编辑:我正在寻找这样的东西(谢谢,“ irrenhaus”):
def listsum(list):
ret=0
for i in list:
ret += i
return ret
# The test case:
print listsum([2,3,4]) # Should output 9.
解决方法:
我不确定您如何构建“用户输入的列表”.您正在使用循环吗?它是纯输入吗?您是从JSON还是泡菜阅读?那是最大的未知数.
假设您正试图让他们输入逗号分隔的值,只是为了获得答案.
# ASSUMING PYTHON3
user_input = input("Enter a list of numbers, comma-separated\n>> ")
user_input_as_list = user_input.split(",")
user_input_as_numbers_in_list = map(float, user_input_as_list) # maybe int?
# This will fail if the user entered any input that ISN'T a number
def sum(lst):
accumulator = 0
for element in lst:
accumulator += element
return accumulator
前三行有些丑陋.您可以将它们组合:
user_input = map(float, input("Enter a list of numbers, comma-separated\n>> ").split(','))
但这也很丑.怎么样:
raw_in = input("Enter a list of numbers, comma-separated\n>> ").split(',')
try:
processed_in = map(float, raw_in)
# if you specifically need this as a list, you'll have to do `list(map(...))`
# but map objects are iterable so...
except ValueError:
# not all values were numbers, so handle it
标签:loops,for-loop,python 来源: https://codeday.me/bug/20191121/2054611.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。