函数接收来自用户的输入并返回python中的求和和和平方

函数接收来自用户的输入并返回python中的求和和和平方,python,Python,我是第一次学习Python的程序员,需要接收用户的输入并返回输入以及输入数据的总和和平方。我已经提示输入并可以打印,但不确定如何将输入传递给求和函数和平方函数 以下是我所拥有的: def sum(list): data = input("Enter a list of numbers or enter to quit: ") for data in list(): return sum(list) # Not sure how to make it x*y for my list

我是第一次学习Python的程序员,需要接收用户的输入并返回输入以及输入数据的总和和平方。我已经提示输入并可以打印,但不确定如何将输入传递给求和函数和平方函数

以下是我所拥有的:

def sum(list):
  data = input("Enter a list of numbers or enter to quit: ")
  for data in list():
    return sum(list) # Not sure how to make it x*y for my list of values?
  print("The sum of your list is: ", list)
这和我的平方函数是一样的。不确定如何确保:


return(list**2)#通过**2返回列表中的每个数字?

首先,您不应该使用list作为变量名,因为它实际上是一种数据类型()

至于对一系列数字进行数学运算,我建议研究numpy。它允许您在数组上执行操作,以及执行更多种类和有用的数学函数。 要对列表中的每个项目进行平方运算,只需执行以下操作:

import numpy as np

myList = [1,2,3,4]

print(np.square(myList))
上述代码将打印
[1 4 9 16]


更多关于numpy()和square函数()的信息。

您的代码有很多问题,但它们大多是非常简单的问题,会让很多人第一次遇到这些问题。别让他们让你失望

首先,你不应该重复使用那些已经有意义的名字,比如
list
sum
。基本上,表格顶部的任何名称

第二,你正在接受两个“列表”(不是真的,但我们会做到)。一个作为参数传递到函数中(
list
中的
def sum(list):
)。另一个是行中的
数据

data = input("Enter a list of numbers or enter to quit: ")
第三,上面一行中的
数据
实际上不是一个列表,而是一个字符串。如果您想从该
输入中拆分数据,并在以后将其用作数字,则必须手动执行此操作

第四,当您再次在行
中为list()中的数据使用名称
data
时,您正在用
list()中的元素覆盖现有
data
变量中包含的信息。除此之外,至少你是

第五,
list()
是一个函数调用。Python中有一个
list
函数,这是可行的,但我想您可能希望它可以遍历传递到函数中的列表

第六,
returnsum(list)
将再次调用此函数,可能永远调用

现在,我们如何着手解决这个问题

谢天谢地,如果我们愿意,内置函数
sum
可以为我们添加列表,但首先我们必须从用户那里获取列表

def input_list():
    s = input("Enter integers separated by spaces:\n")
    return [int(x) for x in s.split()]
[int(x)for x in…]
位被称为 . 你马上就会看到另一个

此函数接受类似的输入

23 45 12 2 3
并将其转换为
int
s的列表。
那我们就可以

print(sum(input_list()))
方块有点难,但列表的理解使它们容易。只是

print([x**2 for x in input_list()])
如果有任何疑问,请随时提出后续问题。

以上代码的输出:

输入数字列表或输入退出:1 2 3
输入字符串:1 2 3
数字作为字符串列表:['1','2','3']
编号清单:[1、2、3]

您的数字总和为:6
你的数字的平方是:[1,4,9]

也可以使用
map
reduce
列表理解来更简洁地实现这一点

然而,根据OP问题的内容,这似乎更合适。

欢迎来到StackOverflow。您显示的代码不可能工作——因为您的问题没有问这个问题,请显示工作代码。你说的“返回..平方”是什么意思?您的意思是在输入行中显示每个数字的平方吗?您知道如何分离输入中的值并将其转换为数值了吗?data=map(int,data.split())正确吗?是的,我指的是输入行中每个数字的平方。这里没有理由推荐numpy。@Adam因为他想在列表上做数学,numpy允许快速轻松地完成这种操作,如果他想继续用python做数学,它可能是一个有用的工具。他不是真正在列表上做数学,他正在做家庭作业,学习Python的工作原理。要求初学者程序员下载并安装numpy,然后使用numpy模块将用户输入列表上的平方运算矢量化,这有点像给一个一年级的车间学生一台数控机床。这帮了很多忙。非常感谢。
def square(numbers):
  squared = []
  for number in numbers:
    squared.append(number**2)
  return(squared)

str_of_numbers = input("Enter a list of numbers or enter to quit: ")
print("input (string):", str_of_numbers)

numbers_as_strings = str_of_numbers.split(' ')  # now have a list of strings
print("list of numbers (as strings):", numbers_as_strings)

# turn list of strings into list of numbers
numbers_list = []
for number_as_string in numbers_as_strings:
  numbers_list.append(int(number_as_string)) 
print("list of numbers: ",numbers_list, "\n")

print("The sum of your numbers is: ", sum(numbers_list))        # uses built in `sum` function
print("The squares of your numbers are:", square(numbers_list))